aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuangyu Sun <sunguangyucn@gmail.com>2021-07-07 08:41:33 -0700
committerLynne <dev@lynne.ee>2021-07-12 09:54:52 +0200
commit24b3178efdfd61c7002d016b0e8db59fd5ff1491 (patch)
tree5cdfbb6ff0172f011d17c4c5051681ecbc9b0236
parent75510d7015f108b84dd3be3c903afa710997d719 (diff)
downloadffmpeg-24b3178efdfd61c7002d016b0e8db59fd5ff1491.tar.gz
libavcodec/vorbisenc: Add missing initial_padding
Vorbis has priming samples at the beginning. If the initial_padding is not set in the encoder, the total sample count will be one frame fewer than it should be. The result is that we get a truncated version of encoding. initial_padding should be set to the frame_size used in vorbis_encode_frame(). Signed-off-by: Guangyu Sun <gsun@roblox.com>
-rw-r--r--libavcodec/vorbisenc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c
index 332c09f9a1..72c6ba1130 100644
--- a/libavcodec/vorbisenc.c
+++ b/libavcodec/vorbisenc.c
@@ -1287,6 +1287,7 @@ static av_cold int vorbis_encode_init(AVCodecContext *avctx)
avctx->extradata_size = ret;
avctx->frame_size = 64;
+ avctx->initial_padding = 1 << (venc->log2_blocksize[1] - 1);
ff_af_queue_init(avctx, &venc->afq);