[flac-dev] Exact FLAC subset constraints

Martijn van Beurden mvanb1 at gmail.com
Sat Jan 4 05:06:59 PST 2014

I don't understand what it is you don't get about those blocksizes. For 
subset streams, the blocksize has to be one of 576/1152/2304/4608 or 
256/512/1024/2048/4096 if the samplerate is lower then or equal to 
48kHz, if higher, 8192 and 16384 are allowed too. If you use any other 
blocksize, the stream is not subset compliant.

Considering the fixed or variable blocksize stuff, the subset does not 
restrict that, so using a variable blocksize is technically subset 
compliant. However, flake does warn when using variable blocksizes that 
the stream is not subset compliant. The thing is, it's not in the 
reference encoder, so probably most (hardware) decoders haven't been 
tested with it. If you want to be safe, you should probably restrict 
yourself to a fixed-blocksize stream.

Finally, ffmpeg level 12 is not subset compliant.

On 03-01-14 11:20, Барт Гопник wrote:
> I'm misleading about FLAC subset constraints... Please help me
> understand exact FLAC subset limitation.
>  From https://www.xiph.org/flac/documentation_tools_flac.html#flac_options_blocksize:
> Subset streams must use one of
> 192/576/1152/2304/4608/256/512/1024/2048/4096 (and 8192/16384 if the
> sample rate is >48kHz). The reference encoder uses the same block size
> for the entire stream.
>  From https://www.xiph.org/flac/format.html#subset:
> The blocksize must be <=16384; if the sample rate is <= 48000Hz, the
> blocksize must be <=4608.
> Finally, "one of 192/576/1152/2304/4608/256/512/1024/2048/4096" or
> just (simply) "<=4608", "one of 8192/16384" or just "<=16384"?
> Maximum (4608) value and any intermediate values are not one of
> 192/576/1152/2304/4608/256/512/1024/2048/4096.
> The first statement is more restricted.
> Is the word "must" to be interpreted as described in RFC 2119
> (http://www.ietf.org/rfc/rfc2119.txt)?
> The second question:
>  From https://www.xiph.org/flac/documentation_format_overview.html:
> The reference encoder uses a single block size for the whole stream
> but the FLAC format does not require it.
> Should stream MUST have constant (fixed) block size (if blocksize
> satisfies all restrictions from first question) to be subset?
> Is variable block size stream (if blocksize satisfies all restrictions
> from first question) be subset?
> The third question:
> Is FLAC files compressed by FFMPEG with "-compression_level 12" switch
> are subset?
> _______________________________________________
> flac-dev mailing list
> flac-dev at xiph.org
> http://lists.xiph.org/mailman/listinfo/flac-dev

More information about the flac-dev mailing list