Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2019-06-12T00:09:46Zhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/1908libshout unlimited memory queue2019-06-12T00:09:46Zcamilio69libshout unlimited memory queueIf you have a *limited bandwidth* connection to the icecast server, libshout will use more and more memory until crash.
Reason: All packets that can not be send immediately are put in a wait queue, that will grow forever.
I suggest to ...If you have a *limited bandwidth* connection to the icecast server, libshout will use more and more memory until crash.
Reason: All packets that can not be send immediately are put in a wait queue, that will grow forever.
I suggest to put a hard limit on number of buffers in queue.
You will find attached a patch proposal.
Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/1897python-shout: Incorrect len parameter type in PyArg_ParseTuple call2017-11-16T12:06:13ZStefan Umbreitpython-shout: Incorrect len parameter type in PyArg_ParseTuple callThe type of 'len' in the call to PyArg_ParseTuple with 's#' as second parameter in the pshoutobj_send function, should be int but is size_t (see Python doc at http://docs.python.org/c-api/arg.html).
This can lead to a segfault on 64-bi...The type of 'len' in the call to PyArg_ParseTuple with 's#' as second parameter in the pshoutobj_send function, should be int but is size_t (see Python doc at http://docs.python.org/c-api/arg.html).
This can lead to a segfault on 64-bit systems where size_t differs from int. The attached patch fixes this.Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/1883libshout 2.3.1 fails to build on MSVC (VS 2008, Windows SDK 7.1 compilers in ...2017-11-16T12:06:13Zspappalardolibshout 2.3.1 fails to build on MSVC (VS 2008, Windows SDK 7.1 compilers in this case)Error message: src\timing\timing.c(62) : fatal error C1189: #error : need time query handler
Reason: timing.c depends on preprocessor defines (HAVE_GETTIMEOFDAY or HAVE_FTIME) that are only set by the configure process which is not use...Error message: src\timing\timing.c(62) : fatal error C1189: #error : need time query handler
Reason: timing.c depends on preprocessor defines (HAVE_GETTIMEOFDAY or HAVE_FTIME) that are only set by the configure process which is not used with MSVC.
(FWIW, Microsoft has an _ftime function documented here: http://msdn.microsoft.com/en-us/library/z54t9z5f%28v=vs.80%29.aspx)
This is a regression as I was able to build libshout 2.2.2 on the same system after making the hacks documented here: http://mixxx.org/wiki/doku.php/build_windows_dependencies#libshout
With any new version, I start without any hacks and add them as needed. So on 2.3.1, I've only had to copy compat.h and rename include\shout\shout.h.in to shout.h so far.
Edit timing.h and add near the top:
```
#if defined(_WIN32)
#define HAVE_FTIME 1
#include <sys/timeb.h>
#endif
Edit timing.c and replace the struct definition and ftime call with the following:
#if defined(_WIN32)
struct _timeb t;
_ftime(&t);
#else
struct timeb t;
ftime(&t);
#endif
```
https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/1847Shoutcast2- implementation2017-11-16T12:06:13ZB0fHShoutcast2- implementationi have found, that there is no support for the new shoutcast2 protocol in libshout, so i have writen a bit of code that may help you to add this protocol to libshout.i have found, that there is no support for the new shoutcast2 protocol in libshout, so i have writen a bit of code that may help you to add this protocol to libshout.Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/1207libshout 2.2.2 - configure script ignores "--with-speex=/path"2019-05-15T09:23:08ZThomas B. Rückerlibshout 2.2.2 - configure script ignores "--with-speex=/path"from #icecast on irc.freenode.org:
```
16:52:22< dm8tbr> configure script seems to ignore "--with-speex=/data/devel/openpma/build.arm/target/speex/"
16:54:20< dm8tbr> as expected running "grep target\/speex * -R" in the configured libsho...from #icecast on irc.freenode.org:
```
16:52:22< dm8tbr> configure script seems to ignore "--with-speex=/data/devel/openpma/build.arm/target/speex/"
16:54:20< dm8tbr> as expected running "grep target\/speex * -R" in the configured libshout sources only yields results in configure.*
16:59:21< dm8tbr> as opposed to running "grep target\/libogg * -R" - which yields plenty hits in e.g. Makefiles
```
This breaks cross compiling whith libraries relocated into separate directories (and that's what I need)Marvin ScholzMarvin Scholzhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/1197libshout-2.2.2 installation problem2017-11-16T12:06:14Zedolibshout-2.2.2 installation problemI install libogg and libvorbis at /home/icecast/build/
I'm run ./configure with prefix to that directory.
and type make and fail like this
theora.c:30:27: theora/theora.h: No such file or directory
theora.c:39: error: syntax error befor...I install libogg and libvorbis at /home/icecast/build/
I'm run ./configure with prefix to that directory.
and type make and fail like this
theora.c:30:27: theora/theora.h: No such file or directory
theora.c:39: error: syntax error before "theora_info"
theora.c:39: warning: no semicolon at end of struct or union
theora.c:40: warning: type defaults to `int' in declaration of `tc'
theora.c:40: warning: data definition has no type or storage class
theora.c:46: error: syntax error before '}' token
theora.c:46: warning: type defaults to `int' in declaration of `theora_data_t'
theora.c:46: warning: data definition has no type or storage class
theora.c: In function `_shout_open_theora':
theora.c:58: error: `theora_data' undeclared (first use in this function)
theora.c:58: error: (Each undeclared identifier is reported only once
theora.c:58: error: for each function it appears in.)
theora.c:62: warning: implicit declaration of function `theora_info_init'
theora.c:63: warning: implicit declaration of function `theora_comment_init'
theora.c:67: warning: implicit declaration of function `theora_decode_header'
theora.c: In function `read_theora_page':
theora.c:84: error: `theora_data' undeclared (first use in this function)
theora.c: In function `free_theora_data':
theora.c:136: error: `theora_data' undeclared (first use in this function)
theora.c:136: error: syntax error before ')' token
theora.c:138: warning: implicit declaration of function `theora_info_clear'
theora.c:139: warning: implicit declaration of function `theora_comment_clear'
make[3]: *** [theora.lo] Error 1
make[3]: Leaving directory `/etc/icecast/libshout-2.2.2/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/etc/icecast/libshout-2.2.2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/etc/icecast/libshout-2.2.2'
make: *** [all] Error 2
Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/1162libshout 2.2.2 doesn't leave the possibility to disable theora nor speex2017-11-16T12:06:14ZGitlab Botlibshout 2.2.2 doesn't leave the possibility to disable theora nor speexif I have libtheora or speex installed on my system I cannot disable libshout's related features, they are automatically detected.if I have libtheora or speex installed on my system I cannot disable libshout's related features, they are automatically detected.Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/1161libshout (2.2.2) doesnt link with speex if found2017-11-16T12:06:14ZGitlab Botlibshout (2.2.2) doesnt link with speex if foundlibshout 2.2.2 doesnt link libshout.la to speex what causes linking failureslibshout 2.2.2 doesnt link libshout.la to speex what causes linking failuresMichael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/945Changes are necessary to make libshout compilable under Win32 with the MS C/C...2017-11-16T12:06:14Znathan.interludeChanges are necessary to make libshout compilable under Win32 with the MS C/C++ compilerI have changed the sources to compile under Win32 with no errors, but don't have write access to svn, hence this ticket. The necessary changes:
* sock.h, line 34: reference to <compat.h> needs to be changed to #include "os.h"
* shout.c, ...I have changed the sources to compile under Win32 with no errors, but don't have write access to svn, hence this ticket. The necessary changes:
* sock.h, line 34: reference to <compat.h> needs to be changed to #include "os.h"
* shout.c, line 1016: the MS compiler views a void pointer as a pointer with no size information associated with it, so addition operationg are not supported. The line should be changed to :
ret = sock_write_bytes (self->socket, (void*)((char*)data + pos), len - pos);
* theora.c and vorbis.c should be included in the project file. This can be done either through the environment or manually with a text editor. Just add the following lines to libshout.dsp:
# Begin Source File
SOURCE=..\src\vorbis.c
# End Source File
# Begin Source File
SOURCE=..\src\theora.c
# End Source File
I don't know if that blank line is strictly necessary, but that's the way the other sources were included, so I stuck with that convention.
* The following lines need to be moved from sock.c to os.h:
#define vsnprintf _vsnprintf
#ifndef __MINGW32__
#define va_copy(ap1, ap2) memcpy(&ap1, &ap2, sizeof(va_list))
#endif
It actually won't hurt anything if they are left in sock.c, but they aren't necessary there. Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/863RFE: libshout #define version2017-11-16T12:06:14ZholbrookbwRFE: libshout #define versionI am developing a PHP module called phpShout (http://phpshout.sf.net/) that wraps the libshout library, providing PHP function calls to the libshout C library. There have been several instances when it would be very nice to refer to the...I am developing a PHP module called phpShout (http://phpshout.sf.net/) that wraps the libshout library, providing PHP function calls to the libshout C library. There have been several instances when it would be very nice to refer to the local libshout library's Version number using C #define statements.
Namely, my library supposedly supports libshout>=2.0, but refers to SHOUT_FORMAT_OGG which didn't appear until 2.1. It would be nice to be able to do a check with #if and re-map this constant to SHOUT_FORMAT_VORBIS if the local library is only 2.0 at compile time, instead of at runtime using shout_version(). MySQL, for instance, exports:
#define MYSQL_SERVER_VERSION "4.1.16"
for pretty printing
#define MYSQL_VERSION_ID 40116
for version comparisons
I would like to see (at least) both of these added to shout.h...
#define SHOUT_VERSION "2.2"
#define SHOUT_VERSION_ID 20200
...The first for the printing of the library version in phpinfo() and the second for version checks at compile time. Thanks!
-BrandonBrendan Cully Brendan Cully https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/833another double-free() in libshout, triggered during involuntary shutdown of i...2009-04-19T20:04:15Zgtgbranother double-free() in libshout, triggered during involuntary shutdown of ices2Hello,
this issue is sitting around for a while. I expected it to be in trunk for months now, but I was mistaken -- turns out it's hard to agree on the proper solution for this. Karl Heyes wanted to look into it again, but he's current...Hello,
this issue is sitting around for a while. I expected it to be in trunk for months now, but I was mistaken -- turns out it's hard to agree on the proper solution for this. Karl Heyes wanted to look into it again, but he's currently short on time so I submit this here. He mentioned that Brendan also looked at the patch attached to this report (see below), but couldn't see how it would make any difference. Well, it does ...
Note that this is NOT the issue that was fixed in libshout-2.2. My version of libshout-2.1 contained most patches that became v2.2, including the "first" double-free() fix. Line numbers might be slightly off, but that's all.
This is on OpenBSD 3.8/i386, with MALLOC_OPTIONS=FGPZ which has a similar effect to running an application with efence and free() protection. See http://www.openbsd.org/cgi-bin/man.cgi?query=malloc for details.
It may take a few days to trigger. I've been running the patch for a long time, and that one fixed it for me -- whether it's a workaround or the proper fix, I cannot tell. It had no ill effects. As soon as I removed it again to be closer to trunk for more testing, the crash occured again.
Backtrace:
```
Core was generated by `ices2'.
Program terminated with signal 11, Segmentation fault.
#0 0x07da9731 in free_codecs (ogg_data=0x85591540)
at /usr/ports/mystuff/net/libshout/w-libshout-2.1p2-debug/libshout-2.1/src/ogg.c:170
170 next = codec->next;
#1 0x07da964e in close_ogg (self=0x7c291280)
at /usr/ports/mystuff/net/libshout/w-libshout-2.1p2-debug/libshout-2.1/src/ogg.c:136
136 free_codecs(ogg_data);
#2 0x07da6350 in shout_close (self=0x7c291280)
at /usr/ports/mystuff/net/libshout/w-libshout-2.1p2-debug/libshout-2.1/src/shout.c:166
166 self->close(self);
#3 0x1c006381 in ices_instance_stream (arg=0x8343f880)
at /usr/ports/mystuff/net/ices2/w-ices-2.0.1p2-debug/ices-2.0.1/src/stream.c:348
#4 0x1c00de52 in _start_routine (arg=0x81a07480)
at /usr/ports/mystuff/net/ices2/w-ices-2.0.1p2-debug/ices-2.0.1/src/thread/thread.c:655
#5 0x0ee03d4b in _thread_start () from /usr/lib/libpthread.so.6.1
#6 0x0000001f in ?? ()
#7 0x00000000 in ?? ()
[...]
#1030 0x00000000 in ?? ()
Cannot access memory at address 0x7f495000
```
Icecast error.log:
```
[2006-01-04 07:10:03] INFO connection/_handle_source_request Source logging in at mountpoint "/kolaradio.ogg"
[2006-01-04 07:10:03] WARN connection/_handle_source_request Mountpoint /kolaradio.ogg in use
[2006-01-04 07:10:13] WARN source/get_next_buffer Disconnecting source due to socket timeout
[2006-01-04 07:10:13] INFO source/source_shutdown Source "/kolaradio.ogg" exiting
```
Ices-2's log:
```
[2006-01-04 07:10:03] EROR stream/ices_instance_stream Send error: Socket error (Broken pipe)
[2006-01-04 07:10:03] DBUG input/input_flush_queue Input queue flush requested
[2006-01-04 07:10:03] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2006-01-04 07:10:03] INFO signals/signal_hup_handler Flushing logs
[2006-01-04 07:10:03] INFO playlist-builtin/event_handler Moving to next file in playlist.
[2006-01-04 07:10:03] INFO playlist-builtin/playlist_read Currently playing "/home/maxx/streams/z10/Ugress_-_Kaleido_Scope.ogg"
[2006-01-04 07:10:03] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Login failed)
[2006-01-04 07:10:05] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2006-01-04 07:10:05] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Login failed)
[2006-01-04 07:10:07] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2006-01-04 07:10:07] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Login failed)
[2006-01-04 07:10:09] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2006-01-04 07:10:09] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Login failed)
[2006-01-04 07:10:11] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2006-01-04 07:10:11] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Login failed)
[2006-01-04 07:10:11] EROR stream/ices_instance_stream Reconnect failed too many times, giving up.
[2006-01-04 07:10:11] WARN stream/ices_instance_stream Too many errors, shutting down
```
Moritz
Gitlab BotGitlab Bothttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/744free_codecs() in libshout crash2007-06-17T08:47:16Zgtgbrfree_codecs() in libshout crashHello again,
here's another crash to report, this time with a bit more useful debugging data.
Backtrace:
```
Program terminated with signal 11, Segmentation fault.
#0 0x057b1865 in free_codecs (ogg_data=0x7c0b8080)
at /usr/ports...Hello again,
here's another crash to report, this time with a bit more useful debugging data.
Backtrace:
```
Program terminated with signal 11, Segmentation fault.
#0 0x057b1865 in free_codecs (ogg_data=0x7c0b8080)
at /usr/ports/mystuff/net/libshout/w-libshout-2.1p2-debug/libshout-2.1/src/ogg.c:170
170 next = codec->next;
#1 0x057b1782 in close_ogg (self=0x8b30e280)
at /usr/ports/mystuff/net/libshout/w-libshout-2.1p2-debug/libshout-2.1/src/ogg.c:136
136 free_codecs(ogg_data);
#2 0x057ae350 in shout_close (self=0x8b30e280)
at /usr/ports/mystuff/net/libshout/w-libshout-2.1p2-debug/libshout-2.1/src/shout.c:166
166 self->close(self);
#3 0x1c006381 in ices_instance_stream (arg=0x83536680)
at /usr/ports/mystuff/net/ices2/w-ices-2.0.1p2-debug/ices-2.0.1/src/stream.c:348
348 shout_close(sdsc->shout);
#4 0x1c00de52 in _start_routine (arg=0x857181c0)
at /usr/ports/mystuff/net/ices2/w-ices-2.0.1p2-debug/ices-2.0.1/src/thread/thread.c:655
655 (start_routine)(real_arg);
#5 0x06d93d4b in _thread_start () from /usr/lib/libpthread.so.6.1
#6 0x0000001f in ?? ()
#7 0x00000000 in ?? ()
[...]
#1030 0x00000000 in ?? ()
Cannot access memory at address 0x86a16000
```
IceS2 log of the crash:
```
[2005-11-25 18:05:37] EROR stream/ices_instance_stream Send error: Socket error (Broken pipe)
[2005-11-25 18:05:37] DBUG input/input_flush_queue Input queue flush requested
[2005-11-25 18:05:37] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2005-11-25 18:05:37] INFO signals/signal_hup_handler Flushing logs
[2005-11-25 18:05:37] INFO playlist-builtin/event_handler Moving to next file in playlist.
[2005-11-25 18:05:37] INFO playlist-builtin/playlist_read Currently playing "/home/maxx/streams/z10/Zoot_Woman_-_The_Model.ogg"
[2005-11-25 18:05:38] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Socket error)
[2005-11-25 18:05:40] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2005-11-25 18:05:40] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Socket error)
[2005-11-25 18:05:42] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2005-11-25 18:05:42] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Socket error)
[2005-11-25 18:05:44] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2005-11-25 18:05:44] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Socket error)
[2005-11-25 18:05:46] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2005-11-25 18:05:46] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Socket error)
[2005-11-25 18:05:46] EROR stream/ices_instance_stream Reconnect failed too many times, giving up.
[2005-11-25 18:05:46] WARN stream/ices_instance_stream Too many errors, shutting down
```
Icecast log of the crash:
```
[2005-11-25 18:05:38] INFO connection/_handle_source_request Source logging in at mountpoint "/kolaradio.ogg"
[2005-11-25 18:05:38] WARN connection/_handle_source_request Mountpoint /kolaradio.ogg in use
[2005-11-25 18:05:48] WARN source/get_next_buffer Disconnecting source due to socket timeout
[2005-11-25 18:05:48] INFO source/source_shutdown Source "/kolaradio.ogg" exiting
```
My RAM is in working order again, so this might be genuine. This is ices-2.0.1 and libshout-2.1, on OpenBSD 3.8-stable/i386.
Possibly interesting: The disconnects happen due to a mild DoS that my laptop sometimes does to the server ... for unknown reasons, the mail component of Mozilla occasionally freaks out and it sends several thousand ACK pps, increasing the interrupt load on the server enough to disrupt some of the services it provides. This means either ices or icecast (or both) temporarily run out of resources, and this appears to be the main trigger for those disconnects (which shouldn't crash.) Icecast is not affected long-term, it always survives and so do other ices2 streams (usually) if more than one runs in parallel.
Hth,
Moritz
(_mx in Freenode/#icecast)Gitlab BotGitlab Bothttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/720segfault with IceS2 (looks like use-after-free() in libshout)2006-06-12T12:09:12Zgtgbrsegfault with IceS2 (looks like use-after-free() in libshout)I was running two ices-2 in parallel, and one of the two crashed. The other, as well as Icecast are still running fine.
This is on OpenBSD 3.8 (i386), which contains some interesting changes to malloc(). Misbehaving software gets a SIGS...I was running two ices-2 in parallel, and one of the two crashed. The other, as well as Icecast are still running fine.
This is on OpenBSD 3.8 (i386), which contains some interesting changes to malloc(). Misbehaving software gets a SIGSEGV here, while on other systems, the same bug might only occasionally cause a seemingly random crash. It is explained at
http://marc.theaimsgroup.com/?l=openbsd-misc&m=112475373731469&w=2
Versions are ices-2.0.1, libshout-2.1 and icecast-2.3.0.
The tail of the ices.log:
```
[2005-10-17 07:37:53] INFO playlist-builtin/playlist_read Currently playing "/home/maxx/mp3-stream/Midnight_Oil_-_Blue_Sky_Mine.ogg"
[2005-10-17 07:37:53] DBUG encode/encode_clear Clearing encoder engine
[2005-10-17 07:37:53] DBUG reencode/reencode_page Reinitialising reencoder for new logical stream
[2005-10-17 07:37:53] INFO encode/encode_initialise Encoder initialising in VBR mode: 2 channel(s), 44100 Hz, quality 1.500000
[2005-10-17 07:40:53] EROR stream/ices_instance_stream Send error: Socket error (Broken pipe)
[2005-10-17 07:40:53] DBUG input/input_flush_queue Input queue flush requested
[2005-10-17 07:40:53] WARN stream/ices_instance_stream Trying reconnect after server socket error
[2005-10-17 07:40:53] INFO signals/signal_hup_handler Flushing logs
[2005-10-17 07:40:53] INFO playlist-builtin/event_handler Moving to next file in playlist.
[2005-10-17 07:40:53] INFO playlist-builtin/playlist_read Currently playing "/home/maxx/mp3-stream/Shaper_-_Recliner.ogg"
[2005-10-17 07:40:53] EROR stream/ices_instance_stream Failed to reconnect to localhost:8000 (Socket error)
[2005-10-17 07:40:55] WARN stream/ices_instance_stream Trying reconnect after server socket error
```
Backtrace:
```
Program terminated with signal 11, Segmentation fault.
#0 0x0496c89f in free_codecs () from /usr/local/lib/libshout.so.4.0
#1 0x0496c7ec in close_ogg () from /usr/local/lib/libshout.so.4.0
#2 0x0496a25e in shout_close () from /usr/local/lib/libshout.so.4.0
#3 0x1c006115 in ices_instance_stream (arg=0x7cc43680) at /usr/ports/mystuff/net/ices2/w-ices-2.0.1p1-debug/ices-2.0.1/src/stream.c:300
300 shout_close(sdsc->shout);
#4 0x1c00de4e in _start_routine (arg=0x871bd1c0) at /usr/ports/mystuff/net/ices2/w-ices-2.0.1p1-debug/ices-2.0.1/src/thread/thread.c:655
655 (start_routine)(real_arg);
#5 0x08a15d4b in _thread_start () from /usr/lib/libpthread.so.6.1
#6 0x0000001f in ?? ()
#7 0x00000000 in ?? ()
#8 0x00000000 in ?? ()
[...]
#1029 0x00000000 in ?? ()
#1030 0x00000000 in ?? ()
Cannot access memory at address 0x827cb000
```
I'll be happy to help with more information, if necessary, also on Freenode/#icecast (_mx). I will also restart the whole thing with libshout having debug symbols; maybe it happens again.
Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/320Add get-timeout method to API for non-blocking operation2006-06-12T11:48:28ZdanforthctAdd get-timeout method to API for non-blocking operation```
The blocking nature of sleep() in the libshout api means that users cannot wait
on other events (sockets via select(), etc.) while waiting for icecast to
consume data in a single threaded but multi-task process.
The request is that ...```
The blocking nature of sleep() in the libshout api means that users cannot wait
on other events (sockets via select(), etc.) while waiting for icecast to
consume data in a single threaded but multi-task process.
The request is that a method be added to the api, perhaps called
get_sleep_time() , that simply returns a float indicating how much time should
be waited. The user can then use this timeout in a select() call to wait while
responding to other events.
As we're using the Perl XS module, it's important that this functionality be
mirrored in that interface as well.
```Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/303Libshout's example code is broken2002-12-29T11:48:20ZtypoLibshout's example code is broken```
The example code that comes with libshout doesn't work. Patch attatched.
Pedro Corte-Real.
``````
The example code that comes with libshout doesn't work. Patch attatched.
Pedro Corte-Real.
```Jack MoffittJack Moffitthttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/185Unconditional include of stdint.h2005-05-01T22:24:56ZnickUnconditional include of stdint.h```
I think stdint.h is a linux-ism, and certainly in the configure script,
including of this file is conditional, as follows:
#include <sys/types.h>
#ifdef HAVE_STDINT_H
# include <stdint.h>
#elif defined (HAVE_INTTYPES_H)
# include ...```
I think stdint.h is a linux-ism, and certainly in the configure script,
including of this file is conditional, as follows:
#include <sys/types.h>
#ifdef HAVE_STDINT_H
# include <stdint.h>
#elif defined (HAVE_INTTYPES_H)
# include <inttypes.h>
#endif
Although, as always, I'm never sure if this is because autoconf/libtool is
outta date on my system. I'm pretty sure they dont generally touch the contents
of .c files, so I think this is a valid bug.
Nick
```Segher BoessenkoolSegher Boessenkoolhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/76You can't specify your libogg location to automake/configure2006-06-13T06:07:02ZnickYou can't specify your libogg location to automake/configure```
Need to add in ogg.m4 or acinclude.m4 to allow you to specify the location of
your libogg installation.
``````
Need to add in ogg.m4 or acinclude.m4 to allow you to specify the location of
your libogg installation.
```Jack MoffittJack Moffitthttps://gitlab.xiph.org/xiph/libao/-/issues/2317libao_pulse buffer calculation overflow2017-11-03T10:00:01ZGitlab Botlibao_pulse buffer calculation overflowIn tracking down the source of some strange behavior when setting buffer_time for the pulse plugin, I found a bug in the buffer length calculations that results in a multiplication overflow for some values. This overflow would set the bu...In tracking down the source of some strange behavior when setting buffer_time for the pulse plugin, I found a bug in the buffer length calculations that results in a multiplication overflow for some values. This overflow would set the buffer size to some absurdly-large value (~30 seconds in my case).
I've attached a patch that casts the multiplicands to a 64-bit int before the multiplication. This fixed the issue for me.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/libao/-/issues/2307Inconsistent signedness of 8-bit samples2017-11-03T10:00:01ZDaniel Richard G.Inconsistent signedness of 8-bit samplesWhen playing 8-bit audio live, signed 8-bit samples work correctly.
When writing to a file with the "au" driver, signed samples also work correctly.
However, when writing to a "wav" file, signed samples yield incorrect output. The samp...When playing 8-bit audio live, signed 8-bit samples work correctly.
When writing to a file with the "au" driver, signed samples also work correctly.
However, when writing to a "wav" file, signed samples yield incorrect output. The samples must be converted to unsigned (by XOR'ing with 0x80) in order to produce a recognizable WAV file.
WAV files have the peculiarity of encoding 8-bit samples in unsigned form. I believe signed samples make more sense for API purposes, and Libao should handle the conversion itself when writing a WAV file.
(Currently, it is necessary to add special-casing to the application to perform this conversion when writing out an 8-bit WAV file.)Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/libao/-/issues/2286[PATCH] Revamped support for Microsoft Windows2017-11-03T10:00:01ZDaniel Richard G.[PATCH] Revamped support for Microsoft WindowsI've put together a patch to Libao, against Git master (currently `97c0dea6`), that fixes and simplifies the support for Windows.
First, I've added an NMAKE makefile that can be used with Microsoft Visual Studio. I have tested the build...I've put together a patch to Libao, against Git master (currently `97c0dea6`), that fixes and simplifies the support for Windows.
First, I've added an NMAKE makefile that can be used with Microsoft Visual Studio. I have tested the build with the following versions:
* Microsoft Visual C++ 6.0 (does not build due to missing APIs)
* Microsoft Visual Studio 2003 .NET
* Microsoft Visual Studio 2005
* Intel ICC 11.1 + MSVC9 Platform SDK
This is accompanied by a small batch file that handles the instantiation of `os_types.h` from `os_types.h.in`. Together, these allow building Libao using only Microsoft tools.
(I have further tested the linking of a small sound application with the built library, and confirmed that it works correctly.)
I've tweaked things so that on Windows, the system config for Libao is at
```
C:\Program Files\Common Files\Xiph.Org\libao.conf
```
and the user config is at
```
${LOCALAPPDATA}\Xiph.Org\libao.conf
```
This follows Windows conventions reasonably well without resorting to the Registry.
In `ao_private.h`, I've added two new sets of logging macros. One uses C99 syntax for variadic macros, supported by Visual Studio 2005 and later. The other is for older systems that do not support variadic macros at all. It's a hack, and has the shortcoming that messages are written to `stdout` instead of `stderr`, but it's better than nothing.
The remainder are small changes, which I'll describe below:
* `Makefile.am`: Added the two new Windows build files to `EXTRA_DIST`
* `include/ao/Makefile.am`: Don't include `os_types.h` (generated file) in the distribution tarball
* `include/ao/ao_private.h`: Use `strdup()` with an underscore prefix to keep the Microsoft compiler happy
* `src/ao_wmm.c`: Moved `-D_CRT_SECURE_NO_DEPRECATE` out to the makefile, because it also quashes warnings in the other source files
* `src/ao_wmm.c`: Use `#pragma comment(lib)` directives to bake in a reference to the two Windows libraries required by this code; this simplifies application linking later
* `src/ao_wmm.c`: Must `#include<ks.h>` or else you get this error:
```
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\KsMedia.h(16) : fatal error C1189: #error : KS.H must be included before KSMEDIA.H
```
(Also, you must still `#include<ksmedia.h>`, or else you don't get a usable definition of `KSDATAFORMAT_SUBTYPE_PCM`)
* `src/ao_wmm.c`: Add missing newlines to various logging macros
* `src/ao_wmm.c`: Check that `max` is greater than zero, because otherwise the system has no sound devices (saw this on a Windows VM)
* `src/ao_wmm.c`: Properly ignore unsupported options
* `src/audio_out.c`: `dirent.h` does not exist in Microsoft-land
* `src/audio_out.c`: Don't `#include"ao_private.h"`; this is #included from `ao.h`
* `src/audio_out.c`: Removed unused variable, flattened needless block
* `src/config.c`: Corrected AO header #including
* `src/config.c`: Removed unused variableMonty MontgomeryMonty Montgomery