diff rawdec.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 231e8535e00e
children 54bc8a2727b0
line wrap: on
line diff
--- a/rawdec.c	Thu Apr 02 08:53:34 2009 +0000
+++ b/rawdec.c	Thu Apr 02 12:15:04 2009 +0000
@@ -26,6 +26,7 @@
 
 #include "avcodec.h"
 #include "raw.h"
+#include "libavutil/intreadwrite.h"
 
 typedef struct RawVideoContext {
     unsigned char * buffer;  /* block of memory for holding one frame */
@@ -144,6 +145,17 @@
         picture->data[2] = tmp;
     }
 
+    if(avctx->codec_tag == AV_RL32("yuv2") &&
+       avctx->pix_fmt   == PIX_FMT_YUYV422) {
+        int x, y;
+        uint8_t *line = picture->data[0];
+        for(y = 0; y < avctx->height; y++) {
+            for(x = 0; x < avctx->width; x++)
+                line[2*x + 1] ^= 0x80;
+            line += picture->linesize[0];
+        }
+    }
+
     *data_size = sizeof(AVPicture);
     return buf_size;
 }