Mercurial > libavcodec.hg
diff rawenc.c @ 9335:c7396480f8e3 libavcodec
Map MOV fourcc YUV2 correctly to PIX_FMT_YUYV422.
Patch by Jai Menon
author | cehoyos |
---|---|
date | Thu, 02 Apr 2009 12:15:04 +0000 |
parents | e9d9d946f213 |
children | 55a1d93c534c |
line wrap: on
line diff
--- a/rawenc.c Thu Apr 02 08:53:34 2009 +0000 +++ b/rawenc.c Thu Apr 02 12:15:04 2009 +0000 @@ -26,6 +26,7 @@ #include "avcodec.h" #include "raw.h" +#include "libavutil/intreadwrite.h" static av_cold int raw_init_encoder(AVCodecContext *avctx) { @@ -40,8 +41,16 @@ static int raw_encode(AVCodecContext *avctx, unsigned char *frame, int buf_size, void *data) { - return avpicture_layout((AVPicture *)data, avctx->pix_fmt, avctx->width, + int ret = avpicture_layout((AVPicture *)data, avctx->pix_fmt, avctx->width, avctx->height, frame, buf_size); + + if(avctx->codec_tag == AV_RL32("yuv2") && ret > 0 && + avctx->pix_fmt == PIX_FMT_YUYV422) { + int x; + for(x = 1; x < avctx->height*avctx->width*2; x += 2) + frame[x] ^= 0x80; + } + return ret; } AVCodec rawvideo_encoder = {