aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Eugen Hoyos2012-12-09 10:24:16 +0100
committerDerek Buitenhuis2012-12-10 11:19:42 -0500
commit2ddf7c88d162473e84417e94e1fb7e4375ecfdae (patch)
tree608a85a185870901d77806f7c393f1bd74d52419
parentccb59c106a4361b9655aa094b042863d655860c4 (diff)
ZeroCodec: Flip output
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>
-rw-r--r--libavcodec/version.h2
-rw-r--r--libavcodec/zerocodec.c9
-rw-r--r--tests/ref/fate/zerocodec76
3 files changed, 45 insertions, 42 deletions
diff --git a/libavcodec/version.h b/libavcodec/version.h
index d170f67ec5..d77c0787f8 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -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, \
diff --git a/libavcodec/zerocodec.c b/libavcodec/zerocodec.c
index f54abb1c1b..cba3198473 100644
--- a/libavcodec/zerocodec.c
+++ b/libavcodec/zerocodec.c
@@ -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 */
diff --git a/tests/ref/fate/zerocodec b/tests/ref/fate/zerocodec
index 4d358ca8a8..2d368c3764 100644
--- a/tests/ref/fate/zerocodec
+++ b/tests/ref/fate/zerocodec
@@ -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
+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