]> git.sesse.net Git - mlt/commitdiff
Let vector property of videostab(2) be read directly as mlt_geometry.
authorDan Dennedy <dan@dennedy.org>
Sat, 20 Oct 2012 05:30:07 +0000 (22:30 -0700)
committerDan Dennedy <dan@dennedy.org>
Sat, 20 Oct 2012 05:30:07 +0000 (22:30 -0700)
src/framework/mlt_geometry.c
src/modules/videostab/filter_videostab.c
src/modules/videostab/filter_videostab2.c

index c4d989fb13408e5b92f89ad8ca41683b1bf58e7d..301963ddca24b0fe0ed0eea7796b8d11ae09bd4b 100644 (file)
@@ -689,7 +689,7 @@ char *mlt_geometry_serialise( mlt_geometry self )
                        free( g->data );
                g->data = ret;
        }
-       return ret;
+       return strdup( ret );
 }
 
 // Close the geometry
index 3dcdcd5036a44ce2369355b95fe87fbc8f9dc70a..f6f860007060bdad51504835eb7c9aa5a20d278d 100644 (file)
@@ -72,8 +72,8 @@ static void serialize_vectors( videostab self, mlt_position length )
 
                // Put the analysis results in a property
                mlt_geometry_set_length( g, length );
-               mlt_properties_set( MLT_FILTER_PROPERTIES( self->parent ), "vectors", mlt_geometry_serialise( g ) );
-               mlt_geometry_close( g );
+               mlt_properties_set_data( MLT_FILTER_PROPERTIES( self->parent ), "vectors", g, 0,
+                       (mlt_destructor) mlt_geometry_close, (mlt_serialiser) mlt_geometry_serialise );
        }
 }
 
index f30e95528de9d289e361709565daf37201943ed4..474c7f7fa48990473e5c1fda464f3e55966c96a0 100644 (file)
@@ -48,8 +48,8 @@ static void serialize_vectors( videostab2_data* self, mlt_position length )
                mlt_position i;
 
                // Initialize geometry item
-               item.key = item.f[0] = item.f[1] = 1;
-               item.f[2] = item.f[3] = item.f[4] = 1;
+               item.key = item.f[0] = item.f[1] = item.f[2] = item.f[3] = 1;
+               item.f[4] = 0;
 
                tlist* transform_data =self->stab->transs;
                for ( i = 0; i < length; i++ )
@@ -72,8 +72,8 @@ static void serialize_vectors( videostab2_data* self, mlt_position length )
 
                // Put the analysis results in a property
                mlt_geometry_set_length( g, length );
-               mlt_properties_set( MLT_FILTER_PROPERTIES( (mlt_filter) self->parent ), "vectors", mlt_geometry_serialise( g ) );
-               mlt_geometry_close( g );
+               mlt_properties_set_data( MLT_FILTER_PROPERTIES( (mlt_filter) self->parent ), "vectors", g, 0,
+                       (mlt_destructor) mlt_geometry_close, (mlt_serialiser) mlt_geometry_serialise );
        }
 }
 // scale zoom implements the factor that the vetcors must be scaled since the vector is calulated for real with, now we need it for (scaled)width