changeset 12392:ea3d12d95325 libavcodec

Fixed mpeg12 top field first flag value with field picture encoding. The relevent extract of the iso 13818-2 about the value of the syntaxical element top_field_first of the Picture Coding Extension is: "top_field_first -- The meaning of this element depends upon picture_structure, progressive_sequence and repeat_first_field. [...] In a field picture top_field_first shall have the value '0', and the only field output by the decoding process is the decoded field picture."
author fenrir
date Fri, 20 Aug 2010 18:28:42 +0000
parents 4be72e19ab0e
children aaf12cfcfdbf
files mpegvideo.c
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mpegvideo.c	Thu Aug 19 16:51:26 2010 +0000
+++ b/mpegvideo.c	Fri Aug 20 18:28:42 2010 +0000
@@ -963,7 +963,14 @@
             return -1;
 
         s->current_picture_ptr= pic;
-        s->current_picture_ptr->top_field_first= s->top_field_first; //FIXME use only the vars from current_pic
+        //FIXME use only the vars from current_pic
+        if(s->codec_id == CODEC_ID_MPEG1VIDEO || s->codec_id == CODEC_ID_MPEG2VIDEO) {
+            if(s->picture_structure == PICT_FRAME)
+                s->current_picture_ptr->top_field_first= s->top_field_first;
+            else
+                s->current_picture_ptr->top_field_first= (s->picture_structure == PICT_TOP_FIELD) == s->first_field;
+        } else
+            s->current_picture_ptr->top_field_first= s->top_field_first;
         s->current_picture_ptr->interlaced_frame= !s->progressive_frame && !s->progressive_sequence;
     }