{
// Determine eof handling
char *eof = mlt_properties_get( mlt_producer_properties( this ), "eof" );
+ int use_points = 1 - mlt_properties_get_int( mlt_producer_properties( this ), "ignore_points" );
// Check bounds
if ( position < 0 )
{
position = 0;
}
- else if ( !strcmp( eof, "pause" ) && position >= mlt_producer_get_playtime( this ) )
+ else if ( use_points && !strcmp( eof, "pause" ) && position >= mlt_producer_get_playtime( this ) )
{
mlt_producer_set_speed( this, 0 );
position = mlt_producer_get_playtime( this ) - 1;
}
- else if ( !strcmp( eof, "loop" ) && position >= mlt_producer_get_playtime( this ) )
+ else if ( use_points && !strcmp( eof, "loop" ) && position >= mlt_producer_get_playtime( this ) )
{
position = position % mlt_producer_get_playtime( this );
}
mlt_properties_set_position( mlt_producer_properties( this ), "_position", position );
// Calculate the absolute frame
- mlt_properties_set_position( mlt_producer_properties( this ), "_frame", mlt_producer_get_in( this ) + position );
+ mlt_properties_set_position( mlt_producer_properties( this ), "_frame", use_points * mlt_producer_get_in( this ) + position );
return 0;
}
temp[ strlen( temp ) - 1 ] = '\0';
// Parse and set the property
- if ( strcmp( temp, "" ) )
+ if ( strcmp( temp, "" ) && temp[ 0 ] != '#' )
mlt_properties_parse( this, temp );
}
*.avi=avformat
*.dv=mcdv,libdv,avformat
*.dif=mcdv,libdv
+*.gif=pixbuf
*.jpg=pixbuf
*.jpeg=pixbuf
*.mp3=avformat
*.ogg=vorbis
*.png=pixbuf
*.svg=pixbuf
+*.tga=pixbuf
*.txt=pango
*.wav=avformat
*.wmv=avformat
// We need to ensure that all further properties are mirrored in the producer
mlt_properties_mirror( properties, mlt_producer_properties( producer ) );
+ // Ensure that the inner producer ignores the in point
+ mlt_properties_set_int( mlt_producer_properties( producer ), "ignore_points", 1 );
+
// Now, we return the producer of the tractor
producer = mlt_tractor_producer( tractor );
}
mlt_properties_set( this->properties, "rescale", "nearest" );
// Default buffer for low latency
- mlt_properties_set_int( this->properties, "buffer", 8 );
+ mlt_properties_set_int( this->properties, "buffer", 2 );
// Default progressive true
mlt_properties_set_int( this->properties, "progressive", 0 );
mlt_position length = mlt_producer_get_playtime( track0 );
// Create the watermark track
- mlt_producer track1 = mlt_factory_producer( "fezzik", "pango" );
+ mlt_producer track1 = mlt_factory_producer( "fezzik", "pango:" );
// Get the properties of track1
mlt_properties properties = mlt_producer_properties( track1 );