From 2da2cbad1bf870a02d095c21f8c157a92a9be84b Mon Sep 17 00:00:00 2001 From: lilo_booter Date: Mon, 22 Nov 2004 10:11:58 +0000 Subject: [PATCH] Consumer sdl preview correction - attach colour space conversion on start git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@534 d19143bc-622f-0410-bfdd-b5b2a6649095 --- src/modules/sdl/consumer_sdl_still.c | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/sdl/consumer_sdl_still.c b/src/modules/sdl/consumer_sdl_still.c index 998d3e0..13f73ee 100644 --- a/src/modules/sdl/consumer_sdl_still.c +++ b/src/modules/sdl/consumer_sdl_still.c @@ -57,6 +57,7 @@ struct consumer_sdl_s uint8_t *buffer; int last_position; mlt_producer last_producer; + int filtered; }; /** Forward references to static functions. @@ -85,12 +86,6 @@ mlt_consumer consumer_sdl_still_init( char *arg ) // Get the parent consumer object mlt_consumer parent = &this->parent; - // Attach a colour space converter - mlt_filter filter = mlt_factory_filter( "avcolour_space", NULL ); - mlt_properties_set_int( mlt_filter_properties( filter ), "forced", mlt_image_yuv422 ); - mlt_service_attach( mlt_consumer_service( &this->parent ), filter ); - mlt_filter_close( filter ); - // We have stuff to clean up, so override the close method parent->close = consumer_close; @@ -162,7 +157,17 @@ static int consumer_start( mlt_consumer parent ) if ( !this->running ) { pthread_attr_t thread_attributes; - + + // Attach a colour space converter + if ( !this->filtered ) + { + mlt_filter filter = mlt_factory_filter( "avcolour_space", NULL ); + mlt_properties_set_int( mlt_filter_properties( filter ), "forced", mlt_image_yuv422 ); + mlt_service_attach( mlt_consumer_service( &this->parent ), filter ); + mlt_filter_close( filter ); + this->filtered = 1; + } + consumer_stop( parent ); this->last_position = -1; -- 1.7.4.4