Message ID | HE1PR0301MB2154D98403AA87DB5AA09D088F439@HE1PR0301MB2154.eurprd03.prod.outlook.com |
---|---|
State | Superseded |
Headers | show |
Series | [FFmpeg-devel,01/34] avcodec/adpcmenc: Avoid copying packet data | expand |
Context | Check | Description |
---|---|---|
andriy/x86_make | success | Make finished |
andriy/x86_make_fate | success | Make fate finished |
andriy/PPC64_make | success | Make finished |
andriy/PPC64_make_fate | success | Make fate finished |
On 4/25/2021 7:28 PM, Andreas Rheinhardt wrote: > When the packet size is known in advance like here, one can avoid > an intermediate buffer for the packet data. With 4.4 released and the bump about happen, we can start porting all (or most) encoders to get_encode_buffer(). And this one here is a no brainer for that. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> > --- > libavcodec/adpcmenc.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c > index 9dc77d519a..131e3b3910 100644 > --- a/libavcodec/adpcmenc.c > +++ b/libavcodec/adpcmenc.c > @@ -598,7 +598,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, > pkt_size = (frame->nb_samples * avctx->channels) / 2; > else > pkt_size = avctx->block_align; > - if ((ret = ff_alloc_packet2(avctx, avpkt, pkt_size, 0)) < 0) > + if ((ret = ff_alloc_packet2(avctx, avpkt, pkt_size, pkt_size)) < 0) > return ret; > dst = avpkt->data; > > @@ -933,7 +933,6 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, > return AVERROR(EINVAL); > } > > - avpkt->size = pkt_size; > *got_packet_ptr = 1; > return 0; > } >
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index 9dc77d519a..131e3b3910 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -598,7 +598,7 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, pkt_size = (frame->nb_samples * avctx->channels) / 2; else pkt_size = avctx->block_align; - if ((ret = ff_alloc_packet2(avctx, avpkt, pkt_size, 0)) < 0) + if ((ret = ff_alloc_packet2(avctx, avpkt, pkt_size, pkt_size)) < 0) return ret; dst = avpkt->data; @@ -933,7 +933,6 @@ static int adpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, return AVERROR(EINVAL); } - avpkt->size = pkt_size; *got_packet_ptr = 1; return 0; }
When the packet size is known in advance like here, one can avoid an intermediate buffer for the packet data. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/adpcmenc.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)