ZeroCodec: Flip output
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Sun, 9 Dec 2012 09:24:16 +0000 (10:24 +0100)
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>
Mon, 10 Dec 2012 16:19:42 +0000 (11:19 -0500)
The initial testing of the VFW binary codec was flawed,
likely due to an AviSynth bug.

Re-testing using VirtualDub and various professional editing
applications has revealed it should have been flipped.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
libavcodec/version.h
libavcodec/zerocodec.c
tests/ref/fate/zerocodec

index d170f67..d77c078 100644 (file)
@@ -28,7 +28,7 @@
 
 #define LIBAVCODEC_VERSION_MAJOR 54
 #define LIBAVCODEC_VERSION_MINOR 34
-#define LIBAVCODEC_VERSION_MICRO  0
+#define LIBAVCODEC_VERSION_MICRO  1
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                LIBAVCODEC_VERSION_MINOR, \
index f54abb1..cba3198 100644 (file)
@@ -49,6 +49,9 @@ static int zerocodec_decode_frame(AVCodecContext *avctx, void *data,
             av_log(avctx, AV_LOG_ERROR, "Missing reference frame.\n");
             return AVERROR_INVALIDDATA;
         }
+
+        prev += (avctx->height - 1) * prev_pic->linesize[0];
+
         pic->key_frame = 0;
         pic->pict_type = AV_PICTURE_TYPE_P;
     }
@@ -67,7 +70,7 @@ static int zerocodec_decode_frame(AVCodecContext *avctx, void *data,
     zstream->next_in  = avpkt->data;
     zstream->avail_in = avpkt->size;
 
-    dst = pic->data[0];
+    dst = pic->data[0] + (avctx->height - 1) * pic->linesize[0];
 
     /**
      * ZeroCodec has very simple interframe compression. If a value
@@ -90,8 +93,8 @@ static int zerocodec_decode_frame(AVCodecContext *avctx, void *data,
             for (j = 0; j < avctx->width << 1; j++)
                 dst[j] += prev[j] & -!dst[j];
 
-        prev += prev_pic->linesize[0];
-        dst  += pic->linesize[0];
+        prev -= prev_pic->linesize[0];
+        dst  -= pic->linesize[0];
     }
 
     /* Release the previous buffer if need be */
dissimilarity index 98%
index 4d358ca..2d368c3 100644 (file)
@@ -1,39 +1,39 @@
-#tb 0: 417083/10000000
-0,          0,          0,        1,  1843200, 0x09f24bd5
-0,          1,          1,        1,  1843200, 0x8c932d04
-0,          2,          2,        1,  1843200, 0xe04904a0
-0,          3,          3,        1,  1843200, 0x1969f383
-0,          4,          4,        1,  1843200, 0x70781331
-0,          5,          5,        1,  1843200, 0xf494496b
-0,          6,          6,        1,  1843200, 0xf6226da2
-0,          7,          7,        1,  1843200, 0x5d657925
-0,          8,          8,        1,  1843200, 0xde15820d
-0,          9,          9,        1,  1843200, 0xb6768df1
-0,         10,         10,        1,  1843200, 0xc4318e08
-0,         11,         11,        1,  1843200, 0x8530a7d5
-0,         12,         12,        1,  1843200, 0x0ee29f10
-0,         13,         13,        1,  1843200, 0xcbb6b185
-0,         14,         14,        1,  1843200, 0x085aac47
-0,         15,         15,        1,  1843200, 0xb42e7b1b
-0,         16,         16,        1,  1843200, 0xea3a2cd6
-0,         17,         17,        1,  1843200, 0x7600ee09
-0,         18,         18,        1,  1843200, 0xe39fc9d4
-0,         19,         19,        1,  1843200, 0xc122cd4c
-0,         20,         20,        1,  1843200, 0x5fb4c1cb
-0,         21,         21,        1,  1843200, 0x1552cb6c
-0,         22,         22,        1,  1843200, 0x5b66ce2f
-0,         23,         23,        1,  1843200, 0x70a8c318
-0,         24,         24,        1,  1843200, 0x8b86af2d
-0,         25,         25,        1,  1843200, 0x94886a49
-0,         26,         26,        1,  1843200, 0xda05684f
-0,         27,         27,        1,  1843200, 0xe57c8f33
-0,         28,         28,        1,  1843200, 0x39ef9c7e
-0,         29,         29,        1,  1843200, 0xe7a0cab8
-0,         30,         30,        1,  1843200, 0x43f0d766
-0,         31,         31,        1,  1843200, 0x733d3c7b
-0,         32,         32,        1,  1843200, 0x42713cea
-0,         33,         33,        1,  1843200, 0xdd844e53
-0,         34,         34,        1,  1843200, 0xa0875ba8
-0,         35,         35,        1,  1843200, 0x318b6114
-0,         36,         36,        1,  1843200, 0xcc986275
-0,         37,         37,        1,  1843200, 0x14eb6704
+#tb 0: 417083/10000000
+0,          0,          0,        1,  1843200, 0x04154bd5
+0,          1,          1,        1,  1843200, 0x3a872d04
+0,          2,          2,        1,  1843200, 0x3b1304a0
+0,          3,          3,        1,  1843200, 0x7474f383
+0,          4,          4,        1,  1843200, 0xce7d1331
+0,          5,          5,        1,  1843200, 0x3cdf496b
+0,          6,          6,        1,  1843200, 0xe9096da2
+0,          7,          7,        1,  1843200, 0x30be7925
+0,          8,          8,        1,  1843200, 0x600b820d
+0,          9,          9,        1,  1843200, 0xe7bb8df1
+0,         10,         10,        1,  1843200, 0x62848e08
+0,         11,         11,        1,  1843200, 0x9a71a7d5
+0,         12,         12,        1,  1843200, 0x743a9f10
+0,         13,         13,        1,  1843200, 0x62b0b185
+0,         14,         14,        1,  1843200, 0xd94eac47
+0,         15,         15,        1,  1843200, 0xa1007b1b
+0,         16,         16,        1,  1843200, 0x11d72cd6
+0,         17,         17,        1,  1843200, 0x141aee09
+0,         18,         18,        1,  1843200, 0x9a90c9d4
+0,         19,         19,        1,  1843200, 0x6bd5cd4c
+0,         20,         20,        1,  1843200, 0xdf2ec1cb
+0,         21,         21,        1,  1843200, 0xeecbcb6c
+0,         22,         22,        1,  1843200, 0x9ecace2f
+0,         23,         23,        1,  1843200, 0x7b59c318
+0,         24,         24,        1,  1843200, 0x050baf2d
+0,         25,         25,        1,  1843200, 0xada36a49
+0,         26,         26,        1,  1843200, 0x4f4d684f
+0,         27,         27,        1,  1843200, 0x9ddc8f33
+0,         28,         28,        1,  1843200, 0x914d9c7e
+0,         29,         29,        1,  1843200, 0x0dc3cab8
+0,         30,         30,        1,  1843200, 0x98f8d766
+0,         31,         31,        1,  1843200, 0x872e3c7b
+0,         32,         32,        1,  1843200, 0xdf7b3cea
+0,         33,         33,        1,  1843200, 0xf7864e53
+0,         34,         34,        1,  1843200, 0x13315ba8
+0,         35,         35,        1,  1843200, 0xc4586114
+0,         36,         36,        1,  1843200, 0x57a96275
+0,         37,         37,        1,  1843200, 0x6e756704