[FFmpeg-cvslog] Flip zerocodec output.
Carl Eugen Hoyos
git at videolan.org
Sun Dec 9 10:26:36 CET 2012
ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Sun Dec 9 10:24:16 2012 +0100| [66dc3ba356e6651e85098e6aab048c6680ea2845] | committer: Carl Eugen Hoyos
Flip zerocodec output.
Fixes ticket #1218
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=66dc3ba356e6651e85098e6aab048c6680ea2845
---
libavcodec/version.h | 2 +-
libavcodec/zerocodec.c | 9 ++++--
tests/ref/fate/zerocodec | 76 +++++++++++++++++++++++-----------------------
3 files changed, 45 insertions(+), 42 deletions(-)
diff --git a/libavcodec/version.h b/libavcodec/version.h
index ac33cce..1aab993 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -30,7 +30,7 @@
#define LIBAVCODEC_VERSION_MAJOR 54
#define LIBAVCODEC_VERSION_MINOR 79
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \
diff --git a/libavcodec/zerocodec.c b/libavcodec/zerocodec.c
index f54abb1..cba3198 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 4d358ca..2d368c3 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
More information about the ffmpeg-cvslog
mailing list