Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2019-05-22T09:06:43Zhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2307Missing libssl when linking statically2019-05-22T09:06:43ZJörg KrauseMissing libssl when linking staticallyStatic linking userspace programs such as mpd against libshout
currently doesn't work out of the box, because libshout is linked
against libssl, but this isn't expressed in libshouts pkg-config
file:
```
/usr/lib/libshout.a(tls.o): In f...Static linking userspace programs such as mpd against libshout
currently doesn't work out of the box, because libshout is linked
against libssl, but this isn't expressed in libshouts pkg-config
file:
```
/usr/lib/libshout.a(tls.o): In function `tls_check_cert':
tls.c:(.text+0x10): undefined reference to `SSL_get_peer_certificate'
tls.c:(.text+0x24): undefined reference to `SSL_get_verify_result'
tls.c:(.text+0x4c): undefined reference to `X509_get_subject_name'
tls.c:(.text+0x60): undefined reference to `X509_NAME_get_text_by_NID'
tls.c:(.text+0x118): undefined reference to `X509_NAME_get_entry'
tls.c:(.text+0x11c): undefined reference to `X509_NAME_ENTRY_get_data'
tls.c:(.text+0x120): undefined reference to `ASN1_STRING_length'
tls.c:(.text+0x148): undefined reference to `X509_free'
tls.c:(.text+0x178): undefined reference to `X509_NAME_get_index_by_NID'
```
Since OpenSSL installs its own .pc files, make sure that @SHOUT_REQUIRES@
contains `libssl`.
This issue is fixed by:
``` diff
diff --git a/configure.ac b/configure.ac
index 85f18ad..2b9c505 100644
--- a/configure.ac
+++ b/configure.ac
@@ -197,6 +197,10 @@ XIPH_PATH_OPENSSL([
])
AC_SUBST([SHOUT_TLS])
AM_CONDITIONAL([HAVE_TLS], [test -n "$OPENSSL_LIBS"])
+if test "$SHOUT_TLS" = "1"
+then
+ SHOUT_REQUIRES="$SHOUT_REQUIRES, libssl"
+fi
SHOUT_VERSION="$VERSION"
SHOUT_CPPFLAGS="-I$shout_includedir $VORBIS_CFLAGS $PTHREAD_CPPFLAGS"
--
2.9.3
```Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2306[PATCH] Fix build failure due to incorrect include ordering2020-10-21T08:50:27ZJoshua Root[PATCH] Fix build failure due to incorrect include orderingCommit 627da3d8 made an incorrect change: INCLUDES should have been changed to AM_CPPFLAGS rather than its contents being moved to AM_CFLAGS. Putting preprocessor flags in AM_CFLAGS results in them being passed in the wrong order relativ...Commit 627da3d8 made an incorrect change: INCLUDES should have been changed to AM_CPPFLAGS rather than its contents being moved to AM_CFLAGS. Putting preprocessor flags in AM_CFLAGS results in them being passed in the wrong order relative to CPPFLAGS, which results in build failure when a previous version of libshout is installed and its headers are in the same place as those of its dependencies.
Downstream bug: https://trac.macports.org/ticket/58466
[Makefile.am.patch](/uploads/bf297f2da070f02f791e49f0800e6205/Makefile.am.patch)Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/libao/-/issues/23181.2.2: compile time warnings2019-05-04T10:03:06ZTomasz Kłoczko1.2.2: compile time warningsgcc 9 warnings
<pre>ao_alsa.c: In function &apos;alsa_set_hwparams&apos;:
ao_alsa.c:333:11: warning: enumeration value &apos;SND_PCM_FORMAT_UNKNOWN&apos; not handled in switch [-Wswitch]
333 | switch(internal-&gt;bitformat){...gcc 9 warnings
<pre>ao_alsa.c: In function 'alsa_set_hwparams':
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_UNKNOWN' not handled in switch [-Wswitch]
333 | switch(internal->bitformat){
| ^~~~~~
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S8' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S16_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U16_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U16_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S24_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U24_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U24_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S32_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U32_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U32_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_FLOAT_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_FLOAT_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_FLOAT64_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_FLOAT64_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_IEC958_SUBFRAME_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_IEC958_SUBFRAME_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_MU_LAW' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_A_LAW' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_IMA_ADPCM' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_MPEG' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_GSM' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S20_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S20_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U20_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U20_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_SPECIAL' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S24_3LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S24_3BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U24_3LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U24_3BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S20_3LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S20_3BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U20_3LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U20_3BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S18_3LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S18_3BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U18_3LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U18_3BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_G723_24' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_G723_24_1B' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_G723_40' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_G723_40_1B' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_DSD_U8' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_DSD_U16_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_DSD_U32_LE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_DSD_U16_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_DSD_U32_BE' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_LAST' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U16' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U24' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U32' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_FLOAT' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_FLOAT64' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_IEC958_SUBFRAME' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_S20' not handled in switch [-Wswitch]
ao_alsa.c:333:11: warning: enumeration value 'SND_PCM_FORMAT_U20' not handled in switch [-Wswitch]
ao_alsa.c: In function 'alsa_set_swparams':
ao_alsa.c:485:2: warning: 'snd_pcm_sw_params_set_xfer_align' is deprecated [-Wdeprecated-declarations]
485 | err = snd_pcm_sw_params_set_xfer_align(internal->pcm_handle, params, 1);
| ^~~
In file included from /usr/include/alsa/asoundlib.h:54,
from ao_alsa.c:39:
/usr/include/alsa/pcm.h:1331:5: note: declared here
1331 | int snd_pcm_sw_params_set_xfer_align(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val) __attribute__((deprecated));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ao_alsa.c: In function 'alsa_test_open':
ao_alsa.c:531:26: warning: unused variable 'params' [-Wunused-variable]
531 | snd_pcm_hw_params_t *params;
| ^~~~~~
ao_alsa.c: In function 'ao_plugin_play':
ao_alsa.c:798:11: warning: unused variable 'ibytes' [-Wunused-variable]
798 | int ibytes = frames * ibytewidth * device->output_channels;
| ^~~~~~
ao_alsa.c:791:9: warning: unused variable 'ostride' [-Wunused-variable]
791 | int ostride = obytewidth*device->output_channels;
| ^~~~~~~
ao_alsa.c:790:9: warning: unused variable 'istride' [-Wunused-variable]
790 | int istride = internal->sample_size;
| ^~~~~~~
ao_pulse.c: In function 'ao_plugin_close':
ao_pulse.c:309:17: warning: implicit declaration of function 'nanosleep'; did you mean 'pa_msleep'? [-Wimplicit-function-declaration]
309 | while(nanosleep(&sleep,&wake)<0){
| ^~~~~~~~~
| pa_msleep
ao_null.c: In function 'ao_null_set_option':
ao_null.c:89:20: warning: unused variable 'internal' [-Wunused-variable]
89 | ao_null_internal *internal = (ao_null_internal *) device->internal;
| ^~~~~~~~
config.c: In function 'ao_read_config_file':
config.c:58:6: warning: unused variable 'end' [-Wunused-variable]
58 | int end;
| ^~~
ao_wav.c: In function 'ao_wav_open':
ao_wav.c:165:29: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
165 | strncpy(internal->wave.riff.id, "RIFF",4);
| ~~~~~~~~~~~~~~~~~~~^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:167:29: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
167 | strncpy(internal->wave.riff.wave_id, "WAVE",4);
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:169:31: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
169 | strncpy(internal->wave.format.id, "fmt ",4);
| ~~~~~~~~~~~~~~~~~~~~~^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:185:29: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
185 | strncpy(internal->wave.data.id, "data",4);
| ~~~~~~~~~~~~~~~~~~~^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:189:10: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
189 | strncpy(buf, internal->wave.riff.id, 4);
| ^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:189:34: warning: pointer targets in passing argument 2 of 'strncpy' differ in signedness [-Wpointer-sign]
189 | strncpy(buf, internal->wave.riff.id, 4);
| ~~~~~~~~~~~~~~~~~~~^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'const char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:191:13: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
191 | strncpy(buf+8, internal->wave.riff.wave_id, 4);
| ~~~^~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:191:36: warning: pointer targets in passing argument 2 of 'strncpy' differ in signedness [-Wpointer-sign]
191 | strncpy(buf+8, internal->wave.riff.wave_id, 4);
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'const char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:192:13: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
192 | strncpy(buf+12, internal->wave.format.id,4);
| ~~~^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:192:39: warning: pointer targets in passing argument 2 of 'strncpy' differ in signedness [-Wpointer-sign]
192 | strncpy(buf+12, internal->wave.format.id,4);
| ~~~~~~~~~~~~~~~~~~~~~^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'const char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:205:13: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
205 | strncpy(buf+60, internal->wave.data.id, 4);
| ~~~^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
ao_wav.c:205:37: warning: pointer targets in passing argument 2 of 'strncpy' differ in signedness [-Wpointer-sign]
205 | strncpy(buf+60, internal->wave.data.id, 4);
| ~~~~~~~~~~~~~~~~~~~^~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_wav.c:33:
/usr/include/bits/string_fortified.h:103:1: note: expected 'const char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
In file included from ../include/ao/ao.h:94,
from audio_out.c:54:
audio_out.c: In function '_sanitize_matrix':
../include/ao/ao_private.h:201:26: warning: field precision specifier '.*' expects argument of type 'int', but argument 4 has type 'long int' [-Wformat=]
201 | fprintf(stderr,"ao_%s ERROR: " format,device->funcs->driver_info()->short_name,## args); \
| ^~~~~~~~~~~~~~~
audio_out.c:669:11: note: in expansion of macro 'aerror'
669 | aerror("Unrecognized channel name \"%.*s\" in channel matrix \"%s\"\n",
| ^~~~~~
audio_out.c:669:49: note: format string is defined here
669 | aerror("Unrecognized channel name \"%.*s\" in channel matrix \"%s\"\n",
| ~~^~
| |
| int
In file included from ../include/ao/ao.h:94,
from audio_out.c:54:
../include/ao/ao_private.h:203:26: warning: field precision specifier '.*' expects argument of type 'int', but argument 3 has type 'long int' [-Wformat=]
203 | fprintf(stderr,"ERROR: " format,## args); \
| ^~~~~~~~~
audio_out.c:669:11: note: in expansion of macro 'aerror'
669 | aerror("Unrecognized channel name \"%.*s\" in channel matrix \"%s\"\n",
| ^~~~~~
audio_out.c:669:49: note: format string is defined here
669 | aerror("Unrecognized channel name \"%.*s\" in channel matrix \"%s\"\n",
| ~~^~
| |
| int
audio_out.c:668:15: warning: unused variable 'i' [-Wunused-variable]
668 | int i;
| ^
At top level:
audio_out.c:609:13: warning: '_swap_samples' defined but not used [-Wunused-function]
609 | static void _swap_samples(char *target_buffer, char* source_buffer,
| ^~~~~~~~~~~~~
audio_out.c:406:12: warning: '_check_driver_id' defined but not used [-Wunused-function]
406 | static int _check_driver_id(int driver_id)
| ^~~~~~~~~~~~~~~~
ao_au.c: In function 'ao_au_open':
ao_au.c:165:15: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign]
165 | strncpy (buf + 24, internal->au.info, 4);
| ~~~~^~~~
| |
| unsigned char *
In file included from /usr/include/features.h:450,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:27,
from ao_au.c:30:
/usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *'
103 | __NTH (strncpy (char *__restrict __dest, const char *__restrict __src,
| ^~~~~
</pre>https://gitlab.xiph.org/xiph/icecast-server/-/issues/2375Cross-Origin Preflight OPTIONS sends 4012023-03-06T15:12:48ZBradley HiltonCross-Origin Preflight OPTIONS sends 401When a browser does a cross-origin request with preflight, icecast server fails with `401 Authentication Required` when there is no way to include the user credentials.
https://www.w3.org/TR/cors/#preflight-requestWhen a browser does a cross-origin request with preflight, icecast server fails with `401 Authentication Required` when there is no way to include the user credentials.
https://www.w3.org/TR/cors/#preflight-requesthttps://gitlab.xiph.org/xiph/rnnoise/-/issues/1rnnoise_init memset issue2021-01-22T20:36:27Zalokprasadrnnoise_init memset issueshould it be
```c
int rnnoise_init(DenoiseState *st) {
memset(st, 0, rnnoise_get_size());
```should it be
```c
int rnnoise_init(DenoiseState *st) {
memset(st, 0, rnnoise_get_size());
```https://gitlab.xiph.org/xiph/icecast-server/-/issues/2374Double quote in user agent causes malfomed log file2019-07-28T07:50:31ZNeil PalmerDouble quote in user agent causes malfomed log fileSome devices include a double quote character in their user agent.
The icecast log file quotes the user agent field, but does not escape any quotes inside of this, causing an invalid format.
Example:
> "Mozilla/5.0 (Linux; Android 5....Some devices include a double quote character in their user agent.
The icecast log file quotes the user agent field, but does not escape any quotes inside of this, causing an invalid format.
Example:
> "Mozilla/5.0 (Linux; Android 5.1; Alba 8" Build/LMY47I) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Safari/537.36"https://gitlab.xiph.org/xiph/speex/-/issues/2039fixed-point-debug fails to build2020-07-23T15:12:53ZTristan Matthewsfixed-point-debug fails to build```
./autogen.sh && ./configure --enable-fixe-point-debug && make V=99
# some time later...
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -no-undefined -version-info 6:1:5 -o libspeex.la -rpath /us...```
./autogen.sh && ./configure --enable-fixe-point-debug && make V=99
# some time later...
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -no-undefined -version-info 6:1:5 -o libspeex.la -rpath /usr/local/lib cb_search.lo exc_10_32_table.lo exc_8_128_table.lo filters.lo gain_table.lo hexc_table.lo high_lsp_tables.lo lsp.lo ltp.lo speex.lo stereo.lo vbr.lo vq.lo bits.lo exc_10_16_table.lo exc_20_32_table.lo exc_5_256_table.lo exc_5_64_table.lo gain_table_lbr.lo hexc_10_32_table.lo lpc.lo lsp_tables_nb.lo modes.lo modes_wb.lo nb_celp.lo quant_lsp.lo sb_celp.lo speex_callbacks.lo speex_header.lo window.lo -lm
libtool: link: gcc -shared -fPIC -DPIC .libs/cb_search.o .libs/exc_10_32_table.o .libs/exc_8_128_table.o .libs/filters.o .libs/gain_table.o .libs/hexc_table.o .libs/high_lsp_tables.o .libs/lsp.o .libs/ltp.o .libs/speex.o .libs/stereo.o .libs/vbr.o .libs/vq.o .libs/bits.o .libs/exc_10_16_table.o .libs/exc_20_32_table.o .libs/exc_5_256_table.o .libs/exc_5_64_table.o .libs/gain_table_lbr.o .libs/hexc_10_32_table.o .libs/lpc.o .libs/lsp_tables_nb.o .libs/modes.o .libs/modes_wb.o .libs/nb_celp.o .libs/quant_lsp.o .libs/sb_celp.o .libs/speex_callbacks.o .libs/speex_header.o .libs/window.o -lm -g -O2 -Wl,-soname -Wl,libspeex.so.1 -o .libs/libspeex.so.1.5.1
libtool: link: (cd ".libs" && rm -f "libspeex.so.1" && ln -s "libspeex.so.1.5.1" "libspeex.so.1")
libtool: link: (cd ".libs" && rm -f "libspeex.so" && ln -s "libspeex.so.1.5.1" "libspeex.so")
libtool: link: ar cru .libs/libspeex.a cb_search.o exc_10_32_table.o exc_8_128_table.o filters.o gain_table.o hexc_table.o high_lsp_tables.o lsp.o ltp.o speex.o stereo.o vbr.o vq.o bits.o exc_10_16_table.o exc_20_32_table.o exc_5_256_table.o exc_5_64_table.o gain_table_lbr.o hexc_10_32_table.o lpc.o lsp_tables_nb.o modes.o modes_wb.o nb_celp.o quant_lsp.o sb_celp.o speex_callbacks.o speex_header.o window.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libspeex.a
libtool: link: ( cd ".libs" && rm -f "libspeex.la" && ln -s "../libspeex.la" "libspeex.la" )
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/speex -I.. -g -O2 -fvisibility=hidden -Wall -MT testenc.o -MD -MP -MF .deps/testenc.Tpo -c -o testenc.o testenc.c
testenc.c: In function ‘main’:
testenc.c:83:7: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
fread(in_short, sizeof(short), FRAME_SIZE, fin);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/testenc.Tpo .deps/testenc.Po
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -o testenc testenc.o libspeex.la -lm
libtool: link: gcc -g -O2 -fvisibility=hidden -Wall -o .libs/testenc testenc.o ./.libs/libspeex.so -lm
testenc.o: In function `main':
/home/tmatth/speex/libspeex/testenc.c:136: undefined reference to `spx_mips'
collect2: error: ld returned 1 exit status
Makefile:510: recipe for target 'testenc' failed
make[2]: *** [testenc] Error 1
make[2]: Leaving directory '/home/tmatth/speex/libspeex'
Makefile:508: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/tmatth/speex'
Makefile:394: recipe for target 'all' failed
make: *** [all] Error 2
```
Other info:
```
~/speex/libspeex$ nm testenc.o
U exit
U fclose
U feof
U fopen
U __fprintf_chk
U fread
U fwrite
U _GLOBAL_OFFSET_TABLE_
0000000000000000 r .LC1
0000000000000044 r .LC10
0000000000000000 r .LC2
0000000000000003 r .LC3
0000000000000007 r .LC4
000000000000000a r .LC5
0000000000000000 r .LC6
0000000000000000 r .LC7
0000000000000027 r .LC8
0000000000000008 r .LC9
U log10
0000000000000000 T main
U __printf_chk
U rewind
U speex_bits_destroy
U speex_bits_init
U speex_bits_reset
U speex_bits_rewind
U speex_bits_write
U speex_decode_int
U speex_decoder_ctl
U speex_decoder_destroy
U speex_decoder_init
U speex_encode_int
U speex_encoder_ctl
U speex_encoder_destroy
U speex_encoder_init
U speex_nb_mode
U speex_std_char_handler
U speex_std_mode_request_handler
U spx_mips
U __stack_chk_fail
U stderr
```
and
```
nm .libs/libspeex.so
U acos@@GLIBC_2.2.5
0000000000014fe0 r attenuation
0000000000218120 B __bss_start
0000000000004420 t bw_lpc
U calloc@@GLIBC_2.2.5
0000000000014800 r cdbk_nb
0000000000014440 r cdbk_nb_high1
0000000000014300 r cdbk_nb_high2
00000000000146c0 r cdbk_nb_low1
0000000000014580 r cdbk_nb_low2
0000000000218120 b completed.7696
00000000000049a0 t compute_impulse_response
000000000000dbb0 t compute_quant_weights
0000000000004700 t compute_rms
0000000000004780 t compute_rms16
0000000000002840 t compute_weighted_codebook.isra.0
w __cxa_finalize@@GLIBC_2.2.5
0000000000002760 t deregister_tm_clones
00000000000027f0 t __do_global_dtors_aux
00000000002173f8 t __do_global_dtors_aux_fini_array_entry
0000000000218118 d __dso_handle
0000000000217d98 d _DYNAMIC
0000000000218120 D _edata
0000000000218130 B _end
0000000000013280 r e_ratio_quant
0000000000013270 r e_ratio_quant_bounds
00000000000137c0 r exc_10_16_table
0000000000012120 r exc_10_32_table
0000000000013860 r exc_20_32_table
0000000000013ae0 r exc_5_256_table
0000000000013fe0 r exc_5_64_table
0000000000012260 r exc_8_128_table
0000000000015008 r exc_gain_quant_scal1
0000000000015010 r exc_gain_quant_scal1_bound
0000000000015020 r exc_gain_quant_scal3
0000000000015040 r exc_gain_quant_scal3_bound
U exit@@GLIBC_2.2.5
U exp@@GLIBC_2.2.5
0000000000004160 t filter_mem16
0000000000003fb0 t filter_mem16_10
00000000000040c0 t filter_mem16_8
00000000000120b8 T _fini
0000000000004400 t fir_mem16
00000000000042d0 t fir_mem16_10
0000000000004390 t fir_mem16_8
00000000000155a0 r fold_quant_bound
00000000000077d0 t forced_pitch_quant
0000000000007990 t forced_pitch_unquant
U __fprintf_chk@@GLIBC_2.3.4
U fputc@@GLIBC_2.2.5
0000000000002830 t frame_dummy
00000000002173f0 t __frame_dummy_init_array_entry
0000000000017378 r __FRAME_END__
U free@@GLIBC_2.2.5
0000000000014120 r gain_cdbk_lbr
0000000000012720 r gain_cdbk_nb
0000000000015620 r gc_quant_bound
0000000000218000 d _GLOBAL_OFFSET_TABLE_
w __gmon_start__
0000000000015a6c r __GNU_EH_FRAME_HDR
00000000000154a0 r h0
00000000000141a0 r hexc_10_32_table
0000000000012920 r hexc_table
0000000000012f20 r high_lsp_cdbk
0000000000012d20 r high_lsp_cdbk2
00000000000044b0 t highpass
00000000000042b0 t iir_mem16
0000000000004180 t iir_mem16_10
0000000000004240 t iir_mem16_8
00000000000024e0 T _init
0000000000005dd0 t inner_prod
0000000000003d80 t interp_pitch.constprop.0
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
0000000000015a40 r lag_window
U log@@GLIBC_2.2.5
0000000000005500 t lpc_to_lsp
0000000000015720 r lpc_window
0000000000005cc0 t lsp_interpolate
000000000000dd20 t lsp_quant.constprop.1
000000000000e6f0 t lsp_quant_high
000000000000e2f0 t lsp_quant_lbr
000000000000dde0 t lsp_quant_nb
0000000000005a50 t lsp_to_lpc
000000000000e950 t lsp_unquant_high
000000000000e580 t lsp_unquant_lbr
000000000000e0b0 t lsp_unquant_nb
000000000000dc60 t lsp_weight_quant.constprop.0
0000000000217910 d ltp_params_lbr
0000000000217900 d ltp_params_med
0000000000217930 d ltp_params_nb
0000000000217920 d ltp_params_vlbr
U memcpy@@GLIBC_2.14
U memmove@@GLIBC_2.2.5
U memset@@GLIBC_2.2.5
0000000000005110 t multicomb
000000000000c760 t nb_decode
000000000000c3d0 t nb_decoder_ctl
000000000000c3c0 t nb_decoder_destroy
000000000000c290 t nb_decoder_init
000000000000a770 t nb_encode
000000000000a0f0 t nb_encoder_ctl
000000000000a0d0 t nb_encoder_destroy
0000000000009f60 t nb_encoder_init
0000000000217400 d nb_mode
0000000000007cc0 t nb_mode_query
00000000002177e0 d nb_submode1
0000000000217720 d nb_submode2
00000000002176c0 d nb_submode3
0000000000217660 d nb_submode4
0000000000217600 d nb_submode5
00000000002175a0 d nb_submode6
0000000000217540 d nb_submode7
0000000000217780 d nb_submode8
0000000000003c50 t noise_codebook_quant
0000000000003d10 t noise_codebook_unquant
0000000000006000 t open_loop_nbest_pitch
00000000000065a0 t pitch_search_3tap
0000000000007450 t pitch_unquant_3tap
0000000000005e40 t pitch_xcorr
U pow@@GLIBC_2.2.5
0000000000004b60 t qmf_decomp
0000000000004dc0 t qmf_synth
U realloc@@GLIBC_2.2.5
00000000000027a0 t register_tm_clones
00000000000048a0 t residue_percep_zero16
0000000000004460 t sanitize_values32
0000000000011190 t sb_decode
000000000000eab0 t sb_decode_lost
0000000000010d30 t sb_decoder_ctl
0000000000010cd0 t sb_decoder_destroy
0000000000010b10 t sb_decoder_init
000000000000f810 t sb_encode
000000000000ef90 t sb_encoder_ctl
000000000000ef10 t sb_encoder_destroy
000000000000ec40 t sb_encoder_init
00000000002179a0 d sb_uwb_mode
0000000000217ae0 d sb_wb_mode
00000000000094f0 t scal_quant
0000000000009530 t scal_quant32
0000000000012660 r shift_filt
00000000000046c0 t signal_div
0000000000004680 t signal_mul
0000000000009b70 T speex_bits_advance
0000000000009560 T speex_bits_destroy
00000000000095a0 T speex_bits_init
00000000000095e0 T speex_bits_init_buffer
0000000000009bf0 T speex_bits_insert_terminator
0000000000009be0 T speex_bits_nbytes
00000000000098d0 T speex_bits_pack
0000000000009b30 T speex_bits_peek
0000000000009ab0 T speex_bits_peek_unsigned
0000000000009610 T speex_bits_read_from
0000000000009710 T speex_bits_read_whole_bytes
0000000000009bb0 T speex_bits_remaining
0000000000009580 T speex_bits_reset
0000000000009600 T speex_bits_rewind
0000000000009540 T speex_bits_set_bit_buffer
0000000000009a90 T speex_bits_unpack_signed
00000000000099f0 T speex_bits_unpack_unsigned
0000000000009c40 T speex_bits_write
0000000000009860 T speex_bits_write_whole_bytes
0000000000007a80 T speex_decode
0000000000007b60 T speex_decode_int
0000000000007a60 t speex_decode_native
0000000000007b50 T speex_decoder_ctl
0000000000007a40 T speex_decoder_destroy
0000000000007a20 T speex_decoder_init
00000000000082f0 T speex_decode_stereo
0000000000008470 T speex_decode_stereo_int
0000000000011de0 T speex_default_user_handler
0000000000007a70 T speex_encode
0000000000007aa0 T speex_encode_int
0000000000007a50 t speex_encode_native
0000000000007a90 T speex_encoder_ctl
0000000000007a30 T speex_encoder_destroy
0000000000007a10 T speex_encoder_init
0000000000007e50 T speex_encode_stereo
0000000000008060 T speex_encode_stereo_int
0000000000002720 t _speex_fatal.constprop.0
00000000000120b0 T speex_header_free
0000000000011f40 T speex_header_to_packet
0000000000011ae0 T speex_inband_handler
0000000000011e10 T speex_init_header
0000000000007d50 T speex_lib_ctl
0000000000009f40 T speex_lib_get_mode
0000000000217d80 D speex_mode_list
0000000000009ea0 T speex_mode_query
00000000002174e0 D speex_nb_mode
0000000000011fa0 T speex_packet_to_header
0000000000011dc0 T speex_std_char_handler
0000000000011cf0 T speex_std_enh_request_handler
0000000000011c30 T speex_std_high_mode_request_handler
0000000000011bd0 T speex_std_low_mode_request_handler
0000000000011b70 T speex_std_mode_request_handler
00000000000085f0 T speex_std_stereo_request_handler
0000000000011d50 T speex_std_vbr_quality_request_handler
0000000000011c90 T speex_std_vbr_request_handler
0000000000007e40 T speex_stereo_state_destroy
0000000000007e20 T speex_stereo_state_init
0000000000007df0 T speex_stereo_state_reset
0000000000217940 D speex_uwb_mode
0000000000217a80 D speex_wb_mode
0000000000217d60 d split_cb_high
0000000000217d40 d split_cb_high_lbr
0000000000217880 d split_cb_nb
00000000002178a0 d split_cb_nb_lbr
0000000000217860 d split_cb_nb_med
00000000002178c0 d split_cb_nb_ulbr
00000000002178e0 d split_cb_nb_vlbr
0000000000217840 d split_cb_sb
0000000000002ac0 t split_cb_search_shape_sign
0000000000003aa0 t split_cb_shape_sign_unquant
0000000000009df0 t _spx_autocorr
0000000000009cc0 t _spx_lpc
0000000000218128 b spx_mips
U sqrtf@@GLIBC_2.2.5
U sqrt@@GLIBC_2.2.5
U __stack_chk_fail@@GLIBC_2.4
U stderr@@GLIBC_2.2.5
0000000000004790 t syn_percep_zero16
0000000000218120 d __TMC_END__
00000000000086f0 t vbr_analysis
0000000000009100 t vbr_destroy
0000000000013320 r vbr_hb_thresh
0000000000008690 t vbr_init
0000000000013400 r vbr_nb_thresh
00000000000132c0 r vbr_uhb_thresh
0000000000009110 t vq_nbest
00000000000092d0 t vq_nbest_sign
0000000000009eb0 t wb_mode_query
0000000000014fc0 r wb_skip_table
0000000000217ce0 d wb_submode1
0000000000217c80 d wb_submode2
0000000000217c20 d wb_submode3
0000000000217bc0 d wb_submode4
```https://gitlab.xiph.org/xiph/icecast-server/-/issues/2373Incorrect status code2020-10-15T16:20:55ZPhilipp SchafftIncorrect status codeIn case of 'mountpoint will not accept URL updates' and other admin errors Icecast might send incorrect HTTP status headers.
This happens at least in branch ph3-mdoule-client-tests.In case of 'mountpoint will not accept URL updates' and other admin errors Icecast might send incorrect HTTP status headers.
This happens at least in branch ph3-mdoule-client-tests.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2372Icecast 'locks up' on SIGHUP if there are duplicate listener-sockets in the c...2020-10-10T10:13:32ZThomas B. RückerIcecast 'locks up' on SIGHUP if there are duplicate listener-sockets in the configAs reported by 'szett' on IRC.
Excerp of the offending config file:
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<!-- <shoutcast-mount>/stream</shoutcast-mount> -->
</li...As reported by 'szett' on IRC.
Excerp of the offending config file:
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<!-- <shoutcast-mount>/stream</shoutcast-mount> -->
</listen-socket>
<!-- SOCKET FOR SOURCES -->
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<!-- <shoutcast-mount>/stream</shoutcast-mount> -->
</listen-socket>Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/vorbis-tools/-/issues/2324vorbis-tools release?2021-01-13T06:16:09ZVladimír Čunátvorbis-tools release?Hi! The last vorbis-tools release is from 2010, and there have been multiple important fixes since then (like c1059cd1e). It's not too difficult to make a new release from some suitable commit, right?Hi! The last vorbis-tools release is from 2010, and there have been multiple important fixes since then (like c1059cd1e). It's not too difficult to make a new release from some suitable commit, right?Philipp SchafftPhilipp Schafft2020-12-19https://gitlab.xiph.org/xiph/ogg/-/issues/2297framing.c: overflow on left shift2019-03-06T21:34:00ZTristan Matthewsframing.c: overflow on left shiftThere's a regression since commit bc82844df068429d209e909da47b1f730b53b689:
```framing.c:239:19: runtime error: left shift of 211 by 24 places cannot be represented in type 'int'```
I found this while generating the corpus for speex wit...There's a regression since commit bc82844df068429d209e909da47b1f730b53b689:
```framing.c:239:19: runtime error: left shift of 211 by 24 places cannot be represented in type 'int'```
I found this while generating the corpus for speex with oss-fuzz:
```
git clone git@github.com:tmatth/oss-fuzz.git
cd oss-fuzz
python infra/helper.py build_image speex
python infra/helper.py build_fuzzers --sanitizer undefined speex
```https://gitlab.xiph.org/xiph/ogg/-/issues/2296docs for ogg_stream_state have wrong type on `pageno` field2019-08-13T15:58:40ZSpencer Russelldocs for ogg_stream_state have wrong type on `pageno` fieldIn the [header file](https://gitlab.xiph.org/xiph/ogg/blob/0acd32d7cabf7e41cc29ea7c2bbffde969ff1ba0/include/ogg/ogg.h#L76) the `pageno` field is a `long`, but in the [docs](https://gitlab.xiph.org/xiph/ogg/blob/0acd32d7cabf7e41cc29ea7c2b...In the [header file](https://gitlab.xiph.org/xiph/ogg/blob/0acd32d7cabf7e41cc29ea7c2bbffde969ff1ba0/include/ogg/ogg.h#L76) the `pageno` field is a `long`, but in the [docs](https://gitlab.xiph.org/xiph/ogg/blob/0acd32d7cabf7e41cc29ea7c2bbffde969ff1ba0/doc/libogg/ogg_stream_state.html#L52) it is listed as an `int`.https://gitlab.xiph.org/xiph/vorbis/-/issues/2340divide by zero issue2020-06-11T04:25:08Zniugxdivide by zero issuethere is divide by zero issue when parameter word of ov_read_filter is 0 in vorbisfile.c file.
parameter word set by ov_read API, and user can set any value to word.
long ov_read_filter(OggVorbis_File *vf,char *buffer,int length,
.....there is divide by zero issue when parameter word of ov_read_filter is 0 in vorbisfile.c file.
parameter word set by ov_read API, and user can set any value to word.
long ov_read_filter(OggVorbis_File *vf,char *buffer,int length,
...
if(samples>0){
/* yay! proceed to pack data into the byte buffer */
long channels=ov_info(vf,-1)->channels;
long bytespersample=word * channels;
vorbis_fpu_control fpu;
// bytespersample is 0 when parameter word is 0, then divide by zero.
if(samples>length/bytespersample)samples=length/bytespersample;
POC:
modify parameter word of line 67 of vorbisfile_example.c to 0, like following:
long ret=ov_read(&vf,pcmout,sizeof(pcmout),0,0,1,¤t_section);
compile vorbisfile_example and run like this :
cat xxxx.ogg | .libs/vorbisfile_example
floating point exception occured.
If you indentify this issue as a vulnerability, please provide me with following information:
1.the affected versions.
2.patch
3.please assign a CVE-ID, discoverer is Guoxiang Niu, EaglEye Team
thank youhttps://gitlab.xiph.org/xiph/opus/-/issues/2319Opusenc produces broken samples (wrong quantization) with 24-bit source2020-08-09T16:44:10ZstevenleleOpusenc produces broken samples (wrong quantization) with 24-bit source# Original Issue
I was encoding a specific sample of music (24 bits, 48 kHz) with `opusenc` in `opus-tools 0.2 (Opus 1.3)` and noticed a significant artifact in the beginning.
**More description:** You can hear the artifact within 00:01...# Original Issue
I was encoding a specific sample of music (24 bits, 48 kHz) with `opusenc` in `opus-tools 0.2 (Opus 1.3)` and noticed a significant artifact in the beginning.
**More description:** You can hear the artifact within 00:01. It's a broken "boom"-like sound.
Check the image below. The waveform graph has significant changes.
![comparison](/uploads/0d3ce65baebb985497f03086d09e4708/comparison.png)
This is how I encoded:
```
>opusenc sample.flac --bitrate 256 sample.opus
Encoding using libopus 1.3 (audio)
-----------------------------------------------------
Input: 48 kHz, 2 channels
Output: 2 channels (2 coupled)
20ms packets, 256 kbit/s VBR
Preskip: 312
Encoding complete
-----------------------------------------------------
Encoded: 1 minute and 31.1 seconds
Runtime: 1 second
(91.1x realtime)
Wrote: 2993392 bytes, 4555 packets, 94 pages
Bitrate: 261.351 kbit/s (without overhead)
Instant rates: 1.2 to 510.4 kbit/s
(3 to 1276 bytes per packet)
Overhead: 0.576% (container+metadata)
```
# Update
I tried using `FFmpeg` to convert the original file into 16 bits (original is 24 bits).
```
>ffmpeg -i sample.wav -f wav -c pcm_s16le sample_16bit.wav
```
Then I encoded again with the same settings.
```
>opusenc sample_16bit.wav --bitrate 256 sample_16bit.opus
Skipping chunk of type "LIST", length 26
Encoding using libopus 1.3 (audio)
-----------------------------------------------------
Input: 48 kHz, 2 channels
Output: 2 channels (2 coupled)
20ms packets, 256 kbit/s VBR
Preskip: 312
Encoding complete
-----------------------------------------------------
Encoded: 1 minute and 31.1 seconds
Runtime: 1 second
(91.1x realtime)
Wrote: 2990541 bytes, 4555 packets, 94 pages
Bitrate: 261.103 kbit/s (without overhead)
Instant rates: 1.2 to 510.4 kbit/s
(3 to 1276 bytes per packet)
Overhead: 0.576% (container+metadata)
```
The result turned out to be good.
Check the image below. The waveform graph has **no** significant changes now.
![comparison_2](/uploads/119ac4dce2ed78c692075e8d90315457/comparison_2.png)
So there may be issue in quantization of 24-bit (or high bit depth?) samples.
# Sample Download
The updated sample files are [here](https://www.mediafire.com/file/jiat0cn2cjccu2y/sample_new.7z/file).
All source samples are converted to FLAC files for better compression.
The 16-bit sample is converted from the 24-bit one; the 24-bit one is the original, not padded.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2371Memory leaked due during source timeouts2019-04-01T12:52:31ZThomas B. RückerMemory leaked due during source timeouts```
==4664== Memcheck, a memory error detector
==4664== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==4664== Using Valgrind-3.14.0-3a3000290b-20181009X and LibVEX; rerun with -h for copyright info
==4664== Command: ic...```
==4664== Memcheck, a memory error detector
==4664== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==4664== Using Valgrind-3.14.0-3a3000290b-20181009X and LibVEX; rerun with -h for copyright info
==4664== Command: icecast -c /etc/icecast.xml
==4664== Parent PID: 4663
==4664==
--4664--
--4664-- Valgrind options:
--4664-- --log-file=valgrind.log
--4664-- -v
--4664-- --tool=memcheck
--4664-- --leak-check=yes
--4664-- --show-reachable=yes
--4664-- --num-callers=20
--4664-- --track-fds=yes
--4664-- Contents of /proc/version:
--4664-- Linux version 4.19.3 (xogium@C2ArchLinux) (gcc version 8.2.0 (GCC)) #2 SMP PREEMPT Thu Nov 22 15:00:50 EST 2018
--4664--
--4664-- Arch and hwcaps: ARM64, LittleEndian, baseline
--4664-- Page sizes: currently 4096, max supported 65536
--4664-- Valgrind library directory: /usr/lib/valgrind
--4664-- Reading syms from /usr/bin/icecast
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/ld-2.28.so
--4664-- Reading syms from /usr/lib/valgrind/memcheck-arm64-linux
--4664-- object doesn't have a dynamic symbol table
--4664-- Scheduler: using generic scheduler lock implementation.
--4664-- Reading suppressions file: /usr/lib/valgrind/default.supp
==4664== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-4664-by-root-on-???
==4664== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-4664-by-root-on-???
==4664== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-4664-by-root-on-???
==4664==
==4664== TO CONTROL THIS PROCESS USING vgdb (which you probably
==4664== don't want to do, unless you know exactly what you're doing,
==4664== or are doing some strange experiment):
==4664== /usr/lib/valgrind/../../bin/vgdb --pid=4664 ...command...
==4664==
==4664== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==4664== /path/to/gdb icecast
==4664== and then give GDB the following command
==4664== target remote | /usr/lib/valgrind/../../bin/vgdb --pid=4664
==4664== --pid is optional if only one valgrind process is running
==4664==
--4664-- REDIR: 0x40175c0 (ld-linux-aarch64.so.1:strlen) redirected to 0x580c8c94 (vgPlain_arm64_linux_REDIR_FOR_strlen)
--4664-- REDIR: 0x4017300 (ld-linux-aarch64.so.1:strcmp) redirected to 0x580c8ce8 (vgPlain_arm64_linux_REDIR_FOR_strcmp)
--4664-- REDIR: 0x40171f0 (ld-linux-aarch64.so.1:index) redirected to 0x580c8cbc (vgPlain_arm64_linux_REDIR_FOR_index)
--4664-- Reading syms from /usr/lib/valgrind/vgpreload_core-arm64-linux.so
--4664-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-arm64-linux.so
--4664-- Reading syms from /usr/lib/libssl.so.1.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libcurl.so.4.5.0
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libspeex.so.1.5.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libtheora.so.0.3.10
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libvorbis.so.0.4.8
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libxslt.so.1.1.32
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libxml2.so.2.9.8
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/liboggkate.so.1.2.2
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libkate.so.1.3.0
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libogg.so.0.8.3
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libpthread-2.28.so
--4664-- Reading syms from /usr/lib/libc-2.28.so
--4664-- Reading syms from /usr/lib/libcrypto.so.1.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libnghttp2.so.14.17.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libidn2.so.0.3.4
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libssh2.so.1.0.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libpsl.so.5.3.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libgssapi_krb5.so.2.2
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libkrb5.so.3.3
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libk5crypto.so.3.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libcom_err.so.2.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libz.so.1.2.11
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libm-2.28.so
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libdl-2.28.so
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libicuuc.so.63.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/liblzma.so.5.2.4
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libunistring.so.2.1.0
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libkrb5support.so.0.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libkeyutils.so.1.8
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libresolv-2.28.so
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libicudata.so.63.1
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libstdc++.so.6.0.25
--4664-- Reading syms from /usr/lib/libgcc_s.so.1
--4664-- REDIR: 0x4d40990 (libc.so.6:memcpy) redirected to 0x484d1c0 (memcpy)
--4664-- REDIR: 0x4d3f0d0 (libc.so.6:rindex) redirected to 0x484b040 (rindex)
--4664-- REDIR: 0x4d3a5b0 (libc.so.6:malloc) redirected to 0x48480a0 (malloc)
--4664-- REDIR: 0x4d3ebc0 (libc.so.6:strlen) redirected to 0x484b678 (strlen)
--4664-- REDIR: 0x4d3e380 (libc.so.6:strcmp) redirected to 0x484c840 (strcmp)
--4664-- REDIR: 0x4d3f058 (libc.so.6:strncpy) redirected to 0x484b950 (strncpy)
--4664-- REDIR: 0x4d3b3c8 (libc.so.6:calloc) redirected to 0x484a3c0 (calloc)
--4664-- REDIR: 0x4d3fb08 (libc.so.6:strstr) redirected to 0x4850600 (strstr)
--4664-- REDIR: 0x4d3ffd0 (libc.so.6:memchr) redirected to 0x484ca20 (memchr)
--4664-- REDIR: 0x4d42350 (libc.so.6:strchrnul) redirected to 0x484fde0 (strchrnul)
--4664-- REDIR: 0x4d407e0 (libc.so.6:strncasecmp) redirected to 0x484c1c0 (strncasecmp)
--4664-- REDIR: 0x4d3ac10 (libc.so.6:free) redirected to 0x4849270 (free)
--4664-- REDIR: 0x4d3ee9c (libc.so.6:strncmp) redirected to 0x484bef0 (strncmp)
--4664-- REDIR: 0x4d3e270 (libc.so.6:index) redirected to 0x484b1f0 (index)
--4664-- REDIR: 0x4d403d8 (libc.so.6:mempcpy) redirected to 0x484fee0 (mempcpy)
--4664-- REDIR: 0x4d40540 (libc.so.6:stpcpy) redirected to 0x484ec60 (stpcpy)
--4664-- Reading syms from /usr/lib/libnss_files-2.28.so
--4664-- object doesn't have a symbol table
--4664-- REDIR: 0x4d3e480 (libc.so.6:strcpy) redirected to 0x484b790 (strcpy)
--4664-- REDIR: 0x4d40200 (libc.so.6:memset) redirected to 0x484f308 (memset)
--4664-- REDIR: 0x4d3ae60 (libc.so.6:realloc) redirected to 0x484a5f0 (realloc)
--4664-- REDIR: 0x4d40780 (libc.so.6:strcasecmp) redirected to 0x484c0f0 (strcasecmp)
--4664-- REDIR: 0x4d400c0 (libc.so.6:bcmp) redirected to 0x484eaf0 (bcmp)
--4664-- REDIR: 0x4d40980 (libc.so.6:memmove) redirected to 0x484f3d0 (memmove)
--4664-- REDIR: 0x4da1f28 (libc.so.6:__memcpy_chk) redirected to 0x48504f8 (__memcpy_chk)
--4664-- REDIR: 0x4da1f48 (libc.so.6:__memmove_chk) redirected to 0x484fd68 (__memmove_chk)
--4664-- Reading syms from /usr/lib/libnss_mdns_minimal.so.2
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libnss_dns-2.28.so
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libnss_mymachines.so.2
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/librt-2.28.so
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libcap.so.2.26
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libmount.so.1.1.0
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libblkid.so.1.1.0
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libuuid.so.1.3.0
--4664-- object doesn't have a symbol table
--4664-- Reading syms from /usr/lib/libnss_myhostname.so.2
--4664-- object doesn't have a symbol table
--4664-- Discarding syms at 0x788c150-0x78933ec in /usr/lib/libnss_files-2.28.so (have_dinfo 1)
--4664-- Discarding syms at 0x7fb3ee0-0x7fb5584 in /usr/lib/libnss_mdns_minimal.so.2 (have_dinfo 1)
--4664-- Discarding syms at 0x7fc8e90-0x7fcbc30 in /usr/lib/libnss_dns-2.28.so (have_dinfo 1)
==4664==
==4664== FILE DESCRIPTORS: 4 open at exit.
==4664== Open file descriptor 3: /home/xogium/valgrind.log
==4664== <inherited from parent>
==4664==
==4664== Open file descriptor 2: /dev/pts/3
==4664== <inherited from parent>
==4664==
==4664== Open file descriptor 1: /dev/pts/3
==4664== <inherited from parent>
==4664==
==4664== Open file descriptor 0: /dev/pts/3
==4664== <inherited from parent>
==4664==
==4664==
==4664== HEAP SUMMARY:
==4664== in use at exit: 418,488 bytes in 84 blocks
==4664== total heap usage: 13,504 allocs, 13,420 frees, 5,094,700 bytes allocated
==4664==
==4664== Searching for pointers to 84 not-freed blocks
==4664== Checked 372,232 bytes
==4664==
==4664== 64 bytes in 2 blocks are still reachable in loss record 1 of 11
==4664== at 0x4848114: malloc (vg_replace_malloc.c:299)
==4664== by 0x4017557: strdup (in /usr/lib/ld-2.28.so)
==4664== by 0x4013CCF: _dl_load_cache_lookup (in /usr/lib/ld-2.28.so)
==4664== by 0x4008317: _dl_map_object (in /usr/lib/ld-2.28.so)
==4664== by 0x401197B: dl_open_worker (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4011537: _dl_open (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCF05B: do_dlopen (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFC77: _dl_catch_error (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF16B: dlerror_run (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF21B: __libc_dlopen_mode (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6667: nss_load_library (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6F27: __nss_lookup_function (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB7183: __nss_next2 (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB772B: __nss_endent (in /usr/lib/libc-2.28.so)
==4664== by 0x4DA6EFF: endhostent (in /usr/lib/libc-2.28.so)
==4664== by 0x11488F: ??? (in /usr/bin/icecast)
==4664==
==4664== 64 bytes in 2 blocks are still reachable in loss record 2 of 11
==4664== at 0x4848114: malloc (vg_replace_malloc.c:299)
==4664== by 0x400A997: _dl_new_object (in /usr/lib/ld-2.28.so)
==4664== by 0x400580F: _dl_map_object_from_fd (in /usr/lib/ld-2.28.so)
==4664== by 0x4008157: _dl_map_object (in /usr/lib/ld-2.28.so)
==4664== by 0x401197B: dl_open_worker (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4011537: _dl_open (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCF05B: do_dlopen (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFC77: _dl_catch_error (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF16B: dlerror_run (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF21B: __libc_dlopen_mode (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6667: nss_load_library (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6F27: __nss_lookup_function (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB7183: __nss_next2 (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB772B: __nss_endent (in /usr/lib/libc-2.28.so)
==4664== by 0x4DA6EFF: endhostent (in /usr/lib/libc-2.28.so)
==4664== by 0x11488F: ??? (in /usr/bin/icecast)
==4664==
==4664== 109 bytes in 5 blocks are still reachable in loss record 3 of 11
==4664== at 0x4848114: malloc (vg_replace_malloc.c:299)
==4664== by 0x4017557: strdup (in /usr/lib/ld-2.28.so)
==4664== by 0x4013CCF: _dl_load_cache_lookup (in /usr/lib/ld-2.28.so)
==4664== by 0x4008317: _dl_map_object (in /usr/lib/ld-2.28.so)
==4664== by 0x400BED7: openaux (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x400C1F7: _dl_map_object_deps (in /usr/lib/ld-2.28.so)
==4664== by 0x40119C3: dl_open_worker (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4011537: _dl_open (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCF05B: do_dlopen (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFC77: _dl_catch_error (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF16B: dlerror_run (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF21B: __libc_dlopen_mode (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6667: nss_load_library (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6F27: __nss_lookup_function (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB7183: __nss_next2 (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB772B: __nss_endent (in /usr/lib/libc-2.28.so)
==4664== by 0x4DA6EFF: endhostent (in /usr/lib/libc-2.28.so)
==4664==
==4664== 109 bytes in 5 blocks are still reachable in loss record 4 of 11
==4664== at 0x4848114: malloc (vg_replace_malloc.c:299)
==4664== by 0x400A997: _dl_new_object (in /usr/lib/ld-2.28.so)
==4664== by 0x400580F: _dl_map_object_from_fd (in /usr/lib/ld-2.28.so)
==4664== by 0x4008157: _dl_map_object (in /usr/lib/ld-2.28.so)
==4664== by 0x400BED7: openaux (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x400C1F7: _dl_map_object_deps (in /usr/lib/ld-2.28.so)
==4664== by 0x40119C3: dl_open_worker (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4011537: _dl_open (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCF05B: do_dlopen (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFC77: _dl_catch_error (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF16B: dlerror_run (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF21B: __libc_dlopen_mode (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6667: nss_load_library (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6F27: __nss_lookup_function (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB7183: __nss_next2 (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB772B: __nss_endent (in /usr/lib/libc-2.28.so)
==4664== by 0x4DA6EFF: endhostent (in /usr/lib/libc-2.28.so)
==4664==
==4664== 1,728 bytes in 7 blocks are still reachable in loss record 5 of 11
==4664== at 0x484A464: calloc (vg_replace_malloc.c:752)
==4664== by 0x400F1B3: _dl_check_map_versions (in /usr/lib/ld-2.28.so)
==4664== by 0x40119FB: dl_open_worker (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4011537: _dl_open (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCF05B: do_dlopen (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFC77: _dl_catch_error (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF16B: dlerror_run (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF21B: __libc_dlopen_mode (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6667: nss_load_library (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6F27: __nss_lookup_function (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB7183: __nss_next2 (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB772B: __nss_endent (in /usr/lib/libc-2.28.so)
==4664== by 0x4DA6EFF: endhostent (in /usr/lib/libc-2.28.so)
==4664== by 0x11488F: ??? (in /usr/bin/icecast)
==4664==
==4664== 2,382 bytes in 2 blocks are still reachable in loss record 6 of 11
==4664== at 0x484A464: calloc (vg_replace_malloc.c:752)
==4664== by 0x400A727: _dl_new_object (in /usr/lib/ld-2.28.so)
==4664== by 0x400580F: _dl_map_object_from_fd (in /usr/lib/ld-2.28.so)
==4664== by 0x4008157: _dl_map_object (in /usr/lib/ld-2.28.so)
==4664== by 0x401197B: dl_open_worker (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4011537: _dl_open (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCF05B: do_dlopen (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFC77: _dl_catch_error (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF16B: dlerror_run (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF21B: __libc_dlopen_mode (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6667: nss_load_library (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6F27: __nss_lookup_function (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB7183: __nss_next2 (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB772B: __nss_endent (in /usr/lib/libc-2.28.so)
==4664== by 0x4DA6EFF: endhostent (in /usr/lib/libc-2.28.so)
==4664== by 0x11488F: ??? (in /usr/bin/icecast)
==4664==
==4664== 5,904 bytes in 5 blocks are still reachable in loss record 7 of 11
==4664== at 0x484A464: calloc (vg_replace_malloc.c:752)
==4664== by 0x400A727: _dl_new_object (in /usr/lib/ld-2.28.so)
==4664== by 0x400580F: _dl_map_object_from_fd (in /usr/lib/ld-2.28.so)
==4664== by 0x4008157: _dl_map_object (in /usr/lib/ld-2.28.so)
==4664== by 0x400BED7: openaux (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x400C1F7: _dl_map_object_deps (in /usr/lib/ld-2.28.so)
==4664== by 0x40119C3: dl_open_worker (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4011537: _dl_open (in /usr/lib/ld-2.28.so)
==4664== by 0x4DCF05B: do_dlopen (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFBC7: _dl_catch_exception (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCFC77: _dl_catch_error (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF16B: dlerror_run (in /usr/lib/libc-2.28.so)
==4664== by 0x4DCF21B: __libc_dlopen_mode (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6667: nss_load_library (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB6F27: __nss_lookup_function (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB7183: __nss_next2 (in /usr/lib/libc-2.28.so)
==4664== by 0x4DB772B: __nss_endent (in /usr/lib/libc-2.28.so)
==4664== by 0x4DA6EFF: endhostent (in /usr/lib/libc-2.28.so)
==4664==
==4664== 57,344 bytes in 14 blocks are indirectly lost in loss record 8 of 11
==4664== at 0x4848114: malloc (vg_replace_malloc.c:299)
==4664== by 0x4C7CDB7: ogg_stream_init (in /usr/lib/libogg.so.0.8.3)
==4664== by 0x1310B3: ??? (in /usr/bin/icecast)
==4664==
==4664== 114,688 bytes in 14 blocks are indirectly lost in loss record 9 of 11
==4664== at 0x4848114: malloc (vg_replace_malloc.c:299)
==4664== by 0x4C7CDC7: ogg_stream_init (in /usr/lib/libogg.so.0.8.3)
==4664== by 0x1310B3: ??? (in /usr/bin/icecast)
==4664==
==4664== 229,376 bytes in 14 blocks are indirectly lost in loss record 10 of 11
==4664== at 0x4848114: malloc (vg_replace_malloc.c:299)
==4664== by 0x4C7CDA7: ogg_stream_init (in /usr/lib/libogg.so.0.8.3)
==4664== by 0x1310B3: ??? (in /usr/bin/icecast)
==4664==
==4664== 408,128 (6,720 direct, 401,408 indirect) bytes in 14 blocks are definitely lost in loss record 11 of 11
==4664== at 0x484A464: calloc (vg_replace_malloc.c:752)
==4664== by 0x131097: ??? (in /usr/bin/icecast)
==4664==
==4664== LEAK SUMMARY:
==4664== definitely lost: 6,720 bytes in 14 blocks
==4664== indirectly lost: 401,408 bytes in 42 blocks
==4664== possibly lost: 0 bytes in 0 blocks
==4664== still reachable: 10,360 bytes in 28 blocks
==4664== suppressed: 0 bytes in 0 blocks
==4664==
==4664== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
==4664== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
==4664== could not unlink /tmp/vgdb-pipe-from-vgdb-to-4664-by-root-on-???
==4664== could not unlink /tmp/vgdb-pipe-to-vgdb-from-4664-by-root-on-???
==4664== could not unlink /tmp/vgdb-pipe-shared-mem-vgdb-4664-by-root-on-???
```Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2370Url events don't work when an "action" option is configured2019-02-02T04:30:49Zspr0cketeerUrl events don't work when an "action" option is configured```
<event-bindings>
<event type="url" trigger="source-connect">
...
...
<option name="action" value="mount_add" />
```
Bug is in event_url.c:event_get_url()
https://gitlab.xiph.org/xiph/icecast-server/blob/master/s...```
<event-bindings>
<event type="url" trigger="source-connect">
...
...
<option name="action" value="mount_add" />
```
Bug is in event_url.c:event_get_url()
https://gitlab.xiph.org/xiph/icecast-server/blob/master/src/event_url.c#L134
Should be `free(self->action)` not `free(self->url)`https://gitlab.xiph.org/xiph/vorbis/-/issues/2339Remove C++ comments2019-01-28T23:00:38ZHenry BentRemove C++ commentsThere are the following c++ style comments which should not be in plain c files:
-lib/res0.c (lines 33 and 34)
-lib/sharedbook.c (lines 53 and 305)There are the following c++ style comments which should not be in plain c files:
-lib/res0.c (lines 33 and 34)
-lib/sharedbook.c (lines 53 and 305)https://gitlab.xiph.org/xiph/icecast-server/-/issues/2368Sending of fallback files is not rate limited2018-12-18T23:49:04ZBo AndersonSending of fallback files is not rate limitedCurrently (2.4.2 Linux), fallback files are sent at an uncapped rate which could be potentially several times faster than the playback bitrate. This causes `fallback-override` to be very ineffective. Because we are sending the files fast...Currently (2.4.2 Linux), fallback files are sent at an uncapped rate which could be potentially several times faster than the playback bitrate. This causes `fallback-override` to be very ineffective. Because we are sending the files faster than the client plays it back, its buffer gets fuller and fuller until it reaches its limit of what is potentially several minutes or hours worth of fallback file audio to play. When the client is moved back to the original mountpoint, they have to wait until they've played all of this extra fallback audio before reaching the live stream again which at that point will be very delayed compared to the the incoming stream.
Instead, the fallback files should be rate limited so that it only sends at most its playback bitrate every second. It may well be this bitrate has to be given in the form of a setting, but I feel this is an important issue to fix regardless.
---
(Migrated from https://github.com/xiph/Icecast-Server/issues/28)https://gitlab.xiph.org/xiph/icecast-server/-/issues/2367Add ability to define which port Icecast should consider to be world reachable2018-12-16T23:05:43ZRemco BrinkAdd ability to define which port Icecast should consider to be world reachableI'm running Icecast in a reverse proxy setup with nginx, where nginx is taking care of SSL. Two listeners are configured, port 8000 on 127.0.0.1 for the nginx reverse proxy and port 8080 on 0.0.0.0 for clients to access streams. This set...I'm running Icecast in a reverse proxy setup with nginx, where nginx is taking care of SSL. Two listeners are configured, port 8000 on 127.0.0.1 for the nginx reverse proxy and port 8080 on 0.0.0.0 for clients to access streams. This setup allows me to serve my playlists over HTTPS, but unfortunately the generated m3u files now point to the incorrect port (8000, which only listens on 127.0.0.1).
Adding a configuration parameter that lets me specify which port I want to use for reporting to YP as well as which port Icecast should use in the generated m3u files would seem to solve this problem.
A patch was created by [Damien Garrido](https://damiengarrido.wordpress.com/2015/03/22/icecast-reachable-behind-reverse-proxy/) that solves this problem by adding an `<exposed-port></exposed-port>` configuration variable. Having this functionality included in Icecast would be a great help.
[exposed_port.icecast.patch](/uploads/803334e218a7f4e8c51aad38673ae9c7/exposed_port.icecast.patch)https://gitlab.xiph.org/xiph/icecast-server/-/issues/2366Icecast does list POST support for Admin interface but has it disabled for le...2019-02-02T04:30:49ZPhilipp SchafftIcecast does list POST support for Admin interface but has it disabled for legacy-global-sourceIcecast lists POST support in it's Allow. However it is by default disabled for legacy-global-source on admin/. POST should be allowed as well.Icecast lists POST support in it's Allow. However it is by default disabled for legacy-global-source on admin/. POST should be allowed as well.Philipp SchafftPhilipp Schafft2018-12-14