+ // Since we are the consumer of the b_frame, we must pass along these
+ // consumer properties from the a_frame
+ mlt_properties_set_double( b_props, "consumer_deinterlace", mlt_properties_get_double( a_props, "consumer_deinterlace" ) );
+ mlt_properties_set_double( b_props, "consumer_aspect_ratio", mlt_properties_get_double( a_props, "consumer_aspect_ratio" ) );
+ mlt_properties_set_int( b_props, "normalised_width", mlt_properties_get_double( a_props, "normalised_width" ) );
+ mlt_properties_set_int( b_props, "normalised_height", mlt_properties_get_double( a_props, "normalised_height" ) );
+
+ // TODO: Dangerous/temporary optimisation - if nothing to do, then do nothing
+ if ( mlt_properties_get_int( properties, "no_alpha" ) &&
+ result.item.x == 0 && result.item.y == 0 && result.item.w == *width && result.item.h == *height && result.item.mix == 100 )
+ {
+ mlt_frame_get_image( b_frame, image, format, width, height, 1 );
+ if ( !mlt_frame_is_test_card( a_frame ) )
+ mlt_frame_replace_image( a_frame, *image, *format, *width, *height );
+ return 0;
+ }
+
+ // Get the image from the a frame
+ mlt_frame_get_image( a_frame, image, format, width, height, 1 );
+