From: lilo_booter Date: Thu, 19 Aug 2004 20:38:29 +0000 (+0000) Subject: Colour space conversion with gdkpixbuf scaling X-Git-Url: http://research.m1stereo.tv/gitweb?a=commitdiff_plain;h=79d3c5ad4272c5bfd36dcb5e9a1a77bc04338983;p=melted Colour space conversion with gdkpixbuf scaling git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@379 d19143bc-622f-0410-bfdd-b5b2a6649095 --- diff --git a/src/modules/core/filter_rescale.c b/src/modules/core/filter_rescale.c index a028f6c..dfbec8f 100644 --- a/src/modules/core/filter_rescale.c +++ b/src/modules/core/filter_rescale.c @@ -140,6 +140,7 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format * int owidth = *width; int oheight = *height; char *interps = mlt_properties_get( properties, "rescale.interp" ); + int wanted_format = *format; // Default from the scaler if not specifed on the frame if ( interps == NULL ) @@ -189,6 +190,15 @@ static int filter_get_image( mlt_frame this, uint8_t **image, mlt_image_format * *width = owidth; *height = oheight; } + else if ( *format == mlt_image_rgb24 && wanted_format == mlt_image_rgb24 ) + { + // Call the local scaler + scaler_method( this, image, *format, mlt_image_rgb24, iwidth, iheight, owidth, oheight ); + + // Return the output + *width = owidth; + *height = oheight; + } else if ( *format == mlt_image_rgb24 || *format == mlt_image_rgb24a ) { // Call the local scaler diff --git a/src/modules/gtk2/factory.c b/src/modules/gtk2/factory.c index d846e64..554a600 100644 --- a/src/modules/gtk2/factory.c +++ b/src/modules/gtk2/factory.c @@ -26,6 +26,7 @@ void *mlt_create_producer( char *id, void *arg ) { + g_type_init( ); if ( !strcmp( id, "pixbuf" ) ) return producer_pixbuf_init( arg ); else if ( !strcmp( id, "pango" ) ) @@ -35,6 +36,7 @@ void *mlt_create_producer( char *id, void *arg ) void *mlt_create_filter( char *id, void *arg ) { + g_type_init( ); if ( !strcmp( id, "gtkrescale" ) ) return filter_rescale_init( arg ); return NULL;