|
|
|
@ -272,20 +272,21 @@ static int h264_parse(AVCodecParserContext *s, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
parse_nal_units(s, avctx, buf, buf_size); |
|
|
|
|
|
|
|
|
|
if (h->sei_cpb_removal_delay >= 0) { |
|
|
|
|
s->dts_sync_point = h->sei_buffering_period_present; |
|
|
|
|
s->dts_ref_dts_delta = h->sei_cpb_removal_delay; |
|
|
|
|
s->pts_dts_delta = h->sei_dpb_output_delay; |
|
|
|
|
} else { |
|
|
|
|
s->dts_sync_point = INT_MIN; |
|
|
|
|
s->dts_ref_dts_delta = INT_MIN; |
|
|
|
|
s->pts_dts_delta = INT_MIN; |
|
|
|
|
} |
|
|
|
|
if (s->flags & PARSER_FLAG_ONCE) { |
|
|
|
|
s->flags &= PARSER_FLAG_COMPLETE_FRAMES; |
|
|
|
|
} |
|
|
|
|
parse_nal_units(s, avctx, buf, buf_size); |
|
|
|
|
|
|
|
|
|
if (h->sei_cpb_removal_delay >= 0) { |
|
|
|
|
s->dts_sync_point = h->sei_buffering_period_present; |
|
|
|
|
s->dts_ref_dts_delta = h->sei_cpb_removal_delay; |
|
|
|
|
s->pts_dts_delta = h->sei_dpb_output_delay; |
|
|
|
|
} else { |
|
|
|
|
s->dts_sync_point = INT_MIN; |
|
|
|
|
s->dts_ref_dts_delta = INT_MIN; |
|
|
|
|
s->pts_dts_delta = INT_MIN; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (s->flags & PARSER_FLAG_ONCE) { |
|
|
|
|
s->flags &= PARSER_FLAG_COMPLETE_FRAMES; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
*poutbuf = buf; |
|
|
|
|
*poutbuf_size = buf_size; |
|
|
|
|