return i-(state&5);
}
-/*!
+/**
* Parse NAL units of found picture and decode some basic information.
*
* @param s parser context.
for(;;) {
int src_length, dst_length, consumed;
- buf = ff_find_start_code(buf, buf_end, &state);
+ buf = avpriv_mpv_find_start_code(buf, buf_end, &state);
if(buf >= buf_end)
break;
--buf;
}
}
- parse_nal_units(s, avctx, buf, buf_size);
+ 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;
- }
+ 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;
}
AVCodecParser ff_h264_parser = {
- { CODEC_ID_H264 },
- sizeof(H264Context),
- init,
- h264_parse,
- close,
- h264_split,
+ .codec_ids = { CODEC_ID_H264 },
+ .priv_data_size = sizeof(H264Context),
+ .parser_init = init,
+ .parser_parse = h264_parse,
+ .parser_close = close,
+ .split = h264_split,
};