mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
add heuristic to discern the old sample clips from streams encoded
with rm52j encoder, a marker_bit has been added in the I-Frame syntax Originally committed as revision 21836 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
026b9d3c5a
commit
35122bd93e
@ -160,6 +160,7 @@ typedef struct {
|
||||
int aspect_ratio;
|
||||
int mb_width, mb_height;
|
||||
int pic_type;
|
||||
int stream_revision; ///<0 for samples from 2006, 1 for rm52j encoder
|
||||
int progressive;
|
||||
int pic_structure;
|
||||
int skip_mode_flag; ///< select between skip_count or one skip_flag per MB
|
||||
|
@ -483,6 +483,15 @@ static int decode_pic(AVSContext *h) {
|
||||
h->pic_type = FF_I_TYPE;
|
||||
if(get_bits1(&s->gb))
|
||||
skip_bits(&s->gb,24);//time_code
|
||||
/* old sample clips were all progressive and no low_delay,
|
||||
bump stream revision if detected otherwise */
|
||||
if((s->low_delay) || !(show_bits(&s->gb,9) & 1))
|
||||
h->stream_revision = 1;
|
||||
/* similarly test top_field_first and repeat_first_field */
|
||||
else if(show_bits(&s->gb,11) & 3)
|
||||
h->stream_revision = 1;
|
||||
if(h->stream_revision > 0)
|
||||
skip_bits(&s->gb,1); //marker_bit
|
||||
}
|
||||
/* release last B frame */
|
||||
if(h->picture.data[0])
|
||||
|
Loading…
Reference in New Issue
Block a user