From 7fc1be9a01c504fb20977bb3de334a915c924244 Mon Sep 17 00:00:00 2001 From: Rostislav Pehlivanov Date: Mon, 5 Jun 2017 16:51:08 +0100 Subject: [PATCH] vorbisenc: signal samples to skip The encoder never actually signalled how many samples to skip. Signed-off-by: Rostislav Pehlivanov --- libavcodec/vorbisenc.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c index 489feded27..856f59048d 100644 --- a/libavcodec/vorbisenc.c +++ b/libavcodec/vorbisenc.c @@ -1218,6 +1218,14 @@ static int vorbis_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_free(audio); ff_af_queue_remove(&venc->afq, frame_size, &avpkt->pts, &avpkt->duration); + + if (frame_size > avpkt->duration) { + uint8_t *side = av_packet_new_side_data(avpkt, AV_PKT_DATA_SKIP_SAMPLES, 10); + if (!side) + return AVERROR(ENOMEM); + AV_WL32(&side[4], frame_size - avpkt->duration); + } + *got_packet_ptr = 1; return 0; }