Mercurial > libavcodec.hg
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; }