summaryrefslogtreecommitdiff
path: root/libavcodec/zerocodec.c
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2012-12-09 10:24:16 +0100
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>2012-12-10 11:19:42 -0500
commit2ddf7c88d162473e84417e94e1fb7e4375ecfdae (patch)
tree608a85a185870901d77806f7c393f1bd74d52419 /libavcodec/zerocodec.c
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>
Diffstat (limited to 'libavcodec/zerocodec.c')
-rw-r--r--libavcodec/zerocodec.c9
1 files changed, 6 insertions, 3 deletions
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 */