On Tue, Jan 03, 2012 at 08:24:00PM -0800, Ronald S. Bultje wrote:
> Also document the function somewhat.
> ---
> libswscale/swscale.c | 21 ++++++++++++++++-----
> 1 files changed, 16 insertions(+), 5 deletions(-)
>
> diff --git a/libswscale/swscale.c b/libswscale/swscale.c
> index 11bb7d6..6cd7c11 100644
> --- a/libswscale/swscale.c
> +++ b/libswscale/swscale.c
> @@ -884,9 +884,20 @@ YUV2PACKED16WRAPPER(yuv2, rgb48, rgb48le,
> PIX_FMT_RGB48LE)
> YUV2PACKED16WRAPPER(yuv2, rgb48, bgr48be, PIX_FMT_BGR48BE)
> YUV2PACKED16WRAPPER(yuv2, rgb48, bgr48le, PIX_FMT_BGR48LE)
>
> +/*
> + * Write out 2 RGB pixels in the target pixel format.
> + * This function takes a R/G/B LUT as generated by
> + * ff_yuv2rgb_c_init_tables(), which takes care of
> + * things like endianness conversion, shifting and
> + * things.
You sorta should sort out that sort of things first.
> The caller takes care of setting the
> + * correct chroma offset in these tables from the
> + * U/V chroma values.
Do we have any other chroma values?
> This function then uses the
> + * luminance (Y) values to write out the correct
maybe luminance (Y1/Y2) values?
> + * RGB values into the destination buffer.
> + */
> static av_always_inline void
> yuv2rgb_write(uint8_t *_dest, int i, unsigned Y1, unsigned Y2,
> - unsigned U, unsigned V, unsigned A1, unsigned A2,
> + unsigned A1, unsigned A2,
> const void *_r, const void *_g, const void *_b, int y,
> enum PixelFormat target, int hasAlpha)
> {
> @@ -1053,7 +1064,7 @@ yuv2rgb_X_c_template(SwsContext *c, const int16_t
> *lumFilter,
> g = (c->table_gU[U] + c->table_gV[V]);
> b = c->table_bU[U];
>
> - yuv2rgb_write(dest, i, Y1, Y2, U, V, hasAlpha ? A1 : 0, hasAlpha ?
> A2 : 0,
> + yuv2rgb_write(dest, i, Y1, Y2, hasAlpha ? A1 : 0, hasAlpha ? A2 : 0,
> r, g, b, y, target, hasAlpha);
> }
> }
> @@ -1089,7 +1100,7 @@ yuv2rgb_2_c_template(SwsContext *c, const int16_t
> *buf[2],
> A2 = (abuf0[i * 2 + 1] * yalpha1 + abuf1[i * 2 + 1] * yalpha) >>
> 19;
> }
>
> - yuv2rgb_write(dest, i, Y1, Y2, U, V, hasAlpha ? A1 : 0, hasAlpha ?
> A2 : 0,
> + yuv2rgb_write(dest, i, Y1, Y2, hasAlpha ? A1 : 0, hasAlpha ? A2 : 0,
> r, g, b, y, target, hasAlpha);
> }
> }
> @@ -1121,7 +1132,7 @@ yuv2rgb_1_c_template(SwsContext *c, const int16_t *buf0,
> A2 = abuf0[i * 2 + 1] >> 7;
> }
>
> - yuv2rgb_write(dest, i, Y1, Y2, U, V, hasAlpha ? A1 : 0, hasAlpha
> ? A2 : 0,
> + yuv2rgb_write(dest, i, Y1, Y2, hasAlpha ? A1 : 0, hasAlpha ? A2
> : 0,
> r, g, b, y, target, hasAlpha);
> }
> } else {
> @@ -1140,7 +1151,7 @@ yuv2rgb_1_c_template(SwsContext *c, const int16_t *buf0,
> A2 = abuf0[i * 2 + 1] >> 7;
> }
>
> - yuv2rgb_write(dest, i, Y1, Y2, U, V, hasAlpha ? A1 : 0, hasAlpha
> ? A2 : 0,
> + yuv2rgb_write(dest, i, Y1, Y2, hasAlpha ? A1 : 0, hasAlpha ? A2
> : 0,
> r, g, b, y, target, hasAlpha);
> }
> }
> --
> 1.7.2.1
>
> _______________________________________________
> libav-devel mailing list
> [email protected]
> https://lists.libav.org/mailman/listinfo/libav-devel
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel