From 2c50d0ba41ec1b068e19c3075aa93fd7b072abf5 Mon Sep 17 00:00:00 2001 From: Maxim Raznatovski Date: Tue, 20 Oct 2026 17:10:53 +0200 Subject: [PATCH 1/3] docs: define the player formats every server must serve --- README.md | 2 +- roles/player/v1.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ffeac9a..9409f2d 100644 --- a/README.md +++ b/README.md @@ -1228,7 +1228,7 @@ The `player@v1_support` object in [`client/hello`](#client--server-clienthello) - `bit_depth`: integer - bit depth for this format (e.g., 16, 24); meaningful for `pcm` and `flac` only, ignored for `opus` - `buffer_capacity`: integer - maximum total size in bytes of outstanding audio chunks, as defined in [Player Buffer Accounting](#player-buffer-accounting) -Servers MUST support the `flac` and `pcm` codecs and MAY support `opus`. Players MUST list either `flac` or `pcm` and MAY list both as entries in `supported_formats`, so that every server can serve them, and MAY list `opus` in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. +Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support `opus`. Players MUST list at least one `flac` or `pcm` entry within these values in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. **Note:** Opus is covered by third-party patents. Implementers that ship `opus` in a commercial product are responsible for any license fees that apply; the patent pool does not target open-source software distributed independently from a hardware device. diff --git a/roles/player/v1.md b/roles/player/v1.md index 384a831..05f505e 100644 --- a/roles/player/v1.md +++ b/roles/player/v1.md @@ -17,7 +17,7 @@ The `player@v1_support` object in [`client/hello`](../../messaging.md#client--se - `bit_depth`: integer - bit depth for this format (e.g., 16, 24); meaningful for `pcm` and `flac` only, ignored for `opus` - `buffer_capacity`: integer - maximum total size in bytes of outstanding audio chunks, as defined in [Player Buffer Accounting](#player-buffer-accounting) -Servers MUST support the `flac` and `pcm` codecs and MAY support `opus`. Players MUST list either `flac` or `pcm` and MAY list both as entries in `supported_formats`, so that every server can serve them, and MAY list `opus` in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. +Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support `opus`. Players MUST list at least one `flac` or `pcm` entry within these values in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. **Note:** Opus is covered by third-party patents. Implementers that ship `opus` in a commercial product are responsible for any license fees that apply; the patent pool does not target open-source software distributed independently from a hardware device. From f7ab0b9b0b2950381ff4cb9b8723b333d2b33d5c Mon Sep 17 00:00:00 2001 From: Maxim Raznatovski Date: Tue, 20 Oct 2026 17:12:05 +0200 Subject: [PATCH 2/3] docs: require all three fields of the guaranteed entry to match --- README.md | 2 +- roles/player/v1.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9409f2d..40a1502 100644 --- a/README.md +++ b/README.md @@ -1228,7 +1228,7 @@ The `player@v1_support` object in [`client/hello`](#client--server-clienthello) - `bit_depth`: integer - bit depth for this format (e.g., 16, 24); meaningful for `pcm` and `flac` only, ignored for `opus` - `buffer_capacity`: integer - maximum total size in bytes of outstanding audio chunks, as defined in [Player Buffer Accounting](#player-buffer-accounting) -Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support `opus`. Players MUST list at least one `flac` or `pcm` entry within these values in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. +Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support `opus`. Players MUST list at least one `flac` or `pcm` entry in one of these combinations in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. **Note:** Opus is covered by third-party patents. Implementers that ship `opus` in a commercial product are responsible for any license fees that apply; the patent pool does not target open-source software distributed independently from a hardware device. diff --git a/roles/player/v1.md b/roles/player/v1.md index 05f505e..d0d4742 100644 --- a/roles/player/v1.md +++ b/roles/player/v1.md @@ -17,7 +17,7 @@ The `player@v1_support` object in [`client/hello`](../../messaging.md#client--se - `bit_depth`: integer - bit depth for this format (e.g., 16, 24); meaningful for `pcm` and `flac` only, ignored for `opus` - `buffer_capacity`: integer - maximum total size in bytes of outstanding audio chunks, as defined in [Player Buffer Accounting](#player-buffer-accounting) -Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support `opus`. Players MUST list at least one `flac` or `pcm` entry within these values in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. +Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support `opus`. Players MUST list at least one `flac` or `pcm` entry in one of these combinations in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. **Note:** Opus is covered by third-party patents. Implementers that ship `opus` in a commercial product are responsible for any license fees that apply; the patent pool does not target open-source software distributed independently from a hardware device. From d4087e4393785649033d9d1931c89daa3fbb1e4d Mon Sep 17 00:00:00 2001 From: Maxim Raznatovski Date: Tue, 20 Oct 2026 17:38:23 +0200 Subject: [PATCH 3/3] docs: allow servers to support other player formats --- README.md | 2 +- roles/player/v1.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 40a1502..7eb1ed6 100644 --- a/README.md +++ b/README.md @@ -1228,7 +1228,7 @@ The `player@v1_support` object in [`client/hello`](#client--server-clienthello) - `bit_depth`: integer - bit depth for this format (e.g., 16, 24); meaningful for `pcm` and `flac` only, ignored for `opus` - `buffer_capacity`: integer - maximum total size in bytes of outstanding audio chunks, as defined in [Player Buffer Accounting](#player-buffer-accounting) -Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support `opus`. Players MUST list at least one `flac` or `pcm` entry in one of these combinations in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. +Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support other formats, including `opus`. Players MUST list at least one `flac` or `pcm` entry in one of these combinations in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. **Note:** Opus is covered by third-party patents. Implementers that ship `opus` in a commercial product are responsible for any license fees that apply; the patent pool does not target open-source software distributed independently from a hardware device. diff --git a/roles/player/v1.md b/roles/player/v1.md index d0d4742..99cfd7e 100644 --- a/roles/player/v1.md +++ b/roles/player/v1.md @@ -17,7 +17,7 @@ The `player@v1_support` object in [`client/hello`](../../messaging.md#client--se - `bit_depth`: integer - bit depth for this format (e.g., 16, 24); meaningful for `pcm` and `flac` only, ignored for `opus` - `buffer_capacity`: integer - maximum total size in bytes of outstanding audio chunks, as defined in [Player Buffer Accounting](#player-buffer-accounting) -Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support `opus`. Players MUST list at least one `flac` or `pcm` entry in one of these combinations in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. +Servers MUST support the `flac` and `pcm` codecs at every combination of a `bit_depth` of 16 or 24, 1 or 2 `channels`, and a `sample_rate` of 44100 or 48000, and MAY support other formats, including `opus`. Players MUST list at least one `flac` or `pcm` entry in one of these combinations in `supported_formats`, so that every server can serve them, and MAY list other entries, including `opus`, in addition. Players are not told which codecs a server supports; the server selects only among the formats it can produce, as described below. **Note:** Opus is covered by third-party patents. Implementers that ship `opus` in a commercial product are responsible for any license fees that apply; the patent pool does not target open-source software distributed independently from a hardware device.