Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2023-10-22T05:50:04Zhttps://gitlab.xiph.org/xiph/theora/-/issues/2313Error compiling libtheora-1.2.0alpha1 for ARM (1.1.1 works)2023-10-22T05:50:04ZvirtualdjError compiling libtheora-1.2.0alpha1 for ARM (1.1.1 works)I'm compiling TVHeadend for aarch64 and armv5tejl which uses libtheora inside two QEMU Debian VMs. While the previous version libtheora-1.1.1.tar worked correctly on both (just retried to be sure), I'm having issues with the latest **lib...I'm compiling TVHeadend for aarch64 and armv5tejl which uses libtheora inside two QEMU Debian VMs. While the previous version libtheora-1.1.1.tar worked correctly on both (just retried to be sure), I'm having issues with the latest **libtheora-1.2.0alpha1.tar.gz**.
In the **aarch64** VM, _configure_ doesn't detect the system architecture:
```
UNTAR libtheora-1.2.0alpha1.tar.gz
cd /root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1 && \
CC="gcc -fPIE" FFMPEG_PREFIX=/root/tvheadend/tvheadend/build.linux/ffmpeg/build/ffmpeg PKG_CONFIG=/root/tvheadend/tvheadend/support/pkg-config.ffmpeg ./configure --prefix=/ffmpeg --enable-static --disable-shared \
--libdir=/ffmpeg/lib \
--with-ogg=/root/tvheadend/tvheadend/build.linux/ffmpeg/build/ffmpeg \
--disable-examples \
--disable-spec \
checking build system type... ./config.guess: unable to guess system type
This script, last modified 2003-10-03, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
ftp://ftp.gnu.org/pub/gnu/config/
If the version you run (./config.guess) is already up to date, please
send the following data and any information you think might be
pertinent to <config-patches@gnu.org> in order to provide the needed
information to handle your system.
config.guess timestamp = 2003-10-03
uname -m = aarch64
uname -r = 4.9.0-4-arm64
uname -s = Linux
uname -v = #1 SMP Debian 4.9.65-3+deb9u1 (2017-12-23)
/usr/bin/uname -p =
/bin/uname -X =
hostinfo =
/bin/universe =
/usr/bin/arch -k =
/bin/arch =
/usr/bin/oslevel =
/usr/convex/getsysinfo =
UNAME_MACHINE = aarch64
UNAME_RELEASE = 4.9.0-4-arm64
UNAME_SYSTEM = Linux
UNAME_VERSION = #1 SMP Debian 4.9.65-3+deb9u1 (2017-12-23)
configure: error: cannot guess build type; you must specify one
Makefile.ffmpeg:406: recipe for target '/root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1/.tvh_build' failed
```
While the **armv5tejl** VM configures, but then fails during _make_:
```
UNTAR libtheora-1.2.0alpha1.tar.gz
cd /root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1 && \
CC="gcc -fPIE" FFMPEG_PREFIX=/root/tvheadend/tvheadend/build.linux/ffmpeg/build/ffmpeg PKG_CONFIG=/root/tvheadend/tvheadend/support/pkg-config.ffmpeg ./configure --prefix=/ffmpeg --enable-static --disable-shared \
--libdir=/ffmpeg/lib \
--with-ogg=/root/tvheadend/tvheadend/build.linux/ffmpeg/build/ffmpeg \
--disable-examples \
--disable-spec \
checking build system type... armv5tejl-unknown-linux-gnu
checking host system type... armv5tejl-unknown-linux-gnu
checking target system type... armv5tejl-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... gcc -fPIE
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -fPIE accepts -g... yes
checking for gcc -fPIE option to accept ISO C89... none needed
checking dependency style of gcc -fPIE... gcc3
checking dependency style of gcc -fPIE... gcc3
checking for gcc... (cached) gcc -fPIE
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc -fPIE accepts -g... (cached) yes
checking for gcc -fPIE option to accept ISO C89... (cached) none needed
checking dependency style of gcc -fPIE... (cached) gcc3
checking how to run the C preprocessor... gcc -fPIE -E
checking whether gcc -fPIE and cc understand -c and -o together... yes
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc -fPIE... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc -fPIE object... ok
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc -fPIE supports -fno-rtti -fno-exceptions... no
checking for gcc -fPIE option to produce PIC... -fPIC -DPIC
checking if gcc -fPIE PIC flag -fPIC -DPIC works... yes
checking if gcc -fPIE static flag -static works... yes
checking if gcc -fPIE supports -c -o file.o... yes
checking if gcc -fPIE supports -c -o file.o... (cached) yes
checking whether the gcc -fPIE linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for doxygen... false
configure: WARNING: *** doxygen not found, API documentation will not be built
configure: WARNING: *** Format Specification will not built.
checking for perl... yes
checking if assembler supports NEON instructions on ARM... no
checking if assembler supports ARMv6 media instructions on ARM... no
checking if assembler supports EDSP instructions on ARM... no
configure: trying custom CCASFLAGS to enable NEON instructions...
checking if assembler supports NEON instructions on ARM... yes
configure: trying custom CCASFLAGS to enable ARMv6 media instructions...
checking if assembler supports ARMv6 media instructions on ARM... yes
configure: trying custom CCASFLAGS to enable EDSP compilation...
checking if assembler supports EDSP instructions on ARM... no
checking for ld used by gcc -fPIE... (cached) /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes
checking how to control symbol export... --version-script
checking for pkg-config... yes
checking pkg-config is at least version 0.9.0... yes
checking for OGG... yes
checking for VORBIS... yes
checking for SDL... no
configure: WARNING: *** Unable to find SDL -- Not compiling example players ***
checking sys/soundcard.h usability... yes
checking sys/soundcard.h presence... yes
checking for sys/soundcard.h... yes
checking for PNG... no
checking for library containing ftime... none required
checking for getopt_long... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating lib/Makefile
config.status: creating lib/arm/armopts.s
config.status: creating include/Makefile
config.status: creating include/theora/Makefile
config.status: creating examples/Makefile
config.status: creating doc/Makefile
config.status: creating doc/Doxyfile
config.status: creating doc/spec/Makefile
config.status: creating tests/Makefile
config.status: creating m4/Makefile
config.status: creating libtheora.spec
config.status: creating theora.pc
config.status: creating theora-uninstalled.pc
config.status: creating theoradec.pc
config.status: creating theoradec-uninstalled.pc
config.status: creating theoraenc.pc
config.status: creating theoraenc-uninstalled.pc
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
------------------------------------------------------------------------
libtheora 1.2.0alpha1: Automatic configuration OK.
General configuration:
Encoding support: ........... yes
Floating point support: ..... yes
Assembly optimization: ...... ARM (Media) (NEON)
Debugging telemetry: ........ no
Build example code: ......... no
API Documentation: .......... no
Format Documentation: ....... no
Installation paths:
libtheora: ................... /ffmpeg/lib
C header files: .............. /ffmpeg/include/theora
Documentation: ............... /ffmpeg/share/doc/libtheora
Building:
Type 'make' to compile libtheora.
Type 'make install' to install libtheora.
Type 'make check' to run test suite (Valgrind testing not enabled)
Example programs will be built but not installed.
------------------------------------------------------------------------
DESTDIR=/root/tvheadend/tvheadend/build.linux/ffmpeg/build \
make -C /root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1 install
make[2]: Entering directory '/root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1'
Making install in lib
make[3]: Entering directory '/root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1/lib'
./arm/arm2gnu.pl < arm/armopts.s > armopts-gnu.S
./arm/arm2gnu.pl < arm/armfrag.s > armfrag-gnu.S
./arm/arm2gnu.pl < arm/armidct.s > armidct-gnu.S
make install-am
make[4]: Entering directory '/root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1/lib'
CC apiwrapper.lo
CC bitpack.lo
CC decapiwrapper.lo
CC decinfo.lo
CC decode.lo
decode.c: In function ‘th_decode_alloc’:
decode.c:403:49: warning: iteration 2 invokes undefined behavior [-Waggressive-loop-optimizations]
um+=_dec->state.dequant_tables[qti][pli][qi][12]+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
decode.c:399:3: note: within this loop
for(qi=0;qi<64;qi++){
^~~
CC dequant.lo
CC fragment.lo
CC huffdec.lo
CC idct.lo
CC info.lo
CC internal.lo
CC quant.lo
CC state.lo
CC armcpu.lo
CC armstate.lo
arm/armstate.c: In function ‘oc_state_frag_recon_v6’:
arm/armstate.c:155:5: warning: implicit declaration of function ‘oc_idct8x8_1_v6’ [-Wimplicit-function-declaration]
oc_idct8x8_1_v6(_dct_coeffs+64,p);
^~~~~~~~~~~~~~~
arm/armstate.c:160:5: warning: implicit declaration of function ‘oc_idct8x8_v6’ [-Wimplicit-function-declaration]
oc_idct8x8_v6(_dct_coeffs+64,_dct_coeffs,_last_zzi);
^~~~~~~~~~~~~
arm/armstate.c:168:5: warning: implicit declaration of function ‘oc_frag_recon_intra_v6’ [-Wimplicit-function-declaration]
oc_frag_recon_intra_v6(dst,ystride,_dct_coeffs+64);
^~~~~~~~~~~~~~~~~~~~~~
arm/armstate.c:178:7: warning: implicit declaration of function ‘oc_frag_recon_inter2_v6’ [-Wimplicit-function-declaration]
oc_frag_recon_inter2_v6(dst,ref+mvoffsets[0],ref+mvoffsets[1],ystride,
^~~~~~~~~~~~~~~~~~~~~~~
arm/armstate.c:181:10: warning: implicit declaration of function ‘oc_frag_recon_inter_v6’ [-Wimplicit-function-declaration]
else oc_frag_recon_inter_v6(dst,ref+mvoffsets[0],ystride,_dct_coeffs+64);
^~~~~~~~~~~~~~~~~~~~~~
arm/armstate.c: In function ‘oc_state_frag_recon_neon’:
arm/armstate.c:199:5: warning: implicit declaration of function ‘oc_idct8x8_1_neon’ [-Wimplicit-function-declaration]
oc_idct8x8_1_neon(_dct_coeffs+64,p);
^~~~~~~~~~~~~~~~~
arm/armstate.c:204:5: warning: implicit declaration of function ‘oc_idct8x8_neon’ [-Wimplicit-function-declaration]
oc_idct8x8_neon(_dct_coeffs+64,_dct_coeffs,_last_zzi);
^~~~~~~~~~~~~~~
arm/armstate.c:212:5: warning: implicit declaration of function ‘oc_frag_recon_intra_neon’ [-Wimplicit-function-declaration]
oc_frag_recon_intra_neon(dst,ystride,_dct_coeffs+64);
^~~~~~~~~~~~~~~~~~~~~~~~
arm/armstate.c:222:7: warning: implicit declaration of function ‘oc_frag_recon_inter2_neon’ [-Wimplicit-function-declaration]
oc_frag_recon_inter2_neon(dst,ref+mvoffsets[0],ref+mvoffsets[1],ystride,
^~~~~~~~~~~~~~~~~~~~~~~~~
arm/armstate.c:225:10: warning: implicit declaration of function ‘oc_frag_recon_inter_neon’ [-Wimplicit-function-declaration]
else oc_frag_recon_inter_neon(dst,ref+mvoffsets[0],ystride,_dct_coeffs+64);
^~~~~~~~~~~~~~~~~~~~~~~~
At top level:
arm/armstate.c:24:28: warning: ‘OC_FZIG_ZAG_NEO’ defined but not used [-Wunused-const-variable]
static const unsigned char OC_FZIG_ZAG_NEON[128]={
^~~~~~~~~~~~~~~~
CPPAS armbits-gnu.lo
Assembler messages:
Error: unknown architecture `armv5e'
Error: unrecognized option -march=armv5e
Makefile:769: recipe for target 'armbits-gnu.lo' failed
make[4]: *** [armbits-gnu.lo] Error 1
make[4]: Leaving directory '/root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1/lib'
Makefile:1041: recipe for target 'install' failed
make[3]: *** [install] Error 2
make[3]: Leaving directory '/root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1/lib'
Makefile:437: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1'
Makefile.ffmpeg:406: recipe for target '/root/tvheadend/tvheadend/build.linux/ffmpeg/libtheora-1.2.0alpha1/.tvh_build' failed
```https://gitlab.xiph.org/xiph/ezstream/-/issues/2270<sys/random.h> requires <sys/types.h> on OS/X2022-08-20T02:49:16ZMitchell Blank<sys/random.h> requires <sys/types.h> on OS/XOn recent OS/X environments, playlist.c fails to compile because of problems with including `<sys/random.h>` before `<sys/types.h>`:
```
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/i...On recent OS/X environments, playlist.c fails to compile because of problems with including `<sys/random.h>` before `<sys/types.h>`:
```
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/random.h:37:30: error: unknown type name 'size_t'; did you mean 'time_t'?
int getentropy(void* buffer, size_t size);
```
I'm not the first to hit this problem; it looks like MacPorts patched it locally about 9 months ago:
https://raw.githubusercontent.com/macports/macports-ports/fa36881/audio/ezstream/files/sys-types.patch
I can verify that their fix works on my MacOS 11 environment.Moritz GrimmMoritz Grimmhttps://gitlab.xiph.org/xiph/icecast-website/-/issues/2055Link docs/icecast-latest to the most recent release2023-06-12T09:47:47ZRalph GilesLink docs/icecast-latest to the most recent releaseThe index page links to `docs/icecast-latest` but no content is generated for that path. The repository includes a `redirects.htaccess` which sends `docs/latest` to `docs/icecast-2.4.1` but that (a) does nothing on the current nginx conf...The index page links to `docs/icecast-latest` but no content is generated for that path. The repository includes a `redirects.htaccess` which sends `docs/latest` to `docs/icecast-2.4.1` but that (a) does nothing on the current nginx config and (b) is the wrong url target.
Symlinks seem to work fine, so if jekyll could generate those (and they could survive the gitlab-ci artifact packaging) that's probably the best solution. Until then we have to have the update script special-case creating them when we deploy a new version of the site.Marvin ScholzMarvin Scholzhttps://gitlab.xiph.org/xiph/opus/-/issues/2347cmake - disable ctest for ios and android crosscompiling2022-07-12T14:08:12ZMarcus Asteborgcmake - disable ctest for ios and android crosscompilinghttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2322Impossible install2023-03-10T12:59:04ZTitouan PetitImpossible install`npm install --save nodeshout` on Raspbian :
Log : https://hastebin.com/esevepetal.rb`npm install --save nodeshout` on Raspbian :
Log : https://hastebin.com/esevepetal.rbhttps://gitlab.xiph.org/xiph/opus/-/issues/2346Kiss FFT replacement2023-08-11T06:54:17ZVitaly IvanovKiss FFT replacementI wonder if there are any plans to replace Kiss FFT with much faster pffft? Here's this older issue: https://monorail-staging.appspot.com/p/webrtc/issues/detail?id=3350
I ran some tests myself (although I was using RNNoise), and on my M...I wonder if there are any plans to replace Kiss FFT with much faster pffft? Here's this older issue: https://monorail-staging.appspot.com/p/webrtc/issues/detail?id=3350
I ran some tests myself (although I was using RNNoise), and on my MacBook Pro (i7) opus_fft (complex, N=960, forward) is about 3.5x slower than pffft_transform_orderedhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2321In non-blocking mode login errors are not correctly reported2020-12-19T13:51:45ZPhilipp SchafftIn non-blocking mode login errors are not correctly reportedWhen libshout is configured in non-blocking mode fatal authentication errors are not forwarded correctly to the application. Instead retry is signalled.When libshout is configured in non-blocking mode fatal authentication errors are not forwarded correctly to the application. Instead retry is signalled.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2403HTTP 409 on reconnect2024-01-20T23:53:52ZGlenn SimsHTTP 409 on reconnectI recently updated our Icecast software from 2.4.4 to 2.4.99.2 (built via source). The internet at my station goes out sometimes and shuts off the stream. Our program, Broadcast Using This Tool, is designed to automatically reconnect t...I recently updated our Icecast software from 2.4.4 to 2.4.99.2 (built via source). The internet at my station goes out sometimes and shuts off the stream. Our program, Broadcast Using This Tool, is designed to automatically reconnect to the server if the connection dies. However, when the internet comes back on, the log says "server answered with 409!", which means an HTTP conflict.
Icecast is hosted on AWS EC2 running on ports 80 and 443. It is forwarded through my subdomain has an A record with an SSL certificate in the `icecast.xml` file. Since then I have not made any changes to the DNS. This issue had started happening after the upgrade to 2.4.99.2.
This is my BUTT log open in Notepad++ showing the error:
![Screenshot_2020-11-06_191540](/uploads/815c58d23d7cea1510d9fa0184b3d155/Screenshot_2020-11-06_191540.png)Icecast 2.5 rc1Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/liboggplay/-/issues/1liboggplay mishandles live ogg streams in Firefox2023-06-08T14:38:55ZMilesliboggplay mishandles live ogg streams in Firefox(speculation)
See the following bug on Mozilla's tracker:
https://bugzilla.mozilla.org/show_bug.cgi?id=611519
Seems pretty likely the bug is actually in liboggplay. When an audio element points to a live stream and it is played in the...(speculation)
See the following bug on Mozilla's tracker:
https://bugzilla.mozilla.org/show_bug.cgi?id=611519
Seems pretty likely the bug is actually in liboggplay. When an audio element points to a live stream and it is played in the browser, it works fine for roughly 20 minutes before severe stutter sets in. Pressing play also tends to play permanently cached audio instead of the actual stream. Is liboggplay perhaps treating this case as an infinitely large file transfer instead of a live stream?Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/OggIndex/-/issues/4ogg-index sets incorrect fisbone message header offset in the skeleton stream2020-11-06T04:04:59ZNick Burchogg-index sets incorrect fisbone message header offset in the skeleton streamAccording to http://svn.annodex.net/standards/draft-pfeiffer-oggskeleton-current.txt , in the skeleton fisbone,
> Offset to message header fields: 4 Byte unsigned integer that
> contains the number of Bytes used in this packet before t...According to http://svn.annodex.net/standards/draft-pfeiffer-oggskeleton-current.txt , in the skeleton fisbone,
> Offset to message header fields: 4 Byte unsigned integer that
> contains the number of Bytes used in this packet before the
> message header fields. For the version of the skeleton
> bitstream described in this document this number is fixed to 44.
The skeleton stream generated by things like ffmpeg2theora and speexenc set the message header offset to be 44, which is the position less the fisbone\0 header
However, ogg-index creates fisbones where the message header offset is 0x2c=52, which is the offset including the fisbone\0 header, which (based on the docs) seems to be incorrect
Note that it is only the offset that is wrong, the message headers start in the expected place at 44 bytes after the fisbone header / 52 bytes after the start of the fisbone packet datahttps://gitlab.xiph.org/xiph/OggIndex/-/issues/3ogg-index fails with an unhelpful error message if the file contains Speex or...2020-11-06T04:03:14ZNick Burchogg-index fails with an unhelpful error message if the file contains Speex or Opus streamsIf you try running ogg-index on a file which contains Opus or Speex streams (eg a Theora + Opus file), then you get a rather unfriendly error such as
`FAIL: Unhandled stream type, serialno=478384172 aborting indexing!`
Where the stream...If you try running ogg-index on a file which contains Opus or Speex streams (eg a Theora + Opus file), then you get a rather unfriendly error such as
`FAIL: Unhandled stream type, serialno=478384172 aborting indexing!`
Where the stream number is that of the Speex or Opus stream
Assuming it's not trivial to add support for those formats, it would be nice if ogg-index could instead give a more helpful message such as _Opus not supported (stream serialno=478384172) - aborting indexing! _https://gitlab.xiph.org/xiph/OggIndex/-/issues/2ogg-index produces multiple fisbones with the same name and role, where the i...2020-11-06T04:02:50ZNick Burchogg-index produces multiple fisbones with the same name and role, where the input has several video or audio streamsIf you use OggIndex on a file without a Skeleton stream, which has one Vorbis and one Theora stream in it, the resultant Skeleton fisbones will be correct. However, if you use it on a file with multiple Theora or Vorbis streams, it will ...If you use OggIndex on a file without a Skeleton stream, which has one Vorbis and one Theora stream in it, the resultant Skeleton fisbones will be correct. However, if you use it on a file with multiple Theora or Vorbis streams, it will generate incorrect fisbones for the second and subsequent streams of the type, as it hard codes the name and role
Instead, OggIndex should check which stream this is of a given type, and use that to assign sequential names (eg audio_1, audio_2) rather than hardcoded (eg audio_1 for everything), and flag subsequent streams of a type as alternate ones (rather than hard coded as the main one)https://gitlab.xiph.org/xiph/icecast-server/-/issues/2402Auth url webhooks not working2020-11-14T16:56:42ZJohn MidsonAuth url webhooks not workingHi guys,
Sorry if I'm missing something obvious, but I really can't make authentication url working.
I have Icecast configs:
```
<mount>
<mount-name>/aac_high</mount-name>
<authentication type="url">
<option...Hi guys,
Sorry if I'm missing something obvious, but I really can't make authentication url working.
I have Icecast configs:
```
<mount>
<mount-name>/aac_high</mount-name>
<authentication type="url">
<option name="listener_add" value="http://localhost:3000/api/v1/listeners/add"/>
<option name="listener_remove" value="http://localhost:3000/api/v1/listeners/remove"/>
<option name="auth_header" value="icecast-auth-user: 1"/>
</authentication>
</mount>
```
By calling `/aac_hight` I got 401 despite server is configured to return correct header:
```
$ curl http://localhost:8000/aac_high
<?xml version="1.0"?>
<report xmlns="http://icecast.org/specs/reportxml-0.0.1" version="0.0.1"><incident><state definition="25387198-0643-4577-9139-7c4f24f59d4a"><text>You need to authenticate</text></state></incident><extension application="http://icecast.org/specs/legacy-icestats"><icestats xmlns="http://icecast.org/specs/legacystats-0.0.1"><modules/></icestats></extension></report>
```
In Icecast's `error.log` I'm getting:
```
[2020-11-05 11:44:02] INFO auth/queue_auth_client auth on /aac_high has 1 pending
[2020-11-05 11:44:02] INFO auth_url/url_add_client client auth (http://localhost:3000/api/v1/listeners/add) failed with ""
[2020-11-05 11:44:02] WARN reportxml/reportxml_database_build_report No matching definition for "25387198-0643-4577-9139-7c4f24f59d4a"
```
So, looks like it is trying to reach `http://localhost:3000/api/v1/listeners/add` but in server logs I don't see any incoming request at all.
Callback on localhost:3000 working fine:
```
$ curl -v -X POST http://localhost:3000/api/v1/listeners/add
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 3000 (#0)
> POST /api/v1/listeners/add HTTP/1.1
> Host: localhost:3000
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< icecast-auth-user: 1
< Server: Dominion
< Date: Thu, 05 Nov 2020 12:19:24 GMT
< Connection: keep-alive
< Content-Length: 0
<
* Connection #0 to host localhost left intact
```
Icecast is built from master branch, additional info:
```
$ ./icecast -v
Icecast 2.4.99.2
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
```
Will appreciate any hint what is going wrong. Thanks!https://gitlab.xiph.org/xiph/opus/-/issues/2345shared description of public API headers2020-10-27T16:09:01ZRalph Gilesshared description of public API headersWe have a shared list of source files in `*_sources.mk` which are used by all the build systems to reduce the maintenance burden. However, there is no such list of headers, so each build system maintains its own list of files defining th...We have a shared list of source files in `*_sources.mk` which are used by all the build systems to reduce the maintenance burden. However, there is no such list of headers, so each build system maintains its own list of files defining the public API.
In the discussion of !13 it was suggested that we create such a shared definition. @tmp volunteered to propose an implementation.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2401Allow `icy-metadata` and `icy-metaint` in default CORS configuration2022-02-26T18:35:51ZEthan HalsallAllow `icy-metadata` and `icy-metaint` in default CORS configurationI noticed that many of the public streams I've encountered have a wide-open Access-Control-Allow-Origin policy, but do not allow access to request the `Icy-Metadata` header nor allow access to read the `Icy-MetaInt` header in the respons...I noticed that many of the public streams I've encountered have a wide-open Access-Control-Allow-Origin policy, but do not allow access to request the `Icy-Metadata` header nor allow access to read the `Icy-MetaInt` header in the response. This prevents any clients that honor CORS (i.e. browsers) from requesting or reading icy metadata.
This patch is to allow cross-origin access to the `Icy-MetaData` and `Icy-MetaInt` headers by default. Also, this patch inserts the `Access-Control-Allow-Headers` and `Access-Control-Expose-Headers` into the default XML configuration so that icy metadata works by default. Users can opt-out of it like they can with `Access-Control-Allow-Origin: *`.
The main use-case is to enable browsers to read icy metadata via a cross-origin request. I'm building a client side library that does that here: [icecast-metadata-js](https://github.com/eshaz/icecast-metadata-js). The inline metadata offers immediate metadata updates with no noticeable latency, which is really valuable in certain contexts, like for broadcasting police / fire scanner metadata, or ad insertions, etc.
[0001-feat-add-icy-metadata-support-for-cors.patch](/uploads/fb696baa19b3dfe8419021d66d52e2a3/0001-feat-add-icy-metadata-support-for-cors.patch)https://gitlab.xiph.org/xiph/icecast-server/-/issues/2400global stats key listeners incorrect after client got dropped from pending_tr...2021-03-22T23:22:29ZPhilipp Schafftglobal stats key listeners incorrect after client got dropped from pending_tree for max_listenersThe global stats key `listeners` is incorrect after a client is dropped from the `pending_tree` as the mount is full. this happens on client move (as per admin request or fallback).
The code can be found looking in source.c for:
```
...The global stats key `listeners` is incorrect after a client is dropped from the `pending_tree` as the mount is full. this happens on client move (as per admin request or fallback).
The code can be found looking in source.c for:
```
ICECAST_LOG_INFO("Client deleted, exceeding maximum listeners for this "
"mountpoint (%s).", source->mount);
```https://gitlab.xiph.org/xiph/theora/-/issues/2312Decoding frames is slow if telemetry options are explicitly set to 02020-10-22T15:52:21ZZebediah FiguraDecoding frames is slow if telemetry options are explicitly set to 0GStreamer's "theoradec" element exposes libtheoradec telemetry options to the user, but if none are set it still calls th_decode_ctl(), setting the relevant options to 0. This causes the "telemetry" path to be enabled, such that we still...GStreamer's "theoradec" element exposes libtheoradec telemetry options to the user, but if none are set it still calls th_decode_ctl(), setting the relevant options to 0. This causes the "telemetry" path to be enabled, such that we still create a Cairo image and perform YUV/RGB translation, which is very slow.
I'm not sure this is a *bug* per se, but it seems like an optimization worth performing to only create a Cairo image if any telemetry options are actually enabled (i.e. nonzero).
The following patch resolves this issue. I would submit it as a merge request, but I seem to be unable to create a fork of this repository.
[0001-Avoid-creating-a-Cairo-buffer-if-all-telemetry-optio.patch](/uploads/267910230558612b179c9dbf895d97d6/0001-Avoid-creating-a-Cairo-buffer-if-all-telemetry-optio.patch)https://gitlab.xiph.org/xiph/icecast-server/-/issues/2399Crash Icecast 2.4.4 on CentOS 7.52020-10-19T17:28:24ZMediaKCrash Icecast 2.4.4 on CentOS 7.5Linked from previous report `https://gitlab.xiph.org/xiph/icecast-server/-/issues/2344`
My radio stream service exits on minimal load.
I'm using Icecast 2.4.4
OpenSSL 1.0.2k-fips 26 Jan 2017
On CentOs 7.8
WHM/CPANEL: v90.0.15
`Oct 18 ...Linked from previous report `https://gitlab.xiph.org/xiph/icecast-server/-/issues/2344`
My radio stream service exits on minimal load.
I'm using Icecast 2.4.4
OpenSSL 1.0.2k-fips 26 Jan 2017
On CentOs 7.8
WHM/CPANEL: v90.0.15
`Oct 18 02:18:33 server1 kernel: traps: icecast[16512] general protection ip:7f2327a88c09 sp:7ffdab32ab80 error:0 in libssl.so.1.0.2k[7f2327a5c000+67000]
`
With added errors
`Oct 18 02:18:33 server1 systemd: icecast.service: main process exited, code=killed, status=11/SEGV
Oct 18 02:18:33 server1 systemd: Unit icecast.service entered failed state.
Oct 18 02:18:33 server1 systemd: icecast.service failed.`
How can this be resolved?https://gitlab.xiph.org/xiph/icecast-server/-/issues/2398Handling of GET request on admin/ should be updated2020-10-15T15:24:33ZPhilipp SchafftHandling of GET request on admin/ should be updatedCurrently GET request are handled alike POST request. This should be changed to the following:
In operation mode `legacy`: \
Keep as is.
In operation mode `normal`: \
Write a warning about such clients.
In operation mode `strict`: \
R...Currently GET request are handled alike POST request. This should be changed to the following:
In operation mode `legacy`: \
Keep as is.
In operation mode `normal`: \
Write a warning about such clients.
In operation mode `strict`: \
Reject the request.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2397Streamers get kicked upon DJ connection.2020-10-16T15:25:20ZCallum OKaneStreamers get kicked upon DJ connection.Hey, on my radioserver, running Icecast 2, whenever a streamer connects, all the listeners are disconnected from the stream. This only happens for some DJ's using software like VirtualDJ which many of ours do. We drop almost 100 listener...Hey, on my radioserver, running Icecast 2, whenever a streamer connects, all the listeners are disconnected from the stream. This only happens for some DJ's using software like VirtualDJ which many of ours do. We drop almost 100 listeners, and this is quite frustrating, anyone able to help?