X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ftrace_headers_bsf.c;h=b891730bacd5b087bfd446703ac07eb5fedd16fa;hb=e625ae609206e0550ff733965c6f5447579320aa;hp=94a3ef72a2224a3c0f7d2fae61303edfdc667034;hpb=27e30c73d722ec13e59753dea91be00859c72bf2;p=ffmpeg diff --git a/libavcodec/trace_headers_bsf.c b/libavcodec/trace_headers_bsf.c index 94a3ef72a22..b891730bacd 100644 --- a/libavcodec/trace_headers_bsf.c +++ b/libavcodec/trace_headers_bsf.c @@ -23,11 +23,13 @@ #include "libavutil/log.h" #include "bsf.h" +#include "bsf_internal.h" #include "cbs.h" typedef struct TraceHeadersContext { CodedBitstreamContext *cbc; + CodedBitstreamFragment fragment; } TraceHeadersContext; @@ -44,33 +46,30 @@ static int trace_headers_init(AVBSFContext *bsf) ctx->cbc->trace_level = AV_LOG_INFO; if (bsf->par_in->extradata) { - CodedBitstreamFragment ps; + CodedBitstreamFragment *frag = &ctx->fragment; av_log(bsf, AV_LOG_INFO, "Extradata\n"); - err = ff_cbs_read_extradata(ctx->cbc, &ps, bsf->par_in); - if (err < 0) { - av_log(bsf, AV_LOG_ERROR, "Failed to read extradata.\n"); - return err; - } + err = ff_cbs_read_extradata(ctx->cbc, frag, bsf->par_in); - ff_cbs_fragment_uninit(ctx->cbc, &ps); + ff_cbs_fragment_reset(frag); } - return 0; + return err; } static void trace_headers_close(AVBSFContext *bsf) { TraceHeadersContext *ctx = bsf->priv_data; + ff_cbs_fragment_free(&ctx->fragment); ff_cbs_close(&ctx->cbc); } static int trace_headers(AVBSFContext *bsf, AVPacket *pkt) { TraceHeadersContext *ctx = bsf->priv_data; - CodedBitstreamFragment au; + CodedBitstreamFragment *frag = &ctx->fragment; char tmp[256] = { 0 }; int err; @@ -96,15 +95,13 @@ static int trace_headers(AVBSFContext *bsf, AVPacket *pkt) av_log(bsf, AV_LOG_INFO, "Packet: %d bytes%s.\n", pkt->size, tmp); - err = ff_cbs_read_packet(ctx->cbc, &au, pkt); - if (err < 0) { - av_packet_unref(pkt); - return err; - } + err = ff_cbs_read_packet(ctx->cbc, frag, pkt); - ff_cbs_fragment_uninit(ctx->cbc, &au); + ff_cbs_fragment_reset(frag); - return 0; + if (err < 0) + av_packet_unref(pkt); + return err; } const AVBitStreamFilter ff_trace_headers_bsf = {