return start + position * o;
}
-static void mlt_geometry_virtual_refresh( mlt_geometry self )
+void mlt_geometry_interpolate( mlt_geometry self )
{
geometry g = self->local;
// Now insert into place
mlt_geometry_insert( self, &item );
}
+ mlt_geometry_interpolate( self );
// Remove the tokeniser
mlt_tokeniser_close( tokens );
g->item->data.f[4] = 1;
}
- // Refresh all geometries
- mlt_geometry_virtual_refresh( self );
-
// TODO: Error checking
return 0;
}
if ( place != NULL && position == place->data.frame )
ret = mlt_geometry_drop( self, place );
- // Refresh all geometries
- mlt_geometry_virtual_refresh( self );
-
return ret;
}
return place == NULL;
}
-#define ISINT(x) ( (x) == (int) (x) )
+#define ISINT(x) ( (x) == (int64_t) (x) )
#define PICKFMT(x) ( ISINT(x) ? "%.0f" : "%f" )
char *mlt_geometry_serialise_cut( mlt_geometry self, int in, int out )
sprintf( temp + strlen( temp ), PICKFMT( item.mix ), item.mix );
}
- if ( used + strlen( temp ) > size )
+ if ( used + strlen( temp ) + 2 > size ) // +2 for ';' and NULL
{
size += 1000;
ret = realloc( ret, size );