// Get the properties of the filter
mlt_properties properties = MLT_FILTER_PROPERTIES( this );
+ mlt_service_lock( MLT_FILTER_SERVICE( this ) );
+
// Get the producer from the filter
mlt_producer producer = mlt_properties_get_data( properties, "producer", NULL );
mlt_properties_pass( producer_properties, properties, "producer." );
}
+ mlt_service_unlock( MLT_FILTER_SERVICE( this ) );
+
// Only continue if we have both producer and composite
if ( composite != NULL && producer != NULL )
{
// Set the b frame to be in the same position and have same consumer requirements
mlt_frame_set_position( b_frame, position );
mlt_properties_set_double( b_props, "consumer_aspect_ratio", mlt_properties_get_double( a_props, "consumer_aspect_ratio" ) );
- mlt_properties_set_int( b_props, "consumer_deinterlace", mlt_properties_get_double( a_props, "consumer_deinterlace" ) );
- mlt_properties_set_int( b_props, "output_ratio", mlt_properties_get_double( a_props, "output_ratio" ) );
+ mlt_properties_set_int( b_props, "consumer_deinterlace", mlt_properties_get_int( a_props, "consumer_deinterlace" ) || mlt_properties_get_int( properties, "deinterlace" ) );
+ mlt_properties_set_double( b_props, "output_ratio", mlt_properties_get_double( a_props, "output_ratio" ) );
// Check for the special case - no aspect ratio means no problem :-)
if ( mlt_frame_get_aspect_ratio( b_frame ) == 0 )
mlt_properties_set_int( b_props, "distort", 1 );
}
+ *format = mlt_image_yuv422;
if ( mlt_properties_get_int( properties, "reverse" ) == 0 )
{
// Apply all filters that are attached to this filter to the b frame
char temp[ 132 ];
int count = 0;
uint8_t *alpha = NULL;
- char *rescale = mlt_properties_get( a_props, "rescale.interp" );
+ const char *rescale = mlt_properties_get( a_props, "rescale.interp" );
if ( rescale == NULL || !strcmp( rescale, "none" ) )
rescale = "hyper";
mlt_transition_process( composite, b_frame, frame );
{
mlt_properties properties = MLT_FILTER_PROPERTIES( this );
this->process = filter_process;
- mlt_properties_set( properties, "factory", "fezzik" );
+ mlt_properties_set( properties, "factory", mlt_environment( "MLT_PRODUCER" ) );
if ( arg != NULL )
mlt_properties_set( properties, "resource", arg );
// Ensure that attached filters are handled privately