[FFmpeg-cvslog] Fix crash of interlaced MPEG2 decoding
anatoly
git at videolan.org
Wed May 11 22:17:40 CEST 2011
ffmpeg | branch: master | anatoly <anatoly.nenashev at> | Tue Feb 22 12:04:50 2011 +0300| [99e07a4453732058df90885f80b3db3b4f37cb3c] | committer: Michael Niedermayer
Fix crash of interlaced MPEG2 decoding
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=99e07a4453732058df90885f80b3db3b4f37cb3c
---
libavcodec/mpegvideo.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 50c99f4..6bb35f9 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -1094,8 +1094,13 @@ int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx)
s->pict_type, s->dropable);*/
if(s->codec_id != CODEC_ID_H264){
- if((s->last_picture_ptr==NULL || s->last_picture_ptr->data[0]==NULL) && s->pict_type!=AV_PICTURE_TYPE_I){
- av_log(avctx, AV_LOG_ERROR, "warning: first frame is no keyframe\n");
+ if((s->last_picture_ptr==NULL || s->last_picture_ptr->data[0]==NULL) &&
+ (s->pict_type!=AV_PICTURE_TYPE_I || s->picture_structure != PICT_FRAME)){
+ if (s->pict_type != AV_PICTURE_TYPE_I)
+ av_log(avctx, AV_LOG_ERROR, "warning: first frame is no keyframe\n");
+ else if (s->picture_structure != PICT_FRAME)
+ av_log(avctx, AV_LOG_INFO, "allocate dummy last picture for field based first keyframe\n");
+
/* Allocate a dummy frame */
i= ff_find_unused_picture(s, 0);
s->last_picture_ptr= &s->picture[i];
More information about the ffmpeg-cvslog
mailing list