diff options
author | James Almer <jamrial@gmail.com> | 2018-07-24 01:16:30 +0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2018-08-02 18:41:04 +0300 |
commit | b98bd60bfa2605fd874d42f96804d1c999278a7e (patch) | |
tree | 975650af16bc55079143e325cd4426cdd512950d /libavcodec/dump_extradata_bsf.c | |
parent | c9118d4d64a661fddd431a7437994c31eafb32c6 (diff) |
avcodec/dump_extradata_bsf: don't allocate a new AVPacket per filtered packet
~4x speedup in dump_extradata()
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/dump_extradata_bsf.c')
-rw-r--r-- | libavcodec/dump_extradata_bsf.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libavcodec/dump_extradata_bsf.c b/libavcodec/dump_extradata_bsf.c index 98703749f7..188a1c619b 100644 --- a/libavcodec/dump_extradata_bsf.c +++ b/libavcodec/dump_extradata_bsf.c @@ -34,16 +34,17 @@ enum DumpFreq { typedef struct DumpExtradataContext { const AVClass *class; + AVPacket pkt; int freq; } DumpExtradataContext; static int dump_extradata(AVBSFContext *ctx, AVPacket *out) { DumpExtradataContext *s = ctx->priv_data; - AVPacket *in; + AVPacket *in = &s->pkt; int ret = 0; - ret = ff_bsf_get_packet(ctx, &in); + ret = ff_bsf_get_packet_ref(ctx, in); if (ret < 0) return ret; @@ -72,7 +73,7 @@ static int dump_extradata(AVBSFContext *ctx, AVPacket *out) } fail: - av_packet_free(&in); + av_packet_unref(in); return ret; } |