avcodec/trace_headers_bsf: also parse extradata in packet side data

Certain mov/mp4 files have parameter sets out of band, and when required for a
sample it may be propagated within the relevant packet's side data.
This fixes parsing said files if the SPS and/or PPS in the side data is
different than the one in extradata.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2021-08-05 12:04:14 -03:00
parent 46e4562b3a
commit acd079843b
1 changed files with 13 additions and 0 deletions

View File

@ -95,6 +95,19 @@ static int trace_headers(AVBSFContext *bsf, AVPacket *pkt)
av_log(bsf, AV_LOG_INFO, "Packet: %d bytes%s.\n", pkt->size, tmp);
if (av_packet_get_side_data(pkt, AV_PKT_DATA_NEW_EXTRADATA, NULL)) {
av_log(bsf, AV_LOG_INFO, "Side data:\n");
err = ff_cbs_read_packet_side_data(ctx->cbc, frag, pkt);
ff_cbs_fragment_reset(frag);
if (err < 0) {
av_packet_unref(pkt);
return err;
}
av_log(bsf, AV_LOG_INFO, "Payload:\n");
}
err = ff_cbs_read_packet(ctx->cbc, frag, pkt);
ff_cbs_fragment_reset(frag);