]> git.sesse.net Git - mlt/commitdiff
Consumer sdl preview correction - attach colour space conversion on start
authorlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Mon, 22 Nov 2004 10:11:58 +0000 (10:11 +0000)
committerlilo_booter <lilo_booter@d19143bc-622f-0410-bfdd-b5b2a6649095>
Mon, 22 Nov 2004 10:11:58 +0000 (10:11 +0000)
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

index 998d3e09fc9a94fd5dd0f8a3a6e7f5544baa2832..13f73ee52a0c29084ea11ba551a04f865f098b6e 100644 (file)
@@ -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;