@@ -580,6 +580,7 @@ static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si
int height = s->avctx->height;
int alpha = 0;
int beta = 0;
+ int fade_present = 1;
if (buf_size < 4) {
return AVERROR_INVALIDDATA;
@@ -679,7 +680,6 @@ static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si
s->update_last = 1;
s->update_probabilities = 1;
- s->fade_present = 1;
if (s->profile > 0) {
s->update_probabilities = vp89_rac_get(c);
@@ -687,13 +687,13 @@ static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si
s->prob[1] = s->prob[0];
if (!s->keyframe)
- s->fade_present = vp89_rac_get(c);
+ fade_present = vp89_rac_get(c);
}
if (vpx_rac_is_end(c))
return AVERROR_INVALIDDATA;
/* E. Fading information for previous frame */
- if (s->fade_present && vp89_rac_get(c)) {
+ if (fade_present && vp89_rac_get(c)) {
alpha = (int8_t) vp89_rac_get_uint(c, 8);
beta = (int8_t) vp89_rac_get_uint(c, 8);
}
@@ -335,11 +335,6 @@ typedef struct VP8Context {
int vp7;
- /**
- * Fade bit present in bitstream (VP7)
- */
- int fade_present;
-
/**
* Interframe DC prediction (VP7)
* [0] VP8_FRAME_PREVIOUS
It is only an auxiliary value used for parsing the VP7 frame header. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- I think that vp7_fade_frame() needs a check for whether the previous frame is writable before writing to it. Does anyone have a sample for this fading? libavcodec/vp8.c | 6 +++--- libavcodec/vp8.h | 5 ----- 2 files changed, 3 insertions(+), 8 deletions(-)