+ else if ( producer != NULL )
+ {
+ mlt_frame test_frame = NULL;
+ mlt_service_get_frame( mlt_producer_service( producer ), &test_frame, 0 );
+ if ( test_frame != NULL )
+ {
+ mlt_properties test_properties = mlt_frame_properties( test_frame );
+ mlt_properties_set_double( test_properties, "consumer_aspect_ratio", mlt_properties_get_double( properties, "consumer_aspect_ratio" ) );
+ mlt_properties_set( test_properties, "rescale.interp", mlt_properties_get( properties, "rescale.interp" ) );
+ mlt_frame_get_image( test_frame, buffer, format, width, height, writable );
+ mlt_properties_set_data( properties, "test_card_frame", test_frame, 0, ( mlt_destructor )mlt_frame_close, NULL );
+ mlt_properties_set_data( properties, "image", *buffer, *width * *height * 2, NULL, NULL );
+ mlt_properties_set_int( properties, "width", *width );
+ mlt_properties_set_int( properties, "height", *height );
+ mlt_properties_set_double( properties, "aspect_ratio", mlt_frame_get_aspect_ratio( test_frame ) );
+ }
+ else
+ {
+ mlt_properties_set_data( properties, "test_card_producer", NULL, 0, NULL, NULL );
+ mlt_frame_get_image( this, buffer, format, width, height, writable );
+ }
+ }