[FFmpeg-devel] [PATCH] avcodec/libopusenc: Fix for header pre-skip value

Lynne dev at lynne.ee
Thu Jan 7 23:44:30 EET 2021


Jan 7, 2021, 21:55 by art at ified.ca:

> The Opus header initial padding preskip amount is always to be expressed
> relative to 48kHz. However, the encoder delay returned from querying
> libopus is relative to the encoding samplerate. Multiply by the
> samplerate conversion factor to correct.
>
> Signed-off-by: Arthur Taylor <art at ified.ca>
> ---
>  libavcodec/libopusenc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
> index bf2d04b4fb..70d17f802b 100644
> --- a/libavcodec/libopusenc.c
> +++ b/libavcodec/libopusenc.c
> @@ -94,7 +94,7 @@ static void libopus_write_header(AVCodecContext *avctx, int stream_count,
>  bytestream_put_buffer(&p, "OpusHead", 8);
>  bytestream_put_byte(&p, 1); /* Version */
>  bytestream_put_byte(&p, channels);
> -    bytestream_put_le16(&p, avctx->initial_padding); /* Lookahead samples at 48kHz */
> +    bytestream_put_le16(&p, avctx->initial_padding * 48000 / avctx->sample_rate); /* Lookahead samples at 48kHz */
>  bytestream_put_le32(&p, avctx->sample_rate); /* Original sample rate */
>  bytestream_put_le16(&p, 0); /* Gain of 0dB is recommended. */ 
>

Pushed, thanks.


More information about the ffmpeg-devel mailing list