|
|
|
@ -4162,7 +4162,7 @@ int mpeg4_decode_picture_header(MpegEncContext * s) |
|
|
|
|
if( h_sampling_factor_n==0 || h_sampling_factor_m==0
|
|
|
|
|
|| v_sampling_factor_n==0 || v_sampling_factor_m==0 || s->workaround_bugs==1){ |
|
|
|
|
|
|
|
|
|
fprintf(stderr, "illegal scalability header (VERY broken encoder), trying to workaround\n"); |
|
|
|
|
// fprintf(stderr, "illegal scalability header (VERY broken encoder), trying to workaround\n");
|
|
|
|
|
s->scalability=0; |
|
|
|
|
|
|
|
|
|
s->gb= bak; |
|
|
|
@ -4231,10 +4231,12 @@ int mpeg4_decode_picture_header(MpegEncContext * s) |
|
|
|
|
s->last_time_base= s->time_base; |
|
|
|
|
s->time_base+= time_incr; |
|
|
|
|
s->time= s->time_base*s->time_increment_resolution + time_increment; |
|
|
|
|
if(s->time < s->last_non_b_time && s->workaround_bugs==3){ |
|
|
|
|
fprintf(stderr, "header is not mpeg4 compatible, broken encoder, trying to workaround\n"); |
|
|
|
|
s->time_base++; |
|
|
|
|
s->time+= s->time_increment_resolution; |
|
|
|
|
if(s->workaround_bugs==3 || s->avctx->fourcc== 'U' + ('M'<<8) + ('P'<<16) + ('4'<<24)){ |
|
|
|
|
if(s->time < s->last_non_b_time){ |
|
|
|
|
// fprintf(stderr, "header is not mpeg4 compatible, broken encoder, trying to workaround\n");
|
|
|
|
|
s->time_base++; |
|
|
|
|
s->time+= s->time_increment_resolution; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
s->pp_time= s->time - s->last_non_b_time; |
|
|
|
|
s->last_non_b_time= s->time; |
|
|
|
|