mlt 0.7.6
Data Structures | Defines | Typedefs | Functions

mlt_frame.h File Reference

interface for all frame classes More...

#include "mlt_properties.h"
#include "mlt_deque.h"
#include "mlt_service.h"

Go to the source code of this file.

Data Structures

struct  mlt_frame_s
 Frame class. More...

Defines

#define MLT_FRAME_AUDIO_STACK(frame)   ( ( frame )->stack_audio )
#define MLT_FRAME_IMAGE_STACK(frame)   ( ( frame )->stack_image )
#define MLT_FRAME_PROPERTIES(frame)   ( &( frame )->parent )
#define MLT_FRAME_SERVICE_STACK(frame)   ( ( frame )->stack_service )
#define RGB2YUV_601_SCALED(r, g, b, y, u, v)
 This macro scales RGB into the YUV gamut - y is scaled by 219/255 and uv by 224/255.

Typedefs

typedef int(* mlt_get_audio )(mlt_frame self, void **buffer, mlt_audio_format *format, int *frequency, int *channels, int *samples)
 Callback function to get audio data.
typedef int(* mlt_get_image )(mlt_frame self, uint8_t **buffer, mlt_image_format *format, int *width, int *height, int writable)
 Callback function to get video data.

Functions

const char * mlt_audio_format_name (mlt_audio_format format)
int mlt_audio_format_size (mlt_audio_format format, int samples, int channels)
mlt_frame mlt_frame_clone (mlt_frame self, int is_deep)
void mlt_frame_close (mlt_frame self)
uint8_t * mlt_frame_get_alpha_mask (mlt_frame self)
double mlt_frame_get_aspect_ratio (mlt_frame self)
int mlt_frame_get_audio (mlt_frame self, void **buffer, mlt_audio_format *format, int *frequency, int *channels, int *samples)
int mlt_frame_get_image (mlt_frame self, uint8_t **buffer, mlt_image_format *format, int *width, int *height, int writable)
mlt_producer mlt_frame_get_original_producer (mlt_frame self)
mlt_position mlt_frame_get_position (mlt_frame self)
unsigned char * mlt_frame_get_waveform (mlt_frame self, int w, int h)
mlt_frame mlt_frame_init (mlt_service service)
int mlt_frame_is_test_audio (mlt_frame self)
int mlt_frame_is_test_card (mlt_frame self)
void * mlt_frame_pop_audio (mlt_frame self)
mlt_frame mlt_frame_pop_frame (mlt_frame self)
mlt_get_image mlt_frame_pop_get_image (mlt_frame self)
void * mlt_frame_pop_service (mlt_frame self)
int mlt_frame_pop_service_int (mlt_frame self)
mlt_properties mlt_frame_properties (mlt_frame self)
int mlt_frame_push_audio (mlt_frame self, void *that)
int mlt_frame_push_frame (mlt_frame self, mlt_frame that)
int mlt_frame_push_get_image (mlt_frame self, mlt_get_image get_image)
int mlt_frame_push_service (mlt_frame self, void *that)
int mlt_frame_push_service_int (mlt_frame self, int that)
void mlt_frame_replace_image (mlt_frame self, uint8_t *image, mlt_image_format format, int width, int height)
mlt_deque mlt_frame_service_stack (mlt_frame self)
int mlt_frame_set_alpha (mlt_frame self, uint8_t *alpha, int size, mlt_destructor destroy)
int mlt_frame_set_aspect_ratio (mlt_frame self, double value)
int mlt_frame_set_audio (mlt_frame self, void *buffer, mlt_audio_format, int size, mlt_destructor)
int mlt_frame_set_image (mlt_frame self, uint8_t *image, int size, mlt_destructor destroy)
int mlt_frame_set_position (mlt_frame self, mlt_position value)
mlt_properties mlt_frame_unique_properties (mlt_frame self, mlt_service service)
void mlt_frame_write_ppm (mlt_frame frame)
const char * mlt_image_format_name (mlt_image_format format)
int mlt_image_format_size (mlt_image_format format, int width, int height, int *bpp)
int mlt_sample_calculator (float fps, int frequency, int64_t position)
int64_t mlt_sample_calculator_to_now (float fps, int frequency, int64_t position)

Detailed Description

interface for all frame classes

See also:
mlt_frame_s

Copyright (C) 2003-2009 Ushodaya Enterprises Limited

Author:
Charles Yates <charles.yates@pandora.be>

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA


Define Documentation

#define MLT_FRAME_AUDIO_STACK (   frame)    ( ( frame )->stack_audio )
#define MLT_FRAME_IMAGE_STACK (   frame)    ( ( frame )->stack_image )
#define MLT_FRAME_PROPERTIES (   frame)    ( &( frame )->parent )
#define MLT_FRAME_SERVICE_STACK (   frame)    ( ( frame )->stack_service )
#define RGB2YUV_601_SCALED (   r,
  g,
  b,
  y,
  u,
 
)
Value:
y = ((263*r + 516*g + 100*b) >> 10) + 16;\
  u = ((-152*r - 300*g + 450*b) >> 10) + 128;\
  v = ((450*r - 377*g - 73*b) >> 10) + 128;

This macro scales RGB into the YUV gamut - y is scaled by 219/255 and uv by 224/255.


Typedef Documentation

typedef int( * mlt_get_audio)(mlt_frame self, void **buffer, mlt_audio_format *format, int *frequency, int *channels, int *samples)

Callback function to get audio data.

typedef int( * mlt_get_image)(mlt_frame self, uint8_t **buffer, mlt_image_format *format, int *width, int *height, int writable)

Callback function to get video data.


Function Documentation

const char* mlt_audio_format_name ( mlt_audio_format  format)
int mlt_audio_format_size ( mlt_audio_format  format,
int  samples,
int  channels 
)
mlt_frame mlt_frame_clone ( mlt_frame  self,
int  is_deep 
)
void mlt_frame_close ( mlt_frame  self)
uint8_t* mlt_frame_get_alpha_mask ( mlt_frame  self)
double mlt_frame_get_aspect_ratio ( mlt_frame  self)
int mlt_frame_get_audio ( mlt_frame  self,
void **  buffer,
mlt_audio_format format,
int *  frequency,
int *  channels,
int *  samples 
)
int mlt_frame_get_image ( mlt_frame  self,
uint8_t **  buffer,
mlt_image_format format,
int *  width,
int *  height,
int  writable 
)
mlt_producer mlt_frame_get_original_producer ( mlt_frame  self)
mlt_position mlt_frame_get_position ( mlt_frame  self)
unsigned char* mlt_frame_get_waveform ( mlt_frame  self,
int  w,
int  h 
)
mlt_frame mlt_frame_init ( mlt_service  service)
int mlt_frame_is_test_audio ( mlt_frame  self)
int mlt_frame_is_test_card ( mlt_frame  self)
void* mlt_frame_pop_audio ( mlt_frame  self)
mlt_frame mlt_frame_pop_frame ( mlt_frame  self)
mlt_get_image mlt_frame_pop_get_image ( mlt_frame  self)
void* mlt_frame_pop_service ( mlt_frame  self)
int mlt_frame_pop_service_int ( mlt_frame  self)
mlt_properties mlt_frame_properties ( mlt_frame  self)
int mlt_frame_push_audio ( mlt_frame  self,
void *  that 
)
int mlt_frame_push_frame ( mlt_frame  self,
mlt_frame  that 
)
int mlt_frame_push_get_image ( mlt_frame  self,
mlt_get_image  get_image 
)
int mlt_frame_push_service ( mlt_frame  self,
void *  that 
)
int mlt_frame_push_service_int ( mlt_frame  self,
int  that 
)
void mlt_frame_replace_image ( mlt_frame  self,
uint8_t *  image,
mlt_image_format  format,
int  width,
int  height 
)
mlt_deque mlt_frame_service_stack ( mlt_frame  self)
int mlt_frame_set_alpha ( mlt_frame  self,
uint8_t *  alpha,
int  size,
mlt_destructor  destroy 
)
int mlt_frame_set_aspect_ratio ( mlt_frame  self,
double  value 
)
int mlt_frame_set_audio ( mlt_frame  self,
void *  buffer,
mlt_audio_format  ,
int  size,
mlt_destructor   
)
int mlt_frame_set_image ( mlt_frame  self,
uint8_t *  image,
int  size,
mlt_destructor  destroy 
)
int mlt_frame_set_position ( mlt_frame  self,
mlt_position  value 
)
mlt_properties mlt_frame_unique_properties ( mlt_frame  self,
mlt_service  service 
)
void mlt_frame_write_ppm ( mlt_frame  frame)
const char* mlt_image_format_name ( mlt_image_format  format)
int mlt_image_format_size ( mlt_image_format  format,
int  width,
int  height,
int *  bpp 
)
int mlt_sample_calculator ( float  fps,
int  frequency,
int64_t  position 
)
int64_t mlt_sample_calculator_to_now ( float  fps,
int  frequency,
int64_t  position 
)
TWiki Appliance - Powered by TurnKey Linux