Use context variable repeat_pict for frame duration computation and

document this new use.

Patch by Ivan Schreter, schreter gmx net

Originally committed as revision 17492 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Ivan Schreter
2009-02-21 20:11:47 +00:00
committed by Carl Eugen Hoyos
parent f5007cc844
commit 346db3ef7f
3 changed files with 43 additions and 0 deletions

View File

@@ -192,6 +192,35 @@ static inline int parse_nal_units(AVCodecParserContext *s,
}
}
if(h->sps.pic_struct_present_flag) {
switch (h->sei_pic_struct) {
case SEI_PIC_STRUCT_TOP_FIELD:
case SEI_PIC_STRUCT_BOTTOM_FIELD:
s->repeat_pict = -1;
break;
case SEI_PIC_STRUCT_FRAME:
case SEI_PIC_STRUCT_TOP_BOTTOM:
case SEI_PIC_STRUCT_BOTTOM_TOP:
s->repeat_pict = 0;
break;
case SEI_PIC_STRUCT_TOP_BOTTOM_TOP:
case SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM:
s->repeat_pict = 1;
break;
case SEI_PIC_STRUCT_FRAME_DOUBLING:
s->repeat_pict = 2;
break;
case SEI_PIC_STRUCT_FRAME_TRIPLING:
s->repeat_pict = 4;
break;
default:
s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 0 : -1;
break;
}
} else {
s->repeat_pict = h->s.picture_structure == PICT_FRAME ? 0 : -1;
}
return 0; /* no need to evaluate the rest */
}
buf += consumed;