Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2017-11-01T04:49:44Zhttps://gitlab.xiph.org/xiph/vorbis/-/issues/2221vorbis_comment_add_tag() crash: very large alloca()2017-11-01T04:49:44Zi80andvorbis_comment_add_tag() crash: very large alloca()While transcoding several MP3s via GStreamer on OSX with libvorbis 1.3.5, I encountered a consistent segmentation fault in vorbis_comment_add_tag().
GStreamer passes a very large "contents" argument for these files. vorbis_comment_add_t...While transcoding several MP3s via GStreamer on OSX with libvorbis 1.3.5, I encountered a consistent segmentation fault in vorbis_comment_add_tag().
GStreamer passes a very large "contents" argument for these files. vorbis_comment_add_tag() allocates the comment using alloca(), resulting in a stack overflow.
Replacing alloca() with _ogg_malloc() (and adding a corresponding _ogg_free()) resolves the crash.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/2218psy.c: warning C4305: '=' : truncation from 'double' to 'float'2017-11-01T04:49:44Zirov13psy.c: warning C4305: '=' : truncation from 'double' to 'float'```
p->m_val = 1.;
if(rate < 26000) p->m_val = 0;
else if(rate < 38000) p->m_val = .94; /* 32kHz */
else if(rate > 46000) p->m_val = 1.275; /* 48kHz */
```
pls add .f
```
p->m_val = 1.f;
if(rate < 26000) p->m_val = 0.f;
...```
p->m_val = 1.;
if(rate < 26000) p->m_val = 0;
else if(rate < 38000) p->m_val = .94; /* 32kHz */
else if(rate > 46000) p->m_val = 1.275; /* 48kHz */
```
pls add .f
```
p->m_val = 1.f;
if(rate < 26000) p->m_val = 0.f;
else if(rate < 38000) p->m_val = .94f; /* 32kHz */
else if(rate > 46000) p->m_val = 1.275f; /* 48kHz */
```Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/libao/-/issues/2217libao fails to signal output device change2017-11-03T10:00:01Zjrleemanlibao fails to signal output device changelibao does not signal a change of audio output device in such a way that applications may respond. Related to/discovered in pianobar issue: https://github.com/PromyLOPh/pianobar/issues/536#issuecomment-135080348 libao does not signal a change of audio output device in such a way that applications may respond. Related to/discovered in pianobar issue: https://github.com/PromyLOPh/pianobar/issues/536#issuecomment-135080348 Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/opus/-/issues/2215Opus encoder blends both audio channels in each audio channel in low bitrates2017-10-21T19:37:05ZPavel ChrpaOpus encoder blends both audio channels in each audio channel in low bitratesIn low bitrate encoding of a stereo file (WAV), the Opus codec seems to blend both audio channel in each audio channel. From my initial testing it seems that the border is around ~38-40kbps and the lower the bitrate is, the more signific...In low bitrate encoding of a stereo file (WAV), the Opus codec seems to blend both audio channel in each audio channel. From my initial testing it seems that the border is around ~38-40kbps and the lower the bitrate is, the more significant this seems. This may be a problem in recording of two speakers, where each of the speaker represent one of the audio channel.
*Steps*:
1. Install opus-tools 0.1.9-1 (e.g. _sudo apt-get install opus-tools_)
2. Encode stereo file by running _opusenc --bitrate 24 --hard-cbr --framesize 60_
3. Play the file and listen to each of the channels separately
*Expected*:
- both channels will retain only their audio footage
*Environment*:
- Ubuntu MATE 15.04 running on Dell Latitude E5430
- WAV info (file available at: [https://drive.google.com/folderview?id=0B_W_T_CohbhsfnNaOGZkb0NzekhKeDZDV2FnbFJTeUV4QzdBaDFPalpGQUdIVkJoTUpIVEk&usp=sharing]):
```
$ mediainfo ~/Desktop/1352389720037_5516_5517_31870.wav
General
Complete name : /home/pavel/Desktop/1352389720037_5516_5517_31870.wav
Format : Wave
File size : 2.81 MiB
Duration : 1mn 32s
Overall bit rate mode : Constant
Overall bit rate : 256 Kbps
Audio
Format : PCM
Format settings, Endianness : Little
Format settings, Sign : Signed
Codec ID : 1
Duration : 1mn 32s
Bit rate mode : Constant
Bit rate : 256 Kbps
Channel(s) : 2 channels
Sampling rate : 8 000 Hz
Bit depth : 16 bits
Stream size : 2.81 MiB (100%)
```
- Opus codec:
```
$ dpkg -l | grep opus
ii libopus0:amd64 1.1-0ubuntu2 amd64 Opus codec runtime library
ii opus-tools 0.1.9-1 amd64 Opus codec command line tools
```Jean-Marc ValinJean-Marc Valinhttps://gitlab.xiph.org/xiph/vorbis-tools/-/issues/2214compiler warning on assert in resample.c2020-12-06T12:09:49Zvespertocompiler warning on assert in resample.cHi, while installing vorbis-tools in Gentoo, the following warning is issued by the installer:
```
QA Notice: Package triggers severe warnings which indicate that it may exhibit random runtime failures.
resample.c:177:34: warning:...Hi, while installing vorbis-tools in Gentoo, the following warning is issued by the installer:
```
QA Notice: Package triggers severe warnings which indicate that it may exhibit random runtime failures.
resample.c:177:34: warning: comparison with string literal results in unspecified behavior [-Waddress]
```
This is caused by an assert using == on strings. I've never seen any of the Vorbis code but i assume this warning can be fixed with the attached patch.
oggenc -V reports «oggenc from vorbis-tools 1.4.0» but i didn't find that specific version in the bug submission form.
The system is amd64.
Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/vorbis-tools/-/issues/2212oggenc aiff_open buffer overflow2018-01-22T05:18:41Zpengsuoggenc aiff_open buffer overflowI discovered an buffer overflow issue in oggenc/audio.c when it tries to open invalid aiff file.
...I discovered an buffer overflow issue in oggenc/audio.c when it tries to open invalid aiff file.
```
274 if(fread(buffer,1,len,in) < len)
```
The 'len' here can be controlled by user indirectly via:
```
260 if(!find_aiff_chunk(in, "COMM", &len))
```
The attached aiff file can be used to reproduce this issue. I was testing with vorbis-tools-1.4.0Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/libao/-/issues/2210Warning: Carbon Component Manager is being depricated2020-06-14T10:09:15ZSethWarning: Carbon Component Manager is being depricatedApplications running in OS X 10.11 (El Capitan) have errors stating that Carbon Component Manager is deprecated:
This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support...Applications running in OS X 10.11 (El Capitan) have errors stating that Carbon Component Manager is deprecated:
This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/ezstream/-/issues/2208ezstream crashes if format element is missing2020-01-29T20:29:06ZPetr Pisarezstream crashes if format element is missingI got a report <https://bugzilla.redhat.com/show_bug.cgi?id=1244481> that ezstream crashes if mandatory format element is missing in the configuration file.
According to development ezstream sources, the configuration parser was rewritt...I got a report <https://bugzilla.redhat.com/show_bug.cgi?id=1244481> that ezstream crashes if mandatory format element is missing in the configuration file.
According to development ezstream sources, the configuration parser was rewritten and does not suffer from this problem.
Nevertheless, fix for 0.6.0 version is attached.Moritz GrimmMoritz Grimmhttps://gitlab.xiph.org/xiph/icecast-ices/-/issues/2207Username option missing in the docs2017-11-05T22:14:58ZMarvin ScholzUsername option missing in the docsThe docs do not mention the `<username>` parameter at all but should.The docs do not mention the `<username>` parameter at all but should.Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2206[PATCH] Update the libshout python bindings to the libshout git version2019-05-22T07:44:49Zdivayth[PATCH] Update the libshout python bindings to the libshout git versionI added methods for tls, ca_directory, ca_file, allowed_ciphers and for get and set_meta.
The first list is implemented as class attributes of the shout object and *_meta as methods.
It is still missing docstrings and help because I wa...I added methods for tls, ca_directory, ca_file, allowed_ciphers and for get and set_meta.
The first list is implemented as class attributes of the shout object and *_meta as methods.
It is still missing docstrings and help because I was not sure what to write.Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2205Allow icy-description override with stream-description from config2020-05-14T08:51:14ZMarvin ScholzAllow icy-description override with stream-description from configCurrently only the stream-name will override the icy-name header, we should implement the same handling for stream-description and icy-description as there are source clients that do not sent those headers.
(See [18543] and #1359)Currently only the stream-name will override the icy-name header, we should implement the same handling for stream-description and icy-description as there are source clients that do not sent those headers.
(See [18543] and #1359)Marvin ScholzMarvin Scholzhttps://gitlab.xiph.org/xiph/libao/-/issues/2204libao-1.2.0 faulty configure check for wmm driver2017-11-03T10:00:02ZBen G.libao-1.2.0 faulty configure check for wmm driverHello
The AC_LANG_SOURCE() function in configure.ac for the wmm detection code is misplaced and disable the test altogether.
I've joined a small patch that fix the problem.
```
--- libao-1.2.0-bug/configure.ac 2014-01-27 18:02:05.000...Hello
The AC_LANG_SOURCE() function in configure.ac for the wmm detection code is misplaced and disable the test altogether.
I've joined a small patch that fix the problem.
```
--- libao-1.2.0-bug/configure.ac 2014-01-27 18:02:05.000000000 +0100
+++ libao-1.2.0-fix/configure.ac 2015-06-15 02:49:42.994291600 +0200
@@ -224,13 +224,13 @@ AC_ARG_ENABLE([wmm],
[include WMM output plugin @<:@default=check@:>@])],
[],[enable_wmm="check"]
)
-AS_IF([AC_LANG_SOURCE([test "x$enable_wmm" != "xno"],
+AS_IF([test "x$enable_wmm" != "xno"],
[AC_CHECK_HEADERS([mmsystem.h],
[
AC_MSG_CHECKING([waveOut family functions])
waveout_old_LIBS="$LIBS"; LIBS="$LIBS -lwinmm"
dnl Can't use AC_SEARCH_LIBS because symbols are decorated
- AC_LINK_IFELSE([
+ AC_LINK_IFELSE([AC_LANG_SOURCE([
#include <windows.h>
#include <mmsystem.h>
int main(int na, char ** a) {
```
--
G.BMonty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/2203infer issues on libvorbis2017-11-01T04:49:44ZGhost Userinfer issues on libvorbisFacebook's infer static analysis tool complains about some possible null dereferences in libvorbis and libvorbisfile:
Starting analysis (Infer version git-4526ada822d01728c4ac0ac30fd2f9a2aa115c0f)
Analysis done
22 files analyzed
lib/...Facebook's infer static analysis tool complains about some possible null dereferences in libvorbis and libvorbisfile:
Starting analysis (Infer version git-4526ada822d01728c4ac0ac30fd2f9a2aa115c0f)
Analysis done
22 files analyzed
lib/block.c:110: error: NULL_DEREFERENCE
pointer link last assigned on line 108 could be null and is dereferenced at line 110, column 7
lib/codebook.c:152: error: NULL_DEREFERENCE
pointer s last assigned on line 151 could be null and is dereferenced at line 152, column 3
lib/floor0.c:79: error: NULL_DEREFERENCE
pointer info last assigned on line 78 could be null and is dereferenced at line 79, column 3
lib/floor0.c:139: error: NULL_DEREFERENCE
pointer *look->linearmap[W] last assigned on line 134 could be null and is dereferenced at line 139, column 7
lib/floor0.c:153: error: NULL_DEREFERENCE
pointer look last assigned on line 149 could be null and is dereferenced at line 153, column 3
lib/floor1.c:123: error: NULL_DEREFERENCE
pointer info last assigned on line 121 could be null and is dereferenced at line 123, column 3
lib/floor1.c:191: error: NULL_DEREFERENCE
pointer look last assigned on line 186 could be null and is dereferenced at line 191, column 3
lib/floor1.c:745: error: NULL_DEREFERENCE
pointer output last assigned on line 741 could be null and is dereferenced at line 745, column 7
lib/floor1.c:968: error: NULL_DEREFERENCE
pointer fit_value last assigned on line 966 could be null and is dereferenced at line 968, column 5
lib/info.c:60: error: NULL_DEREFERENCE
pointer vc->comment_lengths last assigned on line 58 could be null and is dereferenced at line 60, column 3
lib/mdct.c:66: error: NULL_DEREFERENCE
pointer T last assigned on line 54 could be null and is dereferenced at line 66, column 5
lib/psy.c:41: error: NULL_DEREFERENCE
pointer look last assigned on line 39 could be null and is dereferenced at line 41, column 3
lib/res0.c:200: error: NULL_DEREFERENCE
pointer info last assigned on line 197 could be null and is dereferenced at line 200, column 3
lib/res0.c:268: error: NULL_DEREFERENCE
pointer look last assigned on line 262 could be null and is dereferenced at line 268, column 3
lib/res0.c:430: error: NULL_DEREFERENCE
pointer partword last assigned on line 422 could be null and is dereferenced at line 430, column 5
lib/res0.c:496: error: NULL_DEREFERENCE
pointer partword last assigned on line 489 could be null and is dereferenced at line 496, column 3
lib/res0.c:790: error: NULL_DEREFERENCE
pointer work last assigned on line 785 could be null and is dereferenced at line 790, column 7
lib/vorbisfile.c:199: error: NULL_DEREFERENCE
pointer *serialno_list last assigned on line 196 could be null and is dereferenced at line 199, column 3
lib/vorbisfile.c:2324: error: NULL_DEREFERENCE
pointer vi last assigned on line 2321 could be null and is dereferenced at line 2324, column 7
lib/vorbisfile.c:2385: error: NULL_DEREFERENCE
pointer vi last assigned on line 2382 could be null and is dereferenced at line 2385, column 7
Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2202Hardcoded HTTP protocol verification for master-slave relaying2018-06-15T20:53:24ZMarvin ScholzHardcoded HTTP protocol verification for master-slave relayingIf using master slave relaying, Icecast tries to download a .txt file with an overview of the mountpoints connected on the master. There the code has a hardcoded check for "HTTP/1.0", that means it will fail if Icecast ever uses HTTP/1.1...If using master slave relaying, Icecast tries to download a .txt file with an overview of the mountpoints connected on the master. There the code has a hardcoded check for "HTTP/1.0", that means it will fail if Icecast ever uses HTTP/1.1 instead, which is not very good.
A proper check should be used there.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2201network throughput limited at 70mbps2018-07-07T09:17:24Zwilson chuanetwork throughput limited at 70mbpsHi I have setup 3 icecast servers for eradioportal.com. These are running in a hyperV environment using CentOS v6.6
I have noticed that despite being on a 1gbps connection, the maximum network throughput i am getting is somewhere aroun...Hi I have setup 3 icecast servers for eradioportal.com. These are running in a hyperV environment using CentOS v6.6
I have noticed that despite being on a 1gbps connection, the maximum network throughput i am getting is somewhere around the 70mbps only.
Is this a bug? or is this a misconfiguration error?
Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2200icecast stats addition (per mount cumulative listener counter)2018-07-07T09:19:54Zddndukkicecast stats addition (per mount cumulative listener counter)Currently in icecast statistics available counter like 'hit count' only globally in <icecasts/> node. I mean 'listener_connections'
It will be very good to add per-mount counter like that (accumulated counter of listener connections).
s...Currently in icecast statistics available counter like 'hit count' only globally in <icecasts/> node. I mean 'listener_connections'
It will be very good to add per-mount counter like that (accumulated counter of listener connections).
so it appears in /icecasts/source/ node with name like 'listener_connections'.
<icestats>
<listener_connections>3</listener_connections>
<source mount="/test">
<listener_connections>2</listener_connections>
...
</source>
</icecasts>
Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2199Icecast listener count negative under special circumstances2018-04-16T14:24:46ZMarvin ScholzIcecast listener count negative under special circumstancesAs reported by SimAV on IRC (thanks a lot), it can happen under special circumstances that the Icecast global listener count becomes a negative number.
It seems this is a very special case where `format_check_http_buffer` has an interna...As reported by SimAV on IRC (thanks a lot), it can happen under special circumstances that the Icecast global listener count becomes a negative number.
It seems this is a very special case where `format_check_http_buffer` has an internal problem (see log). As far as I have investigated, this is caused because `ebml_create_client_data` returns -1. We need to investigate why this leads to a wrong listener count.
Some more information attached.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2198status-json.xsl produces invalid output if field contains only "-" and option...2017-10-14T21:47:27ZZalexstatus-json.xsl produces invalid output if field contains only "-" and optional whitespaceWhen my track *hasn't* title in *tags*, Icecast shows *`-`* instead of a blank line,(I suppose this status sends the client, mpd in my case, to Icecast server) so, I get json like this (see example) and this json isn't valid because *`"...When my track *hasn't* title in *tags*, Icecast shows *`-`* instead of a blank line,(I suppose this status sends the client, mpd in my case, to Icecast server) so, I get json like this (see example) and this json isn't valid because *`"title" : -`* instead *`"title" : "-"`* . I checked it here - http://jsonlint.com/ So, I cant't do `json_decode()`, function returns `null`
```
{
"icestats": {
"admin": "admin@admin",
"host": "host.com",
"location": "Moscow",
"server_id": "Icecast 2.4.2",
"server_start": "Fri, 15 May 2015 16:25:24 +0300",
"server_start_iso8601": "2015-05-15T16:25:24+0300",
"source": [
{
"audio_info": "channels=2;samplerate=44100;bitrate=192",
"channels": 2,
"genre": "various",
"listener_peak": 3,
"listeners": 0,
"listenurl": "http://mds.planeset.ru:8000/mds.mp3",
"samplerate": 44100,
"server_description": "Трансляции Модель Для Сборки
музыка",
"server_name": "Модель для сборки - музыка",
"server_type": "audio/mpeg",
"stream_start": "Fri, 15 May 2015 16:25:33 +0300",
"stream_start_iso8601": "2015-05-15T16:25:33+0300",
"title": -,
"dummy": null
},
{
"audio_info": "channels=2;samplerate=44100;bitrate=192",
"channels": 2,
"genre": "various",
"listener_peak": 10,
"listeners": 9,
"listenurl": "http://mds.planeset.ru:8000/mds_voice.mp3",
"samplerate": 44100,
"server_description": "Трансляции Модель Для Сборки -
голос",
"server_name": "Модель для сборки - голос",
"server_type": "audio/mpeg",
"stream_start": "Fri, 15 May 2015 16:25:33 +0300",
"stream_start_iso8601": "2015-05-15T16:25:33+0300",
"title": "Фред Саберхаген - Доброжил",
"dummy": null
}
]
}
}
```
This is example of json, as You can see in first case I have `title: -` because of it I can not json_decode.
There is file xml2json.xslt from Doeke Zanstra [https://github.com/doekman/xml2json-xslt][1] on server. This file, I guess, convert xml to json and maybe there is a way to add new rule to convert `-` to `null` in blank `title` line, but I don't know how I can do it.
[1]: https://github.com/doekman/xml2json-xsltIcecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/ogg/-/issues/2197Ten off by one errors ?2019-08-13T16:56:04ZDavid BindermanTen off by one errors ?[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 dest...[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:155Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/libao/-/issues/2196ao_open_file: Race condition in checking for file2017-11-03T10:00:01ZRaúl Salinas-Monteagudoao_open_file: Race condition in checking for fileWhen "not overwrite" is specified, [ao_open_file()](https://trac.xiph.org/browser/trunk/ao/src/audio_out.c#L1352) will try to first open it for reading and this does not fail, open it for writing.
```
if (!overwrite) {
/* Test for fil...When "not overwrite" is specified, [ao_open_file()](https://trac.xiph.org/browser/trunk/ao/src/audio_out.c#L1352) will try to first open it for reading and this does not fail, open it for writing.
```
if (!overwrite) {
/* Test for file existence */
file = fopen(filename, "r");
if (file != NULL) {
fclose(file);
errno = AO_EFILEEXISTS;
return NULL;
}
}
file = fopen(filename, "w");
```
There is a [TOCTTOU](http://en.wikipedia.org/wiki/Time_of_check_to_time_of_use) condition, the file could have been created by someone else after the check.
A non-racy way to create it would be to use
```
file=fopen(filename, "wx");
```
and checking for the errno E_EXIST.
If this is not portable enough, open( ... , O_CREAT|O_EXCL) could be used.Monty MontgomeryMonty Montgomery