Browse Source

vp9: fix crash if segmentation=1, keyframe/intraonly=1 and updatemap=0.

The reference map is never used in such cases, but we accidently copied
it anyway. This could cause crashes if this map has not yet been
allocated. Fixes trac ticket 3188.

Reviewed-by: Clément Bœsch <u@pkh.me>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.2-rc1
Ronald S. Bultje Michael Niedermayer 12 years ago
parent
commit
acafbb4dd2
1 changed files with 2 additions and 1 deletions
  1. +2
    -1
      libavcodec/vp9.c

+ 2
- 1
libavcodec/vp9.c View File

@@ -264,7 +264,8 @@ static int vp9_alloc_frame(AVCodecContext *ctx, VP9Frame *f)
f->mv = (struct VP9mvrefPair *) (f->extradata->data + sz);

// retain segmentation map if it doesn't update
if (s->segmentation.enabled && !s->segmentation.update_map) {
if (s->segmentation.enabled && !s->segmentation.update_map &&
!s->keyframe && !s->intraonly) {
memcpy(f->segmentation_map, s->frames[LAST_FRAME].segmentation_map, sz);
}



Loading…
Cancel
Save