# HG changeset patch # User fenrir # Date 1282328922 0 # Node ID ea3d12d95325d6b00b15265bbf45999d386ec1f7 # Parent 4be72e19ab0ef9d122c6dc84e277f68aa1c3d41a 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." diff -r 4be72e19ab0e -r ea3d12d95325 mpegvideo.c --- 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; }