if ( real_time_output && frames % 25 == 0 )
{
long passed = time_difference( &ante );
- long pending = ( ( ( long )sample_fifo_used( fifo ) * 1000 ) / frequency ) * 1000;
- passed -= pending;
+ if ( fifo != NULL )
+ {
+ long pending = ( ( ( long )sample_fifo_used( fifo ) * 1000 ) / frequency ) * 1000;
+ passed -= pending;
+ }
if ( passed < total_time )
{
long total = ( total_time - passed );
{
mlt_properties luma_properties = mlt_transition_properties( luma );
mlt_properties_set_int( luma_properties, "in", 0 );
- mlt_properties_set_int( luma_properties, "out", 24 );
+ mlt_properties_set_int( luma_properties, "out", out );
mlt_properties_set_int( luma_properties, "reverse", 1 );
mlt_properties_pass( luma_properties, properties, "luma." );
mlt_properties_set_data( properties, "luma", luma, 0, ( mlt_destructor )mlt_transition_close, NULL );
// Ensure we get scaling on the b_frame
mlt_properties_set( b_props, "rescale.interp", "nearest" );
+ if ( mlt_properties_get( properties, "fixed" ) )
+ mix = mlt_properties_get_double( properties, "fixed" );
+
if ( luma_width > 0 && luma_height > 0 && luma_bitmap != NULL )
// Composite the frames using a luma map
luma_composite( a_frame, b_frame, luma_width, luma_height, luma_bitmap, mix, frame_delta,