diff --git a/flac_codec_registration.src.html b/flac_codec_registration.src.html index 1a13b0f4..6beca3ea 100644 --- a/flac_codec_registration.src.html +++ b/flac_codec_registration.src.html @@ -16,7 +16,8 @@ (2) the codec-specific {{EncodedAudioChunk}} [=EncodedAudioChunk/[[internal data]]=] bytes, (3) the {{AudioDecoderConfig.description}} bytes, and (4) the values of - {{EncodedAudioChunk}} [=EncodedAudioChunk/[[type]]=]. + {{EncodedAudioChunk}} [=EncodedAudioChunk/[[type]]=], and (5) the + codec-specific extensions to {{AudioEncoderConfig}}. The registration is not intended to include any information on whether a codec format is encumbered by intellectual property claims. Implementers and @@ -46,14 +47,15 @@ text: EncodedAudioChunk; url: encodedaudiochunk type: dictionary text: AudioDecoderConfig; url: dictdef-audiodecoderconfig + text: AudioEncoderConfig; url: dictdef-audioencoderconfig
{
"FLAC": {
- "href": "https://xiph.org/flac/format.html",
- "title": "FLAC - format",
- "publisher": "Xiph.Org Foundation"
+ "href": "https://datatracker.ietf.org/doc/draft-ietf-cellar-flac",
+ "title": "Free Lossless Audio Codec",
+ "publisher": "IETF"
}
}
@@ -75,8 +77,8 @@
{{AudioDecoderConfig.description}} is required, and has to be the following:
- The bytes `0x66 0x4C 0x61 0x43` ("`fLaC`" in ASCII)
-- A `METADATA_BLOCK` of type `STEAMINFO` as described in [[FLAC]]
-- Optionaly other `METADATA_BLOCK`, that are not used by the specification
+- A `metadata block` (called the STREAMINFO block) as described in section 7 of [[FLAC]]
+- Optionaly other metadata blocks, that are not used by the specification
The {{AudioDecoderConfig.sampleRate}} and {{AudioDecoderConfig.numberOfChannels}}
members are overridden by what the decoder finds in the
@@ -94,6 +96,59 @@
NOTE: Once the initialization has succeeded, any FLAC packet can be decoded at
any time without error, but this might not result in the expected audio output.
+AudioEncoderConfig extensions {#audioencoderconfig-extensions}
+=============================================================
+
+++ ++partial dictionary AudioEncoderConfig { + FlacEncoderConfig flac; +}; + +
++ +To check if an {{FlacEncoderConfig}} is valid, run these steps: +1. If {{FlacEncoderConfig/blockSize}} is not a valid block size, + which is described section 5.1 of [[FLAC]], return `false`. +1. If {{FlacEncoderConfig/compressLevel}} is specified and not within the range of + `0` (fastest, least compression) and `8` (slowest, most compression) inclusively, return `false`. +2. Return `true`. + ++dictionary FlacEncoderConfig { + [EnforceRange] unsigned long blockSize = 0; + [EnforceRange] unsigned long compressLevel = 5; +}; + +