Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2022-08-20T02:18:39Zhttps://gitlab.xiph.org/xiph/ezstream/-/issues/2278Allow to stream replaygain metadata2022-08-20T02:18:39ZY NAllow to stream replaygain metadataIn order to have equal volume of tracks it would be nice if ezstream could stream replaygain metadata.
replaygain tags are created with
`mp3gain 01-Contaminated.mp3`
the tags are read and applied by
`mpg123 --rva-radio 01-Contaminate...In order to have equal volume of tracks it would be nice if ezstream could stream replaygain metadata.
replaygain tags are created with
`mp3gain 01-Contaminated.mp3`
the tags are read and applied by
`mpg123 --rva-radio 01-Contaminated.mp3`
When however the tracks are streamed via ezstream / icecast the following client setting doesnt correct the volume because the replaygain tags are not streamed
`mpg123 --rva-radio http://icecastserver:8000/mystream`Moritz GrimmMoritz Grimmhttps://gitlab.xiph.org/xiph/opus-tools/-/issues/2316opusenc adds distortion-causing playback gain when encoding flac with replayg...2021-06-24T05:19:55ZeverettSFopusenc adds distortion-causing playback gain when encoding flac with replaygain tagsI could not find a solution to this after some searching. Basically, I have a collection of flac files that I convert to opus to save space on my phone. After the conversion they are incredibly distorted. It only happens to the flac f...I could not find a solution to this after some searching. Basically, I have a collection of flac files that I convert to opus to save space on my phone. After the conversion they are incredibly distorted. It only happens to the flac files that already have replaygain tags on them - opusenc on flac files that have no tags don't get a playback gain added.
[01_-_In_Between_Days.flac](/uploads/aadf88e78b382a326910df1b342e5909/01_-_In_Between_Days.flac)[01_-_In_Between_Days.opus](/uploads/c24f9e9da285a058d2850b8cb47c40a8/01_-_In_Between_Days.opus)
I use the "loudgain" utility and its included script, "rgbpm", to add the tags to my files.
I couldn't find a way to remove the gain tag, so my solution has been to use ogg/vorbis instead, which works great, but it would be nice to be able to use opus for this application. Thanks for any help, let me know if I'm missing something.https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2328libshout 2.4.5 mp3 song metadata not updating2022-04-12T11:02:02ZStephen Fairchildlibshout 2.4.5 mp3 song metadata not updatingCalls to shout_set_metadata() are not updating the song metadata on the connected Icecast server when libshout 2.4.5 is streaming in mp3 format. My testing indicates the issue is not present in libshout version 2.4.4.
[libshout_mp3_met...Calls to shout_set_metadata() are not updating the song metadata on the connected Icecast server when libshout 2.4.5 is streaming in mp3 format. My testing indicates the issue is not present in libshout version 2.4.4.
[libshout_mp3_metadata.c](/uploads/d163d9fcbb3757b333b1ac2bb5d999e6/libshout_mp3_metadata.c)https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/23242.4.5 not tagged2022-04-09T19:22:43ZBe Ing2.4.5 not taggedSource code for version 2.4.5 is available to download at http://downloads.xiph.org/releases/libshout and the release is listed in https://gitlab.xiph.org/xiph/icecast-libshout/-/blob/master/NEWS#L1 but there is no Git tag.Source code for version 2.4.5 is available to download at http://downloads.xiph.org/releases/libshout and the release is listed in https://gitlab.xiph.org/xiph/icecast-libshout/-/blob/master/NEWS#L1 but there is no Git tag.https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2322Impossible install2023-03-10T12:59:04ZTitouan PetitImpossible install`npm install --save nodeshout` on Raspbian :
Log : https://hastebin.com/esevepetal.rb`npm install --save nodeshout` on Raspbian :
Log : https://hastebin.com/esevepetal.rbhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2393playlist.log not supporting Unicode/UTF-8 chars2021-10-26T00:48:31ZMike Mackayplaylist.log not supporting Unicode/UTF-8 charsWhen a songs metadata contains Unicode/UTF-8 Chars, the playlist.log file is not writing them correctly. For example, when playing a track by Björk, the Artist name was correctly shown on the stream and in the main web GUI, however the p...When a songs metadata contains Unicode/UTF-8 Chars, the playlist.log file is not writing them correctly. For example, when playing a track by Björk, the Artist name was correctly shown on the stream and in the main web GUI, however the playlist.log file had "Bj?rk" instead.https://gitlab.xiph.org/xiph/icecast-website/-/issues/2052Should the FAQ be a top level website item2023-06-22T11:40:44ZPhilipp SchafftShould the FAQ be a top level website itemCurrently the FAQ at https://icecast.org/faq/ is only linked at https://icecast.org/docs/. Im not sure if it is very often found by those seeking help. Therefore I think it might be good to include it in the top level menu.Currently the FAQ at https://icecast.org/faq/ is only linked at https://icecast.org/docs/. Im not sure if it is very often found by those seeking help. Therefore I think it might be good to include it in the top level menu.Marvin ScholzMarvin Scholzhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2376AAC HTML5 audio player in Chrome do not go to fallback2020-02-14T12:54:11ZMichelAAC HTML5 audio player in Chrome do not go to fallbackHi,
We have setup a test stream using Icecast 2.4.4 and use 2 mountpoint on AAC.
And use a simple HTML5 player for testing:
```
<audio controls preload="none">
<source src="https://streamdnsname/aac" type="audio/mp4" />
</audio>
```
T...Hi,
We have setup a test stream using Icecast 2.4.4 and use 2 mountpoint on AAC.
And use a simple HTML5 player for testing:
```
<audio controls preload="none">
<source src="https://streamdnsname/aac" type="audio/mp4" />
</audio>
```
This is a part of our Icecast config.
```
<mount>
<mount-name>/aac</mount-name>
<password>xxxxxxx</password>
<public>1</public>
<hidden>0</hidden>
<fallback-mount>/fk-aac</fallback-mount>
<fallback-override>1</fallback-override>
<max-listeners>1500</max-listeners>
</mount>
<mount>
<mount-name>/fk-aac</mount-name>
<password>xxxxxxx</password>
<public>1</public>
<hidden>1</hidden>
<fallback-mount>/aac.aac</fallback-mount>
<fallback-override>1</fallback-override>
<max-listeners>1500</max-listeners>
</mount>
```
We kick or stop the /aac mountpoint and the html5 player stop playing.
When we listen to a Winamp player and we kick the /aac it works fine we hear the /fk-aac.
We use on both mountpoints exact the same encoder (Sam Cast)
CODEC aacPlus 96kb/s (12,0 Kbytes/s) Samplerate 44.1 kHz Stereo
We using Chrome 74.0.3729.131 (Officiële build) (64-bits) on Win7.
When i test the same html5 player on Firefox it works fine. We use Firefox 66.0.4
For Chrome HTML player problem we see in Icecast (error log):
[2019-05-10 11:50:40] WARN format/format_get_type Unsupported or legacy stream type: "audio/aacp". Falling back to generic minimal handler for best effort.
Look like html5 player on chrome and Icecast using AAC do not work fine.
I already try some other things to use http (not https) or ip address in html5 player code. Other AAC setting for both mountpoints and use html5 player on diffrent PC and chrome.
But it not a specific problem on one PC.
I hope there is solution, many listener using the Chrome browser in portals (its my default browser)https://gitlab.xiph.org/xiph/icecast-server/-/issues/2369Allow for master list to contain authentication credentials (when consumed by...2021-07-26T16:00:10ZThomas B. RückerAllow for master list to contain authentication credentials (when consumed by relay client)Extension of functionality merged as part of #1878
Add handling of auth credentials as part of URL.Extension of functionality merged as part of #1878
Add handling of auth credentials as part of URL.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2305Support for XAudioCast should be marked deprecated2019-05-14T16:44:29ZPhilipp SchafftSupport for XAudioCast should be marked deprecatedThe support should be for XAudioCast (Icecast 1.x) should be marked deprecated in libshout. Support for it may be removed with the next ABI change.
Related constants (grep for this in your source code): SHOUT_PROTOCOL_XAUDIOCASTThe support should be for XAudioCast (Icecast 1.x) should be marked deprecated in libshout. Support for it may be removed with the next ABI change.
Related constants (grep for this in your source code): SHOUT_PROTOCOL_XAUDIOCASTPhilipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2343Add API endpoint to sets a mark in the log files2020-10-02T13:37:21ZPhilipp SchafftAdd API endpoint to sets a mark in the log filesThis is for debugging. The endpoint would write marker into the log file. This can be helpful to find things in busy logfiles more easily.
The marker could optionally include a user provided string and username+role of the user who requ...This is for debugging. The endpoint would write marker into the log file. This can be helpful to find things in busy logfiles more easily.
The marker could optionally include a user provided string and username+role of the user who requested the mark.https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2301libshout does hang in shout_open().2019-05-14T16:44:28ZPhilipp Schafftlibshout does hang in shout_open().libshout in 062373684bdeedf72d5432b0d247f459cb7fc285 hangs in calls to shout_open() in somecases.
In state SHOUT_STATE_RESP_PENDING it passes retry via (rc == SHOUTERR_SOCKET && self->retry). self->retry does not reach 0.
libshout is in...libshout in 062373684bdeedf72d5432b0d247f459cb7fc285 hangs in calls to shout_open() in somecases.
In state SHOUT_STATE_RESP_PENDING it passes retry via (rc == SHOUTERR_SOCKET && self->retry). self->retry does not reach 0.
libshout is in blocking mode with TLS in RFC2818 mode. Server is Icecast 2.4.1. The reply in question is 401 to a probe request. The non-probe request is sent but the socket is closed by the server.
Maybe related to HTTP keep-alive.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2332Change playlist_new default from 4 to 102018-07-09T11:30:46ZRoger HågensenChange playlist_new default from 4 to 10Change `src->history = playlist_new(4 /* DOCUMENT: default is max_tracks=4. */);`
To `src->history = playlist_new(10 /* DOCUMENT: default is max_tracks=10. */);`
Other servers like Shoutcast has 10, various players and webplayers has 10...Change `src->history = playlist_new(4 /* DOCUMENT: default is max_tracks=4. */);`
To `src->history = playlist_new(10 /* DOCUMENT: default is max_tracks=10. */);`
Other servers like Shoutcast has 10, various players and webplayers has 10.
Most service providers do minimal configuration changes so a default of 10 is beneficial as that is most likely what users want anyway.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2313Add a history url2019-11-27T11:34:37ZRoger HågensenAdd a history urlA example url would be: http://127.0.0.1:8000/playing.json?mount=/live
The following is the minimum amount of information that a Webplayer or Website/Forum plugin/Blob plugin would need:
```
{
"server_name":"Testing Stuff",
"server_des...A example url would be: http://127.0.0.1:8000/playing.json?mount=/live
The following is the minimum amount of information that a Webplayer or Website/Forum plugin/Blob plugin would need:
```
{
"server_name":"Testing Stuff",
"server_description":"Blah blah blah",
"history":
[
{"date":"2017-03-03T10:52:10Z","artist":"Some artist","title":"Some song (this is the current one)"},
{"date":"2017-03-03T10:48:10Z","artist":"Some other artist 2","title":"Some Song 2"},
{"date":"2017-03-03T10:44:10Z","artist":"Artist 3","title":"Song 3"},
{"date":"2017-03-03T10:40:10Z","artist":"Artist 4","title":"Song 4"},
{"date":"2017-03-03T10:36:10Z","artist":"Artist 5","title":"Song 5"},
{"date":"2017-03-03T10:32:10Z","artist":"Artist 6","title":"Song 6"},
{"date":"2017-03-03T10:28:10Z","artist":"Artist 7","title":"Song 7"},
{"date":"2017-03-03T10:24:10Z","artist":"Artist 8","title":"Song 8"},
{"date":"2017-03-03T10:20:10Z","artist":"Artist 9","title":"Song 9"},
{"date":"2017-03-03T10:16:10Z","artist":"Artist 10","title":"Song 10"}
]
}
```
The server_name and server_description is included since those could change between DJs (and are nice to display in the webplayer to the listener).
The date for each song (ISO 8601 standard) is somewhat useful, not only can a webplayer show the start time for each song to the listener but (with the exception of the current song) it can calculate and show the duration of songs which a listener or visitor may find interesting.
JSON is convenient as it would need next to no processing by a server script before being passed to a Webplayer or used on a webpage via XHR.
Now as Icecast uses XML internally (mentioned on the icecast-dev mailing list recently) a alternative could be:
A example url would be: http://127.0.0.1:8000/playing.xml?mount=/live
And the following content:
```
<?xml version="1.0" encoding="UTF-8"?>
<source mount="/live">
<server_name>Testing Stuff</server_name>
<server_description>Blah blah blah</server_description>
<history>
<track>
<date>2017-03-03T10:52:10Z</date>
<artist>Some artist</artist>
<title>Some song (this is the current one)</title>
</track>
<track>
<date>2017-03-03T10:48:10Z</date>
<artist>Some other artist 2</artist>
<title>Some Song 2</title>
</track>
<track>
<date>2017-03-03T10:44:10Z</date>
<artist>Artist 3</artist>
<title>Song 3</title>
</track>
<track>
<date>2017-03-03T10:40:10Z</date>
<artist>Artist 4</artist>
<title>Song 4</title>
</track>
<track>
<date>2017-03-03T10:36:10Z</date>
<artist>Artist 5</artist>
<title>Song 5</title>
</track>
<track>
<date>2017-03-03T10:32:10Z</date>
<artist>Artist 6</artist>
<title>Song 6</title>
</track>
<track>
<date>2017-03-03T10:28:10Z</date>
<artist>Artist 7</artist>
<title>Song 7</title>
</track>
<track>
<date>2017-03-03T10:24:10Z</date>
<artist>Artist 8</artist>
<title>Song 8</title>
</track>
<track>
<date>2017-03-03T10:20:10Z</date>
<artist>Artist 9</artist>
<title>Song 9</title>
</track>
<track>
<date>2017-03-03T10:16:10Z</date>
<artist>Artist 10</artist>
<title>Song 10</title>
</track>
</history>
</source>
```
The XML is not quite as elegant as the JSON but it gets the job done and I'd rather see it as XML than never as JSON.
Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2085Removal of <threadpool>2018-11-09T14:06:15ZPhilipp SchafftRemoval of <threadpool><threadpool> should be removed as it is no longer in use.
I suggest to add a ERROR level message on usage in 2.4.2 informing the user about this.
Then I suggest that we remove the setting completely in 2.5.0, not before in about one year.<threadpool> should be removed as it is no longer in use.
I suggest to add a ERROR level message on usage in 2.4.2 informing the user about this.
Then I suggest that we remove the setting completely in 2.5.0, not before in about one year.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1900Icecast errors in name resolution2020-10-02T11:59:15ZWaitman GobbleIcecast errors in name resolution(seen in Icecast 2.3.99.0 (Beta-2.4) and -HEAD)
the user _may_ see error messages such as the following in /usr/local/share/icecast/log/error.log (default location)
[2012-09-06 02:54:40] EROR yp/send_to_yp connection to http://dir.xip...(seen in Icecast 2.3.99.0 (Beta-2.4) and -HEAD)
the user _may_ see error messages such as the following in /usr/local/share/icecast/log/error.log (default location)
[2012-09-06 02:54:40] EROR yp/send_to_yp connection to http://dir.xiph.org/cgi-bin/yp-cgi failed with "Could not resolve host: dir.xiph.org; Unknown error"
This error _appears_ to be related to using the default libcurl resolver, which is blocking, in an application using pthreads. (seen in curl -v 7.27.0, *may also be an issue in other versions)
The error does *not* appear to be caused by Icecast, HOWEVER an Icecast user _may_ experience this error (which seems to be /lightly/ reported). The user may presume that Icecast has an issue. (So it might be good to mention in the documentation somewhere, or at least appear somewhere in public, such as this space, if somebody else runs into the problem and resorts to a search engine query.) Therefor, perhaps a 'documentation enhancement'.
A solution is to build curl with the c-ares resolver, which is non-blocking and asynchronous.
```
install c-ares, ie
# git clone git://github.com/bagder/c-ares.git
# cd c-ares
# ./buildconf
# ./configure
# make -j7 && make install
```
(http://c-ares.haxx.se/)
install curl
```
./configure --with-ssl=/usr/local/ssl/ --enable-ares=/usr/local
```
to check your curl install for the c-ares resolver: (note c-ares and AsynchDNS)
```
# curl --version
curl 7.27.0 (x86_64-unknown-linux-gnu) libcurl/7.27.0 OpenSSL/1.0.0g zlib/1.2.3 c-ares/1.10.0-DEV libidn/0.6.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile NTLM NTLM_WB SSL libz
```Icecast 2.5.0Marvin ScholzMarvin Scholzhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1272Moving clients on authentication failure2020-10-18T16:15:17ZmuelliMoving clients on authentication failureI want to move a client if she didn't pass my url authentication.
e.g.
```
<mount>
<mount-name>/mount</mount-name>
<authentication type="url">
<option name="mount_add" value="http://some/url"/>
...I want to move a client if she didn't pass my url authentication.
e.g.
```
<mount>
<mount-name>/mount</mount-name>
<authentication type="url">
<option name="mount_add" value="http://some/url"/>
<option name="mount_remove" value="http://some/url"/>
<option name="listener_add" value="http://some/url"/>
<option name="listener_remove" value="http://some/url"/>
<option name="auth_header" value="icecast-auth-user: 1"/>
</authentication>
<!-- 1st example. Moving to other mount -->
<on-authentication-failure>/othermount</on-authentication-failure>
<!-- 2nd example. Playing pre-recorded file -->
<on-authentication-failure>/sorry.ogg</on-authentication-failure>
<!-- 3rd example. Firstplaying pre-recorded file, then play the stream anyway (or move to other mount) -->
<on-authentication-failure>sorry.ogg+/othermount</on-authentication-failure>
</mount>
```
Especially the 3rd example looks difficult, but I'd say it's a legitimate use-case to tell the listener that she didn't authenticate properly and is now getting e.g. a lower quality stream.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/libao/-/issues/2280libao 1.2.0 uses deprecated OS X audio APIs2020-06-14T10:09:37ZMax Hornlibao 1.2.0 uses deprecated OS X audio APIsRunning ogg123, linked against libao 1.2, produced this warning on Mac OS X 10.11 (El Capitan):
```
WARNING: 140: This application, or a library it uses, is using the
deprecated Carbon Component Manager for hosting Audio Units. Support...Running ogg123, linked against libao 1.2, produced this warning on Mac OS X 10.11 (El Capitan):
```
WARNING: 140: This application, or a library it uses, is using the
deprecated Carbon Component Manager for hosting Audio Units. Support for
this will be removed in a future release. Also, this makes the host
incompatible with version 3 audio units. Please transition to the API's
in AudioComponent.h.
```
Looking at libao's git, it seems this was already fixedin January 2016: https://git.xiph.org/?p=libao.git;a=commit;h=0dc9485462179744d7f1acf319c417a2b3c2a54c
So I a guess I am requesting that a new release is made -- the last one is from 2014.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/opus/-/issues/1980opus_decode undefined behavior decoding FEC from invalid packet2018-11-26T18:44:40ZMark Harrisopus_decode undefined behavior decoding FEC from invalid packetAttempting to decode FEC from an invalid packet can cause the opus decoder to use uninitialized data from the stack, and potentially dereference out-of-bounds memory addresses or crash depending on the contents of the uninitialized data....Attempting to decode FEC from an invalid packet can cause the opus decoder to use uninitialized data from the stack, and potentially dereference out-of-bounds memory addresses or crash depending on the contents of the uninitialized data.
Decoding the attached opus_demo bitstream under valgrind demonstrates the issue.
```
opus_demo -d 48000 1 -inbandfec opus-fec-uninit.opusdemo out.pcm
```Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/opus/-/issues/2369Cannot compile opus on Mac osx 10.13.62024-03-14T18:09:44ZPythagorstudioCannot compile opus on Mac osx 10.13.6Hi,
I am trying to complile opus on High Sierra, but I'm getting following error:
/Users/admin/opus-1.5.1/silk/x86/VQ_WMat_EC_sse4_1.c:88:26: error: passing 'int' to parameter of incompatible type '__m128i'
(vector of 2 'long long...Hi,
I am trying to complile opus on High Sierra, but I'm getting following error:
/Users/admin/opus-1.5.1/silk/x86/VQ_WMat_EC_sse4_1.c:88:26: error: passing 'int' to parameter of incompatible type '__m128i'
(vector of 2 'long long' values)
v_cb_row_31_Q7 = OP_CVTEPI8_EPI32_M32( &cb_row_Q7[ 1 ] );
Any thoughts?
Thanks