diff options
author | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2011-05-08 17:54:20 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-05-08 19:53:39 +0200 |
commit | 807a058e8b6e272f0fd83b44ad2c737495a2319c (patch) | |
tree | f69d50860ea4f937b55c6c78a0561acefacf5276 /libavcodec/v210dec.c | |
parent | 4737a59373318cf47994c4b4e250a064d95f3088 (diff) | |
download | ffmpeg-807a058e8b6e272f0fd83b44ad2c737495a2319c.tar.gz |
v210dec: switch to PIX_FMT_422P10
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/v210dec.c')
-rw-r--r-- | libavcodec/v210dec.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/libavcodec/v210dec.c b/libavcodec/v210dec.c index 3fb345c1e5..94c5b5bb26 100644 --- a/libavcodec/v210dec.c +++ b/libavcodec/v210dec.c @@ -30,7 +30,7 @@ static av_cold int decode_init(AVCodecContext *avctx) av_log(avctx, AV_LOG_ERROR, "v210 needs even width\n"); return -1; } - avctx->pix_fmt = PIX_FMT_YUV422P16; + avctx->pix_fmt = PIX_FMT_YUV422P10; avctx->bits_per_raw_sample = 10; avctx->coded_frame = avcodec_alloc_frame(); @@ -68,10 +68,10 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, #define READ_PIXELS(a, b, c) \ do { \ - val = av_le2ne32(*src++); \ - *a++ = val << 6; \ - *b++ = (val >> 4) & 0xFFC0; \ - *c++ = (val >> 14) & 0xFFC0; \ + val = av_le2ne32(*src++); \ + *a++ = val & 0x3FF; \ + *b++ = (val >> 10) & 0x3FF; \ + *c++ = (val >> 20) & 0x3FF; \ } while (0) for (h = 0; h < avctx->height; h++) { @@ -87,15 +87,15 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, READ_PIXELS(u, y, v); val = av_le2ne32(*src++); - *y++ = val << 6; + *y++ = val & 0x3FF; } if (w < avctx->width - 3) { - *u++ = (val >> 4) & 0xFFC0; - *y++ = (val >> 14) & 0xFFC0; + *u++ = (val >> 10) & 0x3FF; + *y++ = (val >> 20) & 0x3FF; val = av_le2ne32(*src++); - *v++ = val << 6; - *y++ = (val >> 4) & 0xFFC0; + *v++ = val & 0x3FF; + *y++ = (val >> 10) & 0x3FF; } psrc += stride; |