#include "libavutil/log.h"
#include "bsf.h"
+#include "bsf_internal.h"
#include "cbs.h"
typedef struct TraceHeadersContext {
CodedBitstreamContext *cbc;
+ CodedBitstreamFragment fragment;
} TraceHeadersContext;
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);
+ err = ff_cbs_read_extradata(ctx->cbc, frag, bsf->par_in);
- ff_cbs_fragment_uninit(ctx->cbc, &ps);
+ ff_cbs_fragment_reset(frag);
}
return err;
{
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;
av_log(bsf, AV_LOG_INFO, "Packet: %d bytes%s.\n", pkt->size, tmp);
- err = ff_cbs_read_packet(ctx->cbc, &au, pkt);
+ err = ff_cbs_read_packet(ctx->cbc, frag, pkt);
- ff_cbs_fragment_uninit(ctx->cbc, &au);
+ ff_cbs_fragment_reset(frag);
if (err < 0)
av_packet_unref(pkt);