Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2023-08-14T09:11:14Zhttps://gitlab.xiph.org/xiph/liboggplay/-/issues/200Completion of error handling2023-08-14T09:11:14ZMarkus ElfringCompletion of error handlingWould you like to add more error handling for return values from functions like the following?
* [malloc](https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html "Memory allocation") ⇒ [dump_streams_callback](https://gitl...Would you like to add more error handling for return values from functions like the following?
* [malloc](https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html "Memory allocation") ⇒ [dump_streams_callback](https://gitlab.xiph.org/xiph/liboggplay/-/blob/c19ee00e23054f47445141c5870c1ed61b38f2ad/src/tools/oggplay-info.c#L19)
* [printf](https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html "Print formatted output") ⇒ [_print_list](https://gitlab.xiph.org/xiph/liboggplay/-/blob/c19ee00e23054f47445141c5870c1ed61b38f2ad/src/liboggplay/oggplay_data.c#L122)https://gitlab.xiph.org/xiph/liboggplay/-/issues/199Complete build options for Pthread API2023-08-14T08:55:12ZMarkus ElfringComplete build options for Pthread API:thought_balloon: Would you like to add the configuration script “[AX_PTHREAD](https://www.gnu.org/software/autoconf-archive/ax_pthread.html "How to build C programs using POSIX threads")” to [your build specification](https://gitlab.xip...:thought_balloon: Would you like to add the configuration script “[AX_PTHREAD](https://www.gnu.org/software/autoconf-archive/ax_pthread.html "How to build C programs using POSIX threads")” to [your build specification](https://gitlab.xiph.org/xiph/liboggplay/-/blob/c19ee00e23054f47445141c5870c1ed61b38f2ad/configure.ac#L263 "Update candidate")?https://gitlab.xiph.org/xiph/flac/-/issues/5Remove unnecessary null pointer checks2023-08-15T07:09:18ZMarkus ElfringRemove unnecessary null pointer checks:eyes: [A few extra null pointer checks are not needed](https://stackoverflow.com/questions/18775608/free-a-null-pointer-anyway-or-check-first "Free a null pointer anyway or check first?") in [the function “static_metadata_clear”](https:...:eyes: [A few extra null pointer checks are not needed](https://stackoverflow.com/questions/18775608/free-a-null-pointer-anyway-or-check-first "Free a null pointer anyway or check first?") in [the function “static_metadata_clear”](https://gitlab.xiph.org/xiph/flac/-/blob/28e4f0528c76b296c561e922ba67d43751990599/src/flac/encode.c#L1587 "Update candidate").https://gitlab.xiph.org/xiph/flac/-/issues/4reserved identifier violation2023-08-15T06:42:10ZMarkus Elfringreserved identifier violation:eyes: I would like to point out that identifiers like “[`FLACPP__METADATA_H`](https://gitlab.xiph.org/xiph/flac/-/blob/28e4f0528c76b296c561e922ba67d43751990599/include/FLAC++/metadata.h#L33 "Update candidate")” and “[`FLAC__SubframeType...:eyes: I would like to point out that identifiers like “[`FLACPP__METADATA_H`](https://gitlab.xiph.org/xiph/flac/-/blob/28e4f0528c76b296c561e922ba67d43751990599/include/FLAC++/metadata.h#L33 "Update candidate")” and “[`FLAC__SubframeType`](https://gitlab.xiph.org/xiph/flac/-/blob/28e4f0528c76b296c561e922ba67d43751990599/include/FLAC/format.h#L263 "Another update candidate")” [do not fit](https://wiki.sei.cmu.edu/confluence/display/cplusplus/DCL51-CPP.+Do+not+declare+or+define+a+reserved+identifier "Do not declare an identifier which is reserved for the compiler implementation.") to the expected naming convention of the C++ language standard.
:thought_balloon: Would you like to adjust your selection for unique names?https://gitlab.xiph.org/xiph/liboggplay/-/issues/198reserved identifier violation2023-08-14T07:48:11ZMarkus Elfringreserved identifier violation:eyes: I would like to point out that identifiers like “[`__OGGPLAY_H__`](https://gitlab.xiph.org/xiph/liboggplay/-/blob/c19ee00e23054f47445141c5870c1ed61b38f2ad/include/oggplay/oggplay.h#L43 "Update candidate")” and “[`_OggPlayReader`](...:eyes: I would like to point out that identifiers like “[`__OGGPLAY_H__`](https://gitlab.xiph.org/xiph/liboggplay/-/blob/c19ee00e23054f47445141c5870c1ed61b38f2ad/include/oggplay/oggplay.h#L43 "Update candidate")” and “[`_OggPlayReader`](https://gitlab.xiph.org/xiph/liboggplay/-/blob/c19ee00e23054f47445141c5870c1ed61b38f2ad/include/oggplay/oggplay_reader.h#L48 "Another update candidate")” [do not fit](https://wiki.sei.cmu.edu/confluence/display/cplusplus/DCL51-CPP.+Do+not+declare+or+define+a+reserved+identifier "Do not declare an identifier which is reserved for the compiler implementation.") to the expected naming convention of the C++ language standard.
:thought_balloon: Would you like to adjust your selection for unique names?https://gitlab.xiph.org/xiph/speexdsp/-/issues/12Remove unnecessary null pointer checks2023-08-14T16:32:27ZMarkus ElfringRemove unnecessary null pointer checks:eyes: [A few extra null pointer checks are not needed](https://stackoverflow.com/questions/18775608/free-a-null-pointer-anyway-or-check-first "Free a null pointer anyway or check first?") in [the function “spx_drft_clear”](https://gitla...:eyes: [A few extra null pointer checks are not needed](https://stackoverflow.com/questions/18775608/free-a-null-pointer-anyway-or-check-first "Free a null pointer anyway or check first?") in [the function “spx_drft_clear”](https://gitlab.xiph.org/xiph/speexdsp/-/blob/738e17905e1ca2a1fa932ddd9c2a85d089f4e845/libspeexdsp/smallft.c#L1252 "Update candidate").https://gitlab.xiph.org/xiph/speexdsp/-/issues/11Completion of error handling2023-08-14T07:04:23ZMarkus ElfringCompletion of error handlingWould you like to [add more error handling](https://gitlab.xiph.org/xiph/speexdsp/-/blob/738e17905e1ca2a1fa932ddd9c2a85d089f4e845/libspeexdsp/fftwrap.c#L231 "Update candidate: spx_fft_init()") for return values from functions like [speex...Would you like to [add more error handling](https://gitlab.xiph.org/xiph/speexdsp/-/blob/738e17905e1ca2a1fa932ddd9c2a85d089f4e845/libspeexdsp/fftwrap.c#L231 "Update candidate: spx_fft_init()") for return values from functions like [speex_alloc()](https://gitlab.xiph.org/xiph/speexdsp/-/blob/738e17905e1ca2a1fa932ddd9c2a85d089f4e845/libspeexdsp/os_support.h#L48 "Memory allocation")?https://gitlab.xiph.org/xiph/speexdsp/-/issues/10reserved identifier violation2023-08-14T06:24:58ZMarkus Elfringreserved identifier violation:eyes: I would like to point out that identifiers like “[`__SPEEX_TYPES_H__`](https://gitlab.xiph.org/xiph/speexdsp/-/blob/738e17905e1ca2a1fa932ddd9c2a85d089f4e845/include/speex/speexdsp_config_types.h.in#L1 "Update candidate")” and “[`_...:eyes: I would like to point out that identifiers like “[`__SPEEX_TYPES_H__`](https://gitlab.xiph.org/xiph/speexdsp/-/blob/738e17905e1ca2a1fa932ddd9c2a85d089f4e845/include/speex/speexdsp_config_types.h.in#L1 "Update candidate")” and “[`_JitterBufferPacket`](https://gitlab.xiph.org/xiph/speexdsp/-/blob/738e17905e1ca2a1fa932ddd9c2a85d089f4e845/include/speex/speex_jitter.h#L56 "Another update candidate")” [do not fit](https://wiki.sei.cmu.edu/confluence/display/cplusplus/DCL51-CPP.+Do+not+declare+or+define+a+reserved+identifier "Do not declare an identifier which is reserved for the compiler implementation.") to the expected naming convention of the C++ language standard.
:thought_balloon: Would you like to adjust your selection for unique names?https://gitlab.xiph.org/xiph/icecast-server/-/issues/2480Test Ticket, please ignore2023-08-07T14:32:40ZPhilipp SchafftTest Ticket, please ignoreThis is a little funny test ticket. You know the lazy dog, don't you?This is a little funny test ticket. You know the lazy dog, don't you?Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/XiphDirectory/-/issues/34Song Metadata appearing incorrectly in directory2023-08-04T13:31:26ZmatthewunmutedSong Metadata appearing incorrectly in directoryWe have listed one of our client's stations in your directory, however song
names are showing with '%20' in the titles instead of a space - is this
something we can change?
https://dir.xiph.org/search?q=Radio+Guyana
Many thanks in advanceWe have listed one of our client's stations in your directory, however song
names are showing with '%20' in the titles instead of a space - is this
something we can change?
https://dir.xiph.org/search?q=Radio+Guyana
Many thanks in advancehttps://gitlab.xiph.org/xiph/opus/-/issues/2364Added the OPUS_SET_INBAND_FEC(2) option2023-07-27T04:04:32Zhua yanAdded the OPUS_SET_INBAND_FEC(2) optionWhat are the benefits of adding the OPUS_SET_INBAND_FEC(2) option? How does it affect audio quality? How does it affect audio quality compared to OPUS_SET_INBAND_FEC(1)?What are the benefits of adding the OPUS_SET_INBAND_FEC(2) option? How does it affect audio quality? How does it affect audio quality compared to OPUS_SET_INBAND_FEC(1)?https://gitlab.xiph.org/xiph/icecast-server/-/issues/2479Revise supported architectures, operatingsystems and buildtargets2024-01-06T03:14:17ZStephan JauernickRevise supported architectures, operatingsystems and buildtargetsCheck and define what architectures, operatingsystems and buildtargets we want:
- amd64, i386, aarch64, s390x, ...?
- Debian 12(stable), Debian(11), Ubuntu ?!?!?!?!, RedHatDerivate>9000 ??!?!?!, ...?
- GCC 2.9, clang xxx, intel-who-knows...Check and define what architectures, operatingsystems and buildtargets we want:
- amd64, i386, aarch64, s390x, ...?
- Debian 12(stable), Debian(11), Ubuntu ?!?!?!?!, RedHatDerivate>9000 ??!?!?!, ...?
- GCC 2.9, clang xxx, intel-who-knows-what, ...?
- ....
Should optimally be done before Icecast 2.5 rc1https://gitlab.xiph.org/xiph/opus/-/issues/2363Just a question, about LBRR2023-07-07T06:42:52ZJian GaoJust a question, about LBRRI've seen the remarkable improvent in PLC with DRED, but just out of curiosity, is it realistic to contain more than one LBRR frame in one Opus frame?I've seen the remarkable improvent in PLC with DRED, but just out of curiosity, is it realistic to contain more than one LBRR frame in one Opus frame?https://gitlab.xiph.org/xiph/squishyball/-/issues/3XXY test logic is broken [patch]2023-07-05T10:05:45ZJonathan DowlandXXY test logic is broken [patch]A Debian user noticed the XXY test logic was broken. We've carried this fix in Debian since 2015:
https://salsa.debian.org/debian/squishyball/-/blob/master/debian/patches/fix_xxyA Debian user noticed the XXY test logic was broken. We've carried this fix in Debian since 2015:
https://salsa.debian.org/debian/squishyball/-/blob/master/debian/patches/fix_xxyhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2478Request: Make status-json.xslt a real JSON REST API endpoint (Github #65)2024-01-06T03:52:01Z/usr/local/ΕΨΗΕΛΩΝRequest: Make status-json.xslt a real JSON REST API endpoint (Github #65)# TL:DR;
Please make sure that icecast status-json.xslt returns a singleton array of `source` when there is a single source available, to allow consumers using an object-oriented model of icecast output for scraping.
----
As a programm...# TL:DR;
Please make sure that icecast status-json.xslt returns a singleton array of `source` when there is a single source available, to allow consumers using an object-oriented model of icecast output for scraping.
----
As a programmer, I enjoy integrating open systems that speak popular protocols.
I was working on a mobile front end for icecast2 and I found that icecast exposes a JSON API to parse the available streams. I worked with Angular to process it.
I found that the JSON is generated by an XSL transform, which produces an output that in the REST paradigm is not easy to work with.
In XML, especially if you have a schema defined, you can easily tell whether the `<source>` tag appears once or multiple times, and multiple tags appear at the same level. In JSON, the `source` must be either an object or an array for the client to parse it **easily**
The problem is, look at these outputs when you have a single stream running, or multiple:
```json
{
"icestats": {
"admin": "example@localhost",
"host": "localhost",
"location": "somewhere",
"server_id": "Icecast 2.4.4",
"server_start": "Tue, 06 Jun 2023 09:33:57 +0000",
"server_start_iso8601": "2023-06-06T09:33:57+0000",
"source": [
{
...
"listenurl": "http://localhost:8000/silent2.ogg",
"server_description": "Unspecified description",
"server_name": "The Silent Party",
...
},
{
...
"listenurl": "http://localhost:8000/stream",
"server_description": "Unspecified description",
....
}
]
}
}
```
```json
{
"icestats": {
"admin": "example@localhost",
"host": "localhost",
"location": "somewhere",
"server_id": "Icecast 2.4.4",
"server_start": "Tue, 06 Jun 2023 09:33:57 +0000",
"server_start_iso8601": "2023-06-06T09:33:57+0000",
"source": {
"audio_bitrate": 128000,
....
"listenurl": "http://localhost:8000/silent2.ogg",
"server_description": "Unspecified description",
"server_name": "The Silent Party",
....
}
}
}
```
As you can see, if there is a single stream, then the object is a map. Otherwise, it's an array.
Software working on JSON has to suffer additional burden (i.e. more code, more tests, less reliability) to handle the icecast output compared to the straight solution of using an array for the source_s_.
Here is my solution for an Angular app
```typescript
export interface IcecastStatsDto {
admin?: string;
client_connections?: number;
....
stats_connections?: number;
source?: IcecastSourceDto | IcecastSourceDto[];
}
```
And some typescript code to change the `IcecastSourceDto | IcecastSourceDto[]` into a (singleton?) array
```typescript
private getArrayFromSingleValue(x?: IcecastSourceDto | IcecastSourceDto[]): IcecastSourceDto[] {
if (!x) {
return <IcecastSourceDto[]>[];
} else if ('filter' in x) {
return <IcecastSourceDto[]>x;
} else if ('server_url' in x) {
return <IcecastSourceDto[]>[<IcecastSourceDto>x];
} else {
return <IcecastSourceDto[]>[];
}
}
```
This is for a Javascript FE. If I was using a C# or Java application, decoding icecast output into a POCO/POJO woulc be much harder. Defining a singleton array (i.e. an array containing one element) is the preferred solution in OO world,
I hope my feedback will be useful to improve the softwarehttps://gitlab.xiph.org/xiph/ezstream/-/issues/2286metadata not working for MP32023-06-19T03:08:48Zտիգրանmetadata not working for MP3My configs:
```
<metadata>
<format_str>@t@ - @a@ - @T@</format_str>
<refresh_interval>-1</refresh_interval>
<normalize_strings>Yes</normalize_strings>
<no_updates>Yes</no_updates>
</metadata>
```
```
<decoders>
...My configs:
```
<metadata>
<format_str>@t@ - @a@ - @T@</format_str>
<refresh_interval>-1</refresh_interval>
<normalize_strings>Yes</normalize_strings>
<no_updates>Yes</no_updates>
</metadata>
```
```
<decoders>
<decoder>
<name>MadPlay</name>
<program>madplay -b 16 -R 44100 -S -o raw:- @T@</program>
<file_ext>.mp3</file_ext>
</decoder>
</decoders>
<encoders>
<encoder>
<encoder>
<name>Lame-CBR128</name>
<format>MP3</format>
<program>lame --preset cbr 128 -r -s 44.1 --tt @t@ --ta @a@ --bitwidth 16 - -</program>
</encoder>
</encoders>
```
`--tt @t@ --ta @a@` added by me but doesn't helphttps://gitlab.xiph.org/xiph/icecast-website/-/issues/2056Currently FAQ items have no anchors assigned2023-06-22T11:40:43ZPhilipp SchafftCurrently FAQ items have no anchors assignedCurrently items on the FAQ page (https://icecast.org/faq/) have no anchors (`id`-attribute) assigned. Therefore they can not be linked directly. This makes the FAQ hardly useful as reference in other documentation.Currently items on the FAQ page (https://icecast.org/faq/) have no anchors (`id`-attribute) assigned. Therefore they can not be linked directly. This makes the FAQ hardly useful as reference in other documentation.Marvin ScholzMarvin Scholzhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2476Support for linking well known IDs from metadata2023-06-07T08:36:00ZPhilipp SchafftSupport for linking well known IDs from metadataIt would be nice if Icecast could auto link data when there is a well known ID for it. This is the case with e.g. MusicBrainz.
There should be a boolean setting that can be used to turn this off (e.g. for legal reasons).
This may also ...It would be nice if Icecast could auto link data when there is a well known ID for it. This is the case with e.g. MusicBrainz.
There should be a boolean setting that can be used to turn this off (e.g. for legal reasons).
This may also be implemented on top of #2475 by adding defaults to it.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2475Content resolver support2023-06-07T09:04:02ZPhilipp SchafftContent resolver supportAs there is not yet been a content resolver set up for Icecast and/or the foundation I would like to suggest the following:
Icecast should be extended with a set of settings used to generate URLs for content resolver requests. Initially...As there is not yet been a content resolver set up for Icecast and/or the foundation I would like to suggest the following:
Icecast should be extended with a set of settings used to generate URLs for content resolver requests. Initially there should be support for generating links to documentation. Other types (such as fetches) might later be added.
The I suggest to allow a template style URLs as values with `%`-prefixed parameters to be substituted.
As a reference "`ise-uri-template`" (`82ebe8fa-8b04-415a-ba90-16267465ef71`) defines:
> A URI template for accessing a resolver. This should not be used directly but my using one of the relations derived from it. Such templates are meant to be attached to contexts to allow easy access to resolvers without the need to set direct URIs on every tag.
>
> Templates are used as is with the following variables replaced by correctly URI encoded values. If a given value is not available this template is not available.
>
> * "%I": Any ISE of the tag
> * "%U": The UUID of the tag
> * "%O": The OID of the tag
> * "%R": The URI of the tag
>
> The use of those values is mostly safe as "%" is a special character in URIs that can only be followed by digits, or the letters "a" to "f". However some applications generate invalidly encoded Unicode URIs containing values in the form of "%uNNNN". Those are invalid by themself and therefore not valid in such templates.
I would like to extend that by providing three more substitutions:
* A generic one for the identifier (in any type/encoding)
* The name of the type/encoding used
* The name of the type/encoding used but the value `ise` for any ISE type (UUID, OID, URI).
If such parameters are added a note should be added to the code to make clear that they do not follow the `ise-uri-template` rules. However they may be added or at least reserved for `ise-uri-template` to avoid future syntax collisions.https://gitlab.xiph.org/xiph/speex/-/issues/2041Add library.json2023-11-09T05:56:18ZIhorNehrutsaAdd library.jsonAdd library.json for VS Code PlatformIO
```
{
"name": "speex",
"version": "1.2.1",
"headers": "speex.h",
"build": {
"srcDir": "./libspeex"
},
"homepage": "https://www.speex.org/",
"repository":
{
"type": "git",
...Add library.json for VS Code PlatformIO
```
{
"name": "speex",
"version": "1.2.1",
"headers": "speex.h",
"build": {
"srcDir": "./libspeex"
},
"homepage": "https://www.speex.org/",
"repository":
{
"type": "git",
"url": "https://gitlab.xiph.org/xiph/speex.git"
}
}
```