[FFmpeg-devel] [PATCH] Fix mlib DCT routine in dsputil

Måns Rullgård mans
Thu Mar 27 09:41:18 CET 2008


Albert Lee <trisk+xine at acm.jhu.edu> writes:

> Hi,
>
> The ff_fdct_mlib() in dsputil has been broken for a long time; it
> assumes the mediaLib DCT scales its output by 8 (as libjpeg's does).
> This results in a well-known "green tint" problem. The attached patch
> adds the scaling.
>
> I'm also attaching the email from the mediaLib engineer who proposed the
> fix.
>
> --- ffmpeg-export-2007-07-31.orig/libavcodec/mlib/dsputil_mlib.c	Tue Jul 31 02:16:05 2007
> +++ ffmpeg-export-2007-07-31/libavcodec/mlib/dsputil_mlib.c	Tue Mar 18 23:55:41 2008
> @@ -416,7 +416,10 @@
>  
>  static void ff_fdct_mlib(DCTELEM *data)
>  {
> +    const mlib_s16 c[1] = {8};

Useless array.  Should be static.

>      mlib_VideoDCT8x8_S16_S16 (data, data);
> +    mlib_VectorMulS_S16_Sat(data, (mlib_s16 *)&c, 64); /* scaling data by 8 */

Useless cast, useless comment.

-- 
M?ns Rullg?rd
mans at mansr.com




More information about the ffmpeg-devel mailing list