[FFmpeg-devel] [PATCH] MOV YUV2 fourcc -> PIX_FMT_YUYV422 mapping

Reimar Döffinger Reimar.Doeffinger
Thu Apr 2 14:00:10 CEST 2009


On Thu, Apr 02, 2009 at 10:46:31AM +0530, Jai Menon wrote:
> Index: libavcodec/rawenc.c
> ===================================================================
> --- libavcodec/rawenc.c	(revision 17944)
> +++ libavcodec/rawenc.c	(working copy)
> @@ -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;
> +    }

Hm, avctx->height*avctx->width*2 just recalculates the size of the
encoded frame, but ret already contains that.
Wouldn't it be better to just use "ret" then?



More information about the ffmpeg-devel mailing list