avcodec/chomp: move the reference in the bsf internal buffer

There's no need to allocate a new packet for it.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2018-03-11 13:53:04 -03:00
parent 8fb0e51bd1
commit 27d4249fad

View File

@ -23,20 +23,16 @@
#include "bsf.h"
#include "internal.h"
static int chomp_filter(AVBSFContext *ctx, AVPacket *out)
static int chomp_filter(AVBSFContext *ctx, AVPacket *pkt)
{
AVPacket *in;
int ret;
ret = ff_bsf_get_packet(ctx, &in);
ret = ff_bsf_get_packet_ref(ctx, pkt);
if (ret < 0)
return ret;
while (in->size > 0 && !in->data[in->size - 1])
in->size--;
av_packet_move_ref(out, in);
av_packet_free(&in);
while (pkt->size > 0 && !pkt->data[pkt->size - 1])
pkt->size--;
return 0;
}