Consumer deinterlace_method property added
[melted] / src / framework / mlt_consumer.c
index 3a839d2..8f99db4 100644 (file)
@@ -53,6 +53,8 @@ int mlt_consumer_init( mlt_consumer this, void *child )
                {
                        mlt_properties_set( properties, "normalisation", "PAL" );
                        mlt_properties_set_double( properties, "fps", 25.0 );
+                       mlt_properties_set_int( properties, "frame_rate_den", 25 );
+                       mlt_properties_set_int( properties, "frame_rate_num", 1 );
                        mlt_properties_set_int( properties, "width", 720 );
                        mlt_properties_set_int( properties, "height", 576 );
                        mlt_properties_set_int( properties, "progressive", 0 );
@@ -62,6 +64,8 @@ int mlt_consumer_init( mlt_consumer this, void *child )
                {
                        mlt_properties_set( properties, "normalisation", "NTSC" );
                        mlt_properties_set_double( properties, "fps", 30000.0 / 1001.0 );
+                       mlt_properties_set_int( properties, "frame_rate_den", 30000 );
+                       mlt_properties_set_int( properties, "frame_rate_num", 1001 );
                        mlt_properties_set_int( properties, "width", 720 );
                        mlt_properties_set_int( properties, "height", 480 );
                        mlt_properties_set_int( properties, "progressive", 0 );
@@ -307,6 +311,7 @@ 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_deinterlace", mlt_properties_get_int( properties, "progressive" ) | mlt_properties_get_int( properties, "deinterlace" ) );
+               mlt_properties_set( frame_properties, "deinterlace_method", mlt_properties_get( properties, "deinterlace_method" ) );
        }
 
        // Return the frame
@@ -432,6 +437,7 @@ static void *consumer_read_ahead_thread( void *arg )
                // All non normal playback frames should be shown
                if ( mlt_properties_get_int( MLT_FRAME_PROPERTIES( frame ), "_speed" ) != 1 )
                {
+                       mlt_properties_set_int( MLT_FRAME_PROPERTIES( frame ), "consumer_deinterlace", 1 );
                        skipped = 0;
                        time_frame = 0;
                        time_process = 0;