From 86d97ccb0497f898266aab31edafb74dce8ecaf8 Mon Sep 17 00:00:00 2001 From: Dan Dennedy Date: Sun, 4 Sep 2011 23:05:37 -0700 Subject: [PATCH] Fix XML and melt producers producer_avformat cache size. Use track-count + 2 in case a track is using a mixer between playlist items. --- src/modules/melt/producer_melt.c | 3 ++- src/modules/xml/producer_xml.c | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modules/melt/producer_melt.c b/src/modules/melt/producer_melt.c index 7b8730ff..8192f2c8 100644 --- a/src/modules/melt/producer_melt.c +++ b/src/modules/melt/producer_melt.c @@ -450,7 +450,8 @@ mlt_producer producer_melt_init( mlt_profile profile, mlt_service_type type, con } // Set the size of the producer_avformat cache to the number of tracks. - mlt_service_cache_set_size( MLT_PLAYLIST_SERVICE( playlist ), "producer_avformat", track + 1 ); + if ( track > mlt_service_cache_get_size( MLT_PLAYLIST_SERVICE( playlist ), "producer_avformat" ) ) + mlt_service_cache_set_size( MLT_PLAYLIST_SERVICE( playlist ), "producer_avformat", track + 2 ); // Connect last producer to playlist if ( producer != NULL && !mlt_producer_is_cut( producer ) ) diff --git a/src/modules/xml/producer_xml.c b/src/modules/xml/producer_xml.c index b9c55e28..bc73f49c 100644 --- a/src/modules/xml/producer_xml.c +++ b/src/modules/xml/producer_xml.c @@ -879,6 +879,10 @@ static void on_end_track( deserialise_context context, const xmlChar *name ) else if ( strcmp( hide_s, "both" ) == 0 ) mlt_properties_set_int( producer_props, "hide", 3 ); } + + // Set the size of the producer_avformat cache to the number of tracks. + if ( multitrack->count > mlt_service_cache_get_size( MLT_MULTITRACK_SERVICE(multitrack), "producer_avformat" ) ) + mlt_service_cache_set_size( MLT_MULTITRACK_SERVICE(multitrack), "producer_avformat", multitrack->count + 2 ); } if ( parent != NULL ) -- 2.39.2