[FFmpeg-cvslog] Move frame_pred_frame_dct check elsewhere.

Michael Niedermayer git at videolan.org
Sun Apr 3 18:20:09 CEST 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Mar 10 11:48:43 2011 +0100| [7f125c3e87f0ce48abfdbcf02e3d4c1c33f025ba] | committer: Michael Niedermayer

Move frame_pred_frame_dct check elsewhere.
Fixes issue2405

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7f125c3e87f0ce48abfdbcf02e3d4c1c33f025ba
---

 libavcodec/mpeg12.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
index e2633c9..dde8510 100644
--- a/libavcodec/mpeg12.c
+++ b/libavcodec/mpeg12.c
@@ -406,6 +406,10 @@ static int mpeg_decode_mb(MpegEncContext *s,
                 }
                 break;
             case MT_FIELD:
+                if(s->progressive_sequence){
+                    av_log(s->avctx, AV_LOG_ERROR, "MT_FIELD in progressive_sequence\n");
+                    return -1;
+                }
                 s->mv_type = MV_TYPE_FIELD;
                 if (s->picture_structure == PICT_FRAME) {
                     mb_type |= MB_TYPE_16x8 | MB_TYPE_INTERLACED;
@@ -443,6 +447,10 @@ static int mpeg_decode_mb(MpegEncContext *s,
                 }
                 break;
             case MT_DMV:
+                if(s->progressive_sequence){
+                    av_log(s->avctx, AV_LOG_ERROR, "MT_DMV in progressive_sequence\n");
+                    return -1;
+                }
                 s->mv_type = MV_TYPE_DMV;
                 for(i=0;i<2;i++) {
                     if (USES_LIST(mb_type, i)) {
@@ -1587,7 +1595,6 @@ static void mpeg_decode_picture_coding_extension(Mpeg1Context *s1)
 
     if(s->progressive_sequence && !s->frame_pred_frame_dct){
         av_log(s->avctx, AV_LOG_ERROR, "invalid frame_pred_frame_dct\n");
-        s->frame_pred_frame_dct= 1;
     }
 
     if(s->picture_structure == PICT_FRAME){



More information about the ffmpeg-cvslog mailing list