Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2023-03-18T10:25:44Zhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2311Add support for JWT tokens2023-03-18T10:25:44ZThiago SantosAdd support for JWT tokensAdds support for setting a JWT authorization token (or any opaque token) to libshout. It will be used as an "Authorization: Bearer <token>" header instead of the usual user/password header for HTTP requests.Adds support for setting a JWT authorization token (or any opaque token) to libshout. It will be used as an "Authorization: Bearer <token>" header instead of the usual user/password header for HTTP requests.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/liboggz/-/issues/7Ten off by one errors?2019-08-13T16:55:34ZRalph GilesTen off by one errors?Moved from [ogg #2197](https://gitlab.xiph.org/xiph/ogg/issues/2197) reported by @dcb314.
[timespec.c:123]: (error) Width 16 given in format string (no. 1) is larger than destination buffer 'timespec[16]', use %15s to prevent overflowi...Moved from [ogg #2197](https://gitlab.xiph.org/xiph/ogg/issues/2197) reported by @dcb314.
[timespec.c:123]: (error) Width 16 given in format string (no. 1) is larger than destination buffer 'timespec[16]', use %15s to prevent overflowing it. [timespec.c:127]: (error) Width 16 given in format string (no. 1) is larger than destination buffer 'timespec[16]', use %15s to prevent overflowing it. [timespec.c:131]: (error) Width 16 given in format string (no. 1) is larger than destination buffer 'timespec[16]', use %15s to prevent overflowing it. [timespec.c:135]: timespec.c:139 timespec.c:143 timespec.c:147 timespec.c:151 timespec.c:155https://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-website/-/issues/20513rd party apps page - broken links2020-06-14T10:41:49ZYahav3rd party apps page - broken linksHey
There are two broken links at the 3rd party apps page:
KRADradio and FreeJ
I wasn't able to create a PR.
CheersHey
There are two broken links at the 3rd party apps page:
KRADradio and FreeJ
I wasn't able to create a PR.
Cheershttps://gitlab.xiph.org/xiph/icecast-common/-/issues/7Consider using LGPL for tests2019-07-10T06:29:46ZUnit 193Consider using LGPL for testsHowdy,
While packaging libigloo I noticed some new files (modified only by ph3-der-loewe) were licensed under the GPL-2 license, whereas the rest of the project were licensed under LGPL-2+. Upon querying in #icecast I was directed to f...Howdy,
While packaging libigloo I noticed some new files (modified only by ph3-der-loewe) were licensed under the GPL-2 license, whereas the rest of the project were licensed under LGPL-2+. Upon querying in #icecast I was directed to file an issue for tracking purposes.
For reference, the files I found were: src/tests/* src/buffer.c src/reportxml.c
Thanks!
~Unit 193First release as libiglooPhilipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2378There should be a stats value indicating how if a stream is in a stable state2022-02-27T20:06:54ZPhilipp SchafftThere should be a stats value indicating how if a stream is in a stable stateThere should be a stats value that indicates if a stream has been proven stable. That is at least connected for a given minimum amount of time and sending data. This could be used by the fallback logic to avoid switching 'back' to a flap...There should be a stats value that indicates if a stream has been proven stable. That is at least connected for a given minimum amount of time and sending data. This could be used by the fallback logic to avoid switching 'back' to a flapping stream.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-common/-/issues/6Socket layer should be converted to generic IO interface2019-07-10T06:00:36ZPhilipp SchafftSocket layer should be converted to generic IO interfaceThe current socket interface should be converted to the generic IO Interface as discussed in #5.The current socket interface should be converted to the generic IO Interface as discussed in #5.First release as libiglooPhilipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2377Icecast leaks memory in speex module when probing for codecs2019-06-28T08:06:23ZPhilipp SchafftIcecast leaks memory in speex module when probing for codecsIcecast currently leaks memory in codec probing within the speex module. This happens if the initial packet has less then 80 bytes.Icecast currently leaks memory in codec probing within the speex module. This happens if the initial packet has less then 80 bytes.Philipp SchafftPhilipp Schafft2019-06-28https://gitlab.xiph.org/xiph/icecast-common/-/issues/5There should be a generic IO layer2019-06-30T10:52:33ZPhilipp SchafftThere should be a generic IO layerThere should be a generic IO layer for files/sockets/.... It should also be used for the logging support.There should be a generic IO layer for files/sockets/.... It should also be used for the logging support.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2310libshout connects to the same port for ICY data and metadata connections2020-10-21T08:50:27ZPhilipp Schafftlibshout connects to the same port for ICY data and metadata connectionslibshout does the port increment for ICY data connections unconditionally and therefore also for metadata connections.
This is part of the multi-topic ticket #2308.libshout does the port increment for ICY data connections unconditionally and therefore also for metadata connections.
This is part of the multi-topic ticket #2308.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2309libshout's connection state maschine does not honor connection specific block...2020-10-21T08:50:27ZPhilipp Schafftlibshout's connection state maschine does not honor connection specific blocking settingCurrently libshout's connection state machine overrides it's own blocking setting in `shout_connection_connect()`:
```c
shout_connection_set_nonblocking(con, shout_get_nonblocking(shout));
```
Using the setting from the parent objec...Currently libshout's connection state machine overrides it's own blocking setting in `shout_connection_connect()`:
```c
shout_connection_set_nonblocking(con, shout_get_nonblocking(shout));
```
Using the setting from the parent object should only be the default if no specific value was set.
See also: #2308Philipp SchafftPhilipp Schafft2019-06-28https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2308Source clients experience issues with 2.4.2 and latest release 2.4.32020-02-17T20:23:01ZThomas B. RückerSource clients experience issues with 2.4.2 and latest release 2.4.3Migrated from GitHub: https://github.com/xiph/Icecast-libshout/issues/14
Users report random "hangs" and being unable to connect. We need a better understanding of what goes wrong on a technical level.Migrated from GitHub: https://github.com/xiph/Icecast-libshout/issues/14
Users report random "hangs" and being unable to connect. We need a better understanding of what goes wrong on a technical level.Philipp SchafftPhilipp Schaffthttps://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-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-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
```