diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-11-20 17:19:25 +0100 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-07-05 12:41:19 +0300 |
commit | 18f2d5cb9c48d06895960f37467576725c9dc2d1 (patch) | |
tree | f00b0d670f6ca345a9dce16a8fed807ba1668209 /libavcodec | |
parent | f6687bf5f8989d397cdef6d9d05bcb13a7ef8c4f (diff) | |
download | ffmpeg-18f2d5cb9c48d06895960f37467576725c9dc2d1.tar.gz |
mpegvideo: Don't use ff_mspel_motion() for vc1
Using ff_mspel_motion assumes that s (a MpegEncContext
poiinter) really is a Wmv2Context.
This fixes crashes in error resilience on vc1/wmv3 videos.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/mpegvideo_common.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/mpegvideo_common.h b/libavcodec/mpegvideo_common.h index ebf9c7d619..0a731266e2 100644 --- a/libavcodec/mpegvideo_common.h +++ b/libavcodec/mpegvideo_common.h @@ -719,7 +719,8 @@ static av_always_inline void MPV_motion_internal(MpegEncContext *s, 0, 0, 0, ref_picture, pix_op, qpix_op, s->mv[dir][0][0], s->mv[dir][0][1], 16); - }else if(!is_mpeg12 && (CONFIG_WMV2_DECODER || CONFIG_WMV2_ENCODER) && s->mspel){ + } else if (!is_mpeg12 && (CONFIG_WMV2_DECODER || CONFIG_WMV2_ENCODER) && + s->mspel && s->codec_id == CODEC_ID_WMV2) { ff_mspel_motion(s, dest_y, dest_cb, dest_cr, ref_picture, pix_op, s->mv[dir][0][0], s->mv[dir][0][1], 16); |