Message ID | 20210805152452.1646-3-jamrial@gmail.com |
---|---|
State | Accepted |
Commit | acd079843b7cdf18a1d6c84a5fe48555f7554e92 |
Headers | show |
Series | [FFmpeg-devel,1/3] avcodec/cbs: add a helper to read extradata within packet side data | expand |
Context | Check | Description |
---|---|---|
andriy/x86_make | success | Make finished |
andriy/x86_make_fate | success | Make fate finished |
andriy/PPC64_make | success | Make finished |
andriy/PPC64_make_fate | success | Make fate finished |
diff --git a/libavcodec/trace_headers_bsf.c b/libavcodec/trace_headers_bsf.c index b891730bac..a9b0247412 100644 --- a/libavcodec/trace_headers_bsf.c +++ b/libavcodec/trace_headers_bsf.c @@ -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);
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> --- libavcodec/trace_headers_bsf.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)