X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=docs%2Fframework.txt;h=0ef24a97f936a127dc9d5717cb98e8f7a32ca42b;hb=bea649aa7c6f4f4c57b67678be7dfe74d4db66b3;hp=e00d192a1a9d35a198bb1d5279d5188484afb7d3;hpb=2a800ec4c840132c7a629b764b673dce09771637;p=melted diff --git a/docs/framework.txt b/docs/framework.txt index e00d192..0ef24a9 100644 --- a/docs/framework.txt +++ b/docs/framework.txt @@ -652,7 +652,6 @@ mlt_properties: To show all the name/value pairs in a properties, it is possible to iterate through them: - int i = 0; for ( i = 0; i < mlt_properties_count( properties ); i ++ ) printf( "%s = %s\n", mlt_properties_get_name( properties, i ), mlt_properties_get_value( properties, i ) ); @@ -729,8 +728,10 @@ mlt_deque: * Reverse Polish Notation (RPN) image and audio operations * memory pooling - The queuing operations are used in typical frame based consumers to allow - buffering. + The queuing operations are used in: + + * the consumer base class; + * consumer implementations may require further queues. mlt_pool: @@ -904,7 +905,7 @@ mlt_frame: +------------------+------------------------------------+------------------+ |samples |The samples of the audio | | +------------------+------------------------------------+------------------+ - |aspect_ratio |The aspect ratio of the image |double | + |aspect_ratio |The sample aspect ratio of the image|double | +------------------+------------------------------------+------------------+ |test_image |Used to indicate no image available |0 or 1 | +------------------+------------------------------------+------------------+ @@ -958,6 +959,7 @@ mlt_frame: void *mlt_frame_pop_audio( mlt_frame this ); void mlt_frame_close( mlt_frame this ); + mlt_service: The service base class extends properties and allows 0 to m inputs and 0 to @@ -992,7 +994,7 @@ mlt_service: Typically, only direct descendents of services need invoke these methods and developers are encouraged to use those extensions when definining new - services. + services. mlt_producer: @@ -1040,6 +1042,7 @@ mlt_producer: The public interface is defined by the following functions: + mlt_producer mlt_producer_new( ); int mlt_producer_init( mlt_producer this, void *child ); mlt_service mlt_producer_service( mlt_producer this ); mlt_properties mlt_producer_properties( mlt_producer this ); @@ -1057,46 +1060,6 @@ mlt_producer: void mlt_producer_prepare_next( mlt_producer this ); void mlt_producer_close( mlt_producer this ); - For the sake of discussion here, we'll assume that someone wants to provide - a new producer which simply generates green frames and silent audio :-) - - we'll call the producer 'green'. - - // Forward reference - static int producer_get_frame( mlt_service service, mlt_frame_ptr frame, int index ); - - mlt_producer producer_green( void *arg ) - { - // Create a new producer - mlt_producer this = mlt_producer_new( ); - - // Check that we were allocated a new producer - if ( this != NULL ) - { - // Get the service - mlt_service service = mlt_producer_service( this ); - - // We need to override the get_frame method - service->get_frame = producer_get_frame; - } - - // Return this producer - return this; - } - - static int producer_get_frame( mlt_service service, mlt_frame_ptr frame, int index ) - { - // Create a new frame - *frame = mlt_frame_init( ); - - // Specify the get_image - mlt_frame_push_get_image( *frame, producer_get_image ); - - // Specify the get_audio - mlt_frame_push_audio( *frame, producer_get_audio ); - - // Return that all was successful - return 0; - } mlt_filter: @@ -1178,7 +1141,3 @@ mlt_playlist: void mlt_playlist_close( mlt_playlist this ); mlt_tractor: - - -mlt_factory -