+ // Pass all unique meta properties from the producer's frame to the new frame
+ mlt_properties_lock( temp_properties );
+ int props_count = mlt_properties_count( temp_properties );
+ int j;
+ for ( j = 0; j < props_count; j ++ )
+ {
+ char *name = mlt_properties_get_name( temp_properties, j );
+ if ( !strncmp( name, "meta.", 5 ) && !mlt_properties_get( frame_properties, name ) )
+ mlt_properties_set( frame_properties, name, mlt_properties_get_value( temp_properties, j ) );
+ }
+ mlt_properties_unlock( temp_properties );
+
+ // Copy the format conversion virtual functions
+ if ( ! (*frame)->convert_image && temp->convert_image )
+ (*frame)->convert_image = temp->convert_image;
+ if ( ! (*frame)->convert_audio && temp->convert_audio )
+ (*frame)->convert_audio = temp->convert_audio;
+