mlt_properties hide_map;
char *root;
char *store;
+ int no_meta;
};
typedef struct serialise_context_s* serialise_context;
if ( name != NULL &&
name[ 0 ] != '_' &&
mlt_properties_get_value( properties, i ) != NULL &&
- strcmp( name, "mlt" ) != 0 &&
- strcmp( name, "in" ) != 0 &&
- strcmp( name, "out" ) != 0 &&
- strcmp( name, "id" ) != 0 &&
- strcmp( name, "title" ) != 0 &&
- strcmp( name, "root" ) != 0 &&
- strcmp( name, "width" ) != 0 &&
- strcmp( name, "height" ) != 0 )
+ ( !context->no_meta || strncmp( name, "meta.", 5 ) ) &&
+ strcmp( name, "mlt" ) &&
+ strcmp( name, "in" ) &&
+ strcmp( name, "out" ) &&
+ strcmp( name, "id" ) &&
+ strcmp( name, "title" ) &&
+ strcmp( name, "root" ) &&
+ strcmp( name, "width" ) &&
+ strcmp( name, "height" ) )
{
char *value = mlt_properties_get_value( properties, i );
int rootlen = strlen( context->root );
xmlNewProp( track, _x("in"), _x(mlt_properties_get( properties, "in" )) );
xmlNewProp( track, _x("out"), _x(mlt_properties_get( properties, "out" )) );
serialise_store_properties( context, MLT_PRODUCER_PROPERTIES( producer ), track, context->store );
- serialise_store_properties( context, MLT_PRODUCER_PROPERTIES( producer ), track, "meta." );
+ if ( !context->no_meta )
+ serialise_store_properties( context, MLT_PRODUCER_PROPERTIES( producer ), track, "meta." );
serialise_service_filters( context, MLT_PRODUCER_SERVICE( producer ), track );
}
// Store application specific properties
serialise_store_properties( context, properties, child, context->store );
- serialise_store_properties( context, properties, child, "meta." );
+ if ( !context->no_meta )
+ serialise_store_properties( context, properties, child, "meta." );
// Add producer to the map
mlt_properties_set_int( context->hide_map, id, mlt_properties_get_int( properties, "hide" ) );
if ( mlt_producer_is_cut( info.cut ) )
{
serialise_store_properties( context, MLT_PRODUCER_PROPERTIES( info.cut ), entry, context->store );
- serialise_store_properties( context, MLT_PRODUCER_PROPERTIES( info.cut ), entry, "meta." );
+ if ( !context->no_meta )
+ serialise_store_properties( context, MLT_PRODUCER_PROPERTIES( info.cut ), entry, "meta." );
serialise_service_filters( context, MLT_PRODUCER_SERVICE( info.cut ), entry );
}
}
// Store application specific properties
serialise_store_properties( context, MLT_SERVICE_PROPERTIES( service ), child, context->store );
- serialise_store_properties( context, MLT_SERVICE_PROPERTIES( service ), child, "meta." );
+ if ( !context->no_meta )
+ serialise_store_properties( context, MLT_SERVICE_PROPERTIES( service ), child, "meta." );
// Recurse on connected producer
serialise_service( context, mlt_service_producer( service ), child );
// Assign the additional 'storage' pattern for properties
context->store = mlt_properties_get( MLT_CONSUMER_PROPERTIES( consumer ), "store" );
+ context->no_meta = mlt_properties_get_int( MLT_CONSUMER_PROPERTIES( consumer ), "no_meta" );
// Assign a title property
if ( mlt_properties_get( properties, "title" ) != NULL )