diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2010-07-02 14:56:02 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2010-07-02 14:58:37 +0200 |
commit | 9c9f97251a44cb4f05993cbe9dabfc40560a147f (patch) | |
tree | dd731c1798cf3dbabc6a38ee176e9f1bf4bbb7e5 | |
parent | ef4165f08b11925396ea0df8b6056106eb09519a (diff) |
ffmpegcolorspace: Fix conversion of packed 4:2:2 YUV to RGB
The last pixel wasn't written before.
Fixes bug #623384.
-rw-r--r-- | gst/ffmpegcolorspace/imgconvert_template.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gst/ffmpegcolorspace/imgconvert_template.h b/gst/ffmpegcolorspace/imgconvert_template.h index 492860108..e9b46a420 100644 --- a/gst/ffmpegcolorspace/imgconvert_template.h +++ b/gst/ffmpegcolorspace/imgconvert_template.h @@ -47,6 +47,14 @@ static void glue (uyvy422_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, s1 += 4; } + + if (w) { + YUV_TO_RGB1_CCIR(s1[0], s1[2]); + + YUV_TO_RGB2_CCIR(r, g, b, s1[1]); + RGB_OUT(d1, r, g, b); + } + d += dst->linesize[0]; s += src->linesize[0]; } @@ -78,6 +86,14 @@ static void glue (yuv422_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, s1 += 4; } + + if (w) { + YUV_TO_RGB1_CCIR(s1[1], s1[3]); + + YUV_TO_RGB2_CCIR(r, g, b, s1[0]); + RGB_OUT(d1, r, g, b); + } + d += dst->linesize[0]; s += src->linesize[0]; } @@ -109,6 +125,14 @@ static void glue (yvyu422_to_, RGB_NAME)(AVPicture *dst, const AVPicture *src, s1 += 4; } + + if (w) { + YUV_TO_RGB1_CCIR(s1[3], s1[1]); + + YUV_TO_RGB2_CCIR(r, g, b, s1[0]); + RGB_OUT(d1, r, g, b); + } + d += dst->linesize[0]; s += src->linesize[0]; } |