X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fframework%2Fmlt_consumer.c;h=2ba290133d63d4445b529b05f57fe27bc6376766;hb=ebcbb3571620a43fe24b3f8fa0161096ef628dbe;hp=6074655b24a759396d57f6d20a15f1f1d5413257;hpb=f44c1d4653f43c8e7a63e6c3895f6f1f0ee0103b;p=melted diff --git a/src/framework/mlt_consumer.c b/src/framework/mlt_consumer.c index 6074655..2ba2901 100644 --- a/src/framework/mlt_consumer.c +++ b/src/framework/mlt_consumer.c @@ -28,6 +28,8 @@ #include #include +static void mlt_consumer_frame_show( mlt_listener listener, mlt_properties owner, mlt_service this, void **args ); + /** Public final methods */ @@ -84,11 +86,18 @@ int mlt_consumer_init( mlt_consumer this, void *child ) // Hmm - default all consumers to yuv422 :-/ this->format = mlt_image_yuv422; + mlt_events_register( properties, "consumer-frame-show", ( mlt_transmitter )mlt_consumer_frame_show ); mlt_events_register( properties, "consumer-stopped", NULL ); } return error; } +static void mlt_consumer_frame_show( mlt_listener listener, mlt_properties owner, mlt_service this, void **args ) +{ + if ( listener != NULL ) + listener( owner, this, ( mlt_frame )args[ 0 ] ); +} + /** Create a new consumer. */ @@ -211,8 +220,8 @@ mlt_frame mlt_consumer_get_frame( mlt_consumer this ) // Aspect ratio and other jiggery pokery mlt_properties_set_double( frame_properties, "consumer_aspect_ratio", mlt_properties_get_double( properties, "aspect_ratio" ) ); - mlt_properties_set_int( frame_properties, "consumer_progressive", mlt_properties_get_int( properties, "progressive" ) ); - mlt_properties_set_int( frame_properties, "consumer_deinterlace", mlt_properties_get_int( properties, "deinterlace" ) ); + if ( mlt_properties_get_int( properties, "progressive" ) || mlt_properties_get_int( properties, "deinterlace" ) ) + mlt_properties_set_int( frame_properties, "consumer_deinterlace", 1 ); } // Return the frame