[FFmpeg-devel] [PATCH] libavcodec/flacenc: Enable sample rates > 655350 Hz
Derek Buitenhuis
derek.buitenhuis at gmail.com
Mon Oct 31 23:25:16 EET 2022
On 10/31/2022 6:33 PM, Martijn van Beurden wrote:
> The Xiph spec also says the IETF spec is better, and it remains as
> historical reference and overview :)
So it does.
> The spec as it is on the FLAC website (which is being "preserved") is
> wrong. I don't know how this came to be, I think it was at first
> poorly worded and later incorrectly fixed. See this commit:
> https://github.com/xiph/flac/commit/96534bb5f35eb9c2f6f393dc470625e9c74df1a5
> The text as it was before that commit doesn't make any sense, the text
> as it is after the commit is not correct either.
Well that's pretty confusing, indeed.
> The issue here is that FLAC has a sample rate in the streaminfo
> metadata block, at the very start of the file. That one can
> accommodate sample rates up to 2^20-1. The frame headers repeat the
> sample rate every frame and can only accommodate up to 655350Hz, but
> they can also reference the streaminfo metadata block. Because of the
> possibility to reference that 20 bit number, it is possible to store
> sample rates up to 1048575Hz. You can see this patch only touches the
> encoder: the FFmpeg decoder has already been equipped to deal with
> this since its inception in 2004.
>
> There is some kind of limitation to sample rates above 655350Hz, or
> samplerates between 65535Hz and 655350Hz that are not a multiple of 10
> though: a FLAC file with such a sample rate cannot be multicast,
> because a decoder receiving a multicast stream does not receive the
> streaminfo metadata block, and thus cannot use it to figure out the
> correct sample rate.
>
> Please let me know when this explanation falls short.
It all makes sense, thanks for the explanation.
- Derek
More information about the ffmpeg-devel
mailing list