Commit c3e6a559 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/vp3: Fix offset handling

Fixes use of uninitialized memory
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 2df5b506
...@@ -177,6 +177,7 @@ typedef struct Vp3DecodeContext { ...@@ -177,6 +177,7 @@ typedef struct Vp3DecodeContext {
int data_offset[3]; int data_offset[3];
uint8_t offset_x; uint8_t offset_x;
uint8_t offset_y; uint8_t offset_y;
int offset_x_warned;
int8_t (*motion_val[2])[2]; int8_t (*motion_val[2])[2];
...@@ -2322,8 +2323,7 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb) ...@@ -2322,8 +2323,7 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb)
ret = ff_set_dimensions(avctx, s->width, s->height); ret = ff_set_dimensions(avctx, s->width, s->height);
if (ret < 0) if (ret < 0)
return ret; return ret;
if (!(avctx->flags2 & CODEC_FLAG2_IGNORE_CROP) && if (!(avctx->flags2 & CODEC_FLAG2_IGNORE_CROP)) {
(visible_width != s->width || visible_height != s->height)) {
avctx->width = visible_width; avctx->width = visible_width;
avctx->height = visible_height; avctx->height = visible_height;
// translate offsets from theora axis ([0,0] lower left) // translate offsets from theora axis ([0,0] lower left)
...@@ -2333,9 +2333,12 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb) ...@@ -2333,9 +2333,12 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb)
if ((s->offset_x & 0x1F) && !(avctx->flags & CODEC_FLAG_UNALIGNED)) { if ((s->offset_x & 0x1F) && !(avctx->flags & CODEC_FLAG_UNALIGNED)) {
s->offset_x &= ~0x1F; s->offset_x &= ~0x1F;
av_log(avctx, AV_LOG_WARNING, "Reducing offset_x from %d to %d" if (!s->offset_x_warned) {
"chroma samples to preserve alignment.\n", s->offset_x_warned = 1;
offset_x, s->offset_x); av_log(avctx, AV_LOG_WARNING, "Reducing offset_x from %d to %d"
"chroma samples to preserve alignment.\n",
offset_x, s->offset_x);
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment