From: lilo_booter Date: Sat, 8 Jan 2005 12:57:36 +0000 (+0000) Subject: Corrections to geometry next key and serialise X-Git-Url: http://research.m1stereo.tv/gitweb?a=commitdiff_plain;h=34c08944960aa79de3d038809d66637701b7567f;p=melted Corrections to geometry next key and serialise git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@605 d19143bc-622f-0410-bfdd-b5b2a6649095 --- diff --git a/src/framework/mlt_geometry.c b/src/framework/mlt_geometry.c index 2bfbe77..8dc3611 100644 --- a/src/framework/mlt_geometry.c +++ b/src/framework/mlt_geometry.c @@ -442,6 +442,7 @@ int mlt_geometry_fetch( mlt_geometry this, mlt_geometry_item item, float positio else { memset( item, 0, sizeof( struct mlt_geometry_item_s ) ); + item->frame = position; item->mix = 100; } @@ -574,6 +575,7 @@ int mlt_geometry_prev_key( mlt_geometry this, mlt_geometry_item item, int positi char *mlt_geometry_serialise_cut( mlt_geometry this, int in, int out ) { + geometry self = this->local; struct mlt_geometry_item_s item; char *ret = malloc( 1000 ); int used = 0; @@ -602,6 +604,14 @@ char *mlt_geometry_serialise_cut( mlt_geometry this, int in, int out ) if ( mlt_geometry_fetch( this, &item, item.frame ) ) break; + // If the first key is larger than the current position + // then do nothing here + if ( self->item->data.frame > item.frame ) + { + item.frame ++; + continue; + } + // To ensure correct seeding, ensure all values are fixed item.f[0] = 1; item.f[1] = 1;