Re: [Mlt-devel] [PATCH] New BurningTV effect (resend)
Brought to you by:
ddennedy,
lilo_booter
From: Dan D. <da...@de...> - 2007-06-10 21:10:48
|
On Sunday 10 June 2007 04:11, Stephane Fillod wrote: > Please find attached a patch adding a new effect from EffecTV: BurningTV > http://effectv.sourceforge.net/burn.html Thanks for your contribution! I need more time to review, but I do like that you have exposed BurningTV's parameters. I want to be sure we can use as much of EffecTV functionality as possible and not "drop it in." Please think about how we can specify the the background snapshot that some of the effects require and whether it makes to be anything but the in point's image. > I've been unable to add the empty "gpl" file in the patch file, so > please create it in the new src/modules/effectv directory, since this > effect module is distributed under GPL. no problem > Rem: I created a new function mlt_convert_rgb24x_to_yuv422 in the MLT > framework. I am going to drop that part of your patch and change existing routines to accept a NULL alpha parameter: Index: mlt_frame.c =================================================================== --- mlt_frame.c (revision 984) +++ mlt_frame.c (working copy) @@ -565,6 +565,7 @@ register uint8_t *d = yuv; register int i, j; + if (alpha) for ( i = 0; i < height; i++ ) { register uint8_t *s = rgba + ( stride * i ); @@ -596,6 +597,39 @@ *d++ = u0; } } + else + for ( i = 0; i < height; i++ ) + { + register uint8_t *s = rgba + ( stride * i ); + for ( j = 0; j < ( width / 2 ); j++ ) + { + r = *s++; + g = *s++; + b = *s++; + s++; + RGB2YUV (r, g, b, y0, u0 , v0); + r = *s++; + g = *s++; + b = *s++; + s++; + RGB2YUV (r, g, b, y1, u1 , v1); + *d++ = y0; + *d++ = (u0+u1) >> 1; + *d++ = y1; + *d++ = (v0+v1) >> 1; + } + if ( width % 2 ) + { + r = *s++; + g = *s++; + b = *s++; + s++; + RGB2YUV (r, g, b, y0, u0 , v0); + *d++ = y0; + *d++ = u0; + } + } + return ret; } |