Browse Source

avcodec/ac3enc: Avoid needlessly copying encoded packets around

AC-3 and EAC-3 are codecs whose packet sizes are known in advance,
so one can use the min_size parameter of ff_alloc_packet2() to
allocate exactly this amount. This avoids a memcpy later in
av_packet_make_refcounted() in encode_simple_internal().

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
master
Andreas Rheinhardt 4 years ago
parent
commit
5d4234b3ea
1 changed files with 2 additions and 1 deletions
  1. +2
    -1
      libavcodec/ac3enc.c

+ 2
- 1
libavcodec/ac3enc.c View File

@@ -1759,7 +1759,8 @@ int ff_ac3_encode_frame_common_end(AVCodecContext *avctx, AVPacket *avpkt,

ac3_quantize_mantissas(s);

if ((ret = ff_alloc_packet2(avctx, avpkt, s->frame_size, 0)) < 0)
ret = ff_alloc_packet2(avctx, avpkt, s->frame_size, s->frame_size);
if (ret < 0)
return ret;
ac3_output_frame(s, avpkt->data);



Loading…
Cancel
Save