Vorbis issueshttps://gitlab.xiph.org/xiph/vorbis/-/issues2017-04-08T10:58:44Zhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1555[PATCH] add some newline chars2017-04-08T10:58:44ZEldar[PATCH] add some newline charsMonty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1549Vorbis floor0 lsp optimization impacts precision2017-04-08T10:58:44ZSiarhei SiamashkaVorbis floor0 lsp optimization impacts precisionIt might be a good idea to have better precision for those few
floor0 vorbis files that are available in the wild.
Additionally, if the primary purpose of libvorbis is to be a
good reference implementation, having code that produces res...It might be a good idea to have better precision for those few
floor0 vorbis files that are available in the wild.
Additionally, if the primary purpose of libvorbis is to be a
good reference implementation, having code that produces results
similar to any other correct vorbis decoder, developed by strictly
following vorbis specification can prevent some confusion.
This problem with precision was discovered when testing ffvorbis decoder.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1548output of vorbis 'decoder_example' is inconsistent with 'oggdec'2017-04-08T10:58:44ZSiarhei Siamashkaoutput of vorbis 'decoder_example' is inconsistent with 'oggdec'Conversion from float to int in 'decoder_example' is quite different from what is used in 'vorbis_ftoi' function. It's better to fix this inconsistency. Patch is attached.Conversion from float to int in 'decoder_example' is quite different from what is used in 'vorbis_ftoi' function. It's better to fix this inconsistency. Patch is attached.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1547vorbis_fpu_setround is broken2017-04-08T10:58:44ZSiarhei Siamashkavorbis_fpu_setround is broken'vorbis_fpu_setround' from 'os.h' does something weird. At least it does not do anything useful. It would probably make sense to have "andw" instruction instead of "orw" (to force rounding to nearest), but considering that the code was i...'vorbis_fpu_setround' from 'os.h' does something weird. At least it does not do anything useful. It would probably make sense to have "andw" instruction instead of "orw" (to force rounding to nearest), but considering that the code was in a broken state for ages and nobody cared, does it even have any sense to have this function at all?
There is also SSE2 code and it does not have vorbis_fpu_setround counterpart (that would be only a problem if it is really needed of course).
Additional information to consider is that FPU performs rounding to nearest, but ties to even (for example, 0.5 is rounded to 0). It means that code 'return (int)floor(f+.5)' from the generic path is not completely identical to x87/SSE2 optimized versions.
A testcase attached.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1523Patch to fix vorbis docbook compilation on trunk2017-04-08T10:58:44ZMax HornPatch to fix vorbis docbook compilation on trunkCurrently, building the docs on trunk is broken. The attached patch corrects this. First off, I replace some PNGs with recompressed versions (I used advpng -z4; if you want, you can just run that on all PNG files in doc/ instead of copyi...Currently, building the docs on trunk is broken. The attached patch corrects this. First off, I replace some PNGs with recompressed versions (I used advpng -z4; if you want, you can just run that on all PNG files in doc/ instead of copying the ones I attached).
Then I changed Makefile.am to use fop instead of pdfxmltex to build the PDF file. This works pretty well (with the exception of the PNG weirdness I mentioned).
As far as I can tell, this is one of the major blockers for new libvorbis 1.2.x releases.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1496[PATCH] Mark few constant tables as constant2017-04-08T10:58:44ZEldar[PATCH] Mark few constant tables as constantThe Ticket #1291 applies to not all constant tables. I founded a few constant tables, which is not with const-modificator.The Ticket #1291 applies to not all constant tables. I founded a few constant tables, which is not with const-modificator.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1493[PATCH] Patch to fix division by zero bug (from Aoyumi)2017-04-08T10:58:44ZGitlab Bot[PATCH] Patch to fix division by zero bug (from Aoyumi)Hi, dear developers!
I founded this patch in aoTuV b5.61 update test patch.
This bug also described in Ticket #1377.Hi, dear developers!
I founded this patch in aoTuV b5.61 update test patch.
This bug also described in Ticket #1377.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1456CVE-2008-1420 patch breaks decoding of 1.0beta1 files2017-04-08T10:58:44ZmgoldCVE-2008-1420 patch breaks decoding of 1.0beta1 fileslibvorbis is no longer able to play files encoded with the 1.0beta1 encoder because of the changes made to res0.c in changeset [14598]. This was initially filed in the Debian BTS because I didn't realize the same change had been made to ...libvorbis is no longer able to play files encoded with the 1.0beta1 encoder because of the changes made to res0.c in changeset [14598]. This was initially filed in the Debian BTS because I didn't realize the same change had been made to the libvorbis trunk:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504421
A sample file is attached to that report.
I added some debugging statements and found it was the final (partvals != entries) check failing:
```
partvals (784) != entries (900); origdim=2 partitions=28
```
http://xiph.org/vorbis/ states "The bitstream format for Vorbis I was frozen Monday, May 8th 2000. All bitstreams encoded since will remain compatible with all future releases of Vorbis." It looks like 1.0beta1 was released on or after 2000-05-12, so files encoded by it should still be decodable.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1377float point exception (division by zero)2017-04-08T10:58:44Zdancefloat point exception (division by zero)Hello guys,
I found bug in vorbis lib, float point division by zero exception under C++ Builder 6.
In C++ Builder by default turn on exceptions with invalid float point operations.
Bug
Vorbis version 1.2.0
file: floor1.c
line: 510
sta...Hello guys,
I found bug in vorbis lib, float point division by zero exception under C++ Builder 6.
In C++ Builder by default turn on exceptions with invalid float point operations.
Bug
Vorbis version 1.2.0
file: floor1.c
line: 510
static void fit_line(lsfit_acc *a,int fits,int *y0,int *y1)
{
...
double denom = 1./(an*fx2-fx*fx); //in some situation an*fx2-fx*fx can be 0.
// I change this line like
//double denom = (0. == (an*fx2-fx*fx)) ? 0:1./(an*fx2-fx*fx);
...
}Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1370GCC on OS/2 does not support -Wextra2017-04-08T10:58:44Zdave.r.yeoGCC on OS/2 does not support -WextraHi, pulling svn code and attempting to build vorbis results in an error about GCC not understanding -Wextra. GCC is version 3.3.5
Simplest fix I could think of is in attached patch
Dave Yeo
dave.r.yeo@gmail.comHi, pulling svn code and attempting to build vorbis results in an error about GCC not understanding -Wextra. GCC is version 3.3.5
Simplest fix I could think of is in attached patch
Dave Yeo
dave.r.yeo@gmail.comMonty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1361[PATCH] Vorbis x64 with MS V.Studio 2005+ compile fix2017-04-08T10:58:44ZDmitryKos[PATCH] Vorbis x64 with MS V.Studio 2005+ compile fixHello!
Vorbis library does not compile out of box under MS Studio 2005+ for x64 platform, failing on vorbis_ftoi. Generic fix for this issue is to wrap win32 platform to avoid compiler error as following:
in: os.h
static __inline int ...Hello!
Vorbis library does not compile out of box under MS Studio 2005+ for x64 platform, failing on vorbis_ftoi. Generic fix for this issue is to wrap win32 platform to avoid compiler error as following:
in: os.h
static __inline int vorbis_ftoi(double f){
#ifdef _M_IX86
int i;
__asm{
fld f
fistp i
}
return i;
#else
return (int)(f+.5);
#endif
}
Best regards,
Dmitry Kostjuchenko.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1352[PATCH] enable filter callback in ov_read()2017-04-08T10:58:44ZGitlab Bot[PATCH] enable filter callback in ov_read()Adding a separate ticket for libvorbis component of #381.Adding a separate ticket for libvorbis component of #381.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1291[PATCH] Mark all the constant tables as constant2017-04-08T10:58:44ZDiego Elio Pettenò[PATCH] Mark all the constant tables as constantThe current status of libvorbis (and especially of libvorbisenc) is not one of the best for shared libraries, as it contains a lot of static and non-static non-constant tables, which are never ever modified.
I'm attaching a patch that m...The current status of libvorbis (and especially of libvorbisenc) is not one of the best for shared libraries, as it contains a lot of static and non-static non-constant tables, which are never ever modified.
I'm attaching a patch that marks all the tables as constant, so that they can be moved to .rodata and thus reduce the memory occupation of libvorbis and libvorbisenc. In particular, libvorbisenc had over 1.5MB of non-constant tables, which are now all constant.
The patch applies fine over current SVN trunk, although it cause an huge amount of warnings at the moment because a lot of structures request a "foo*" rather than "const foo*" even when they don't modify the content. Also functions don't always request "const foo*", so there are quite a few warnings thrown in for that too.
I fixed quite a few of them, but I just couldn't fix all of them at once, the size of the patch is already massive, and I risked to have it fail on SVN if I started fixing all of them. Please don't reject the patch for that, as it would be nitpickery against a fix that's very much useful.
If you want, after you applied this patch I can prepare a new one to shut up the warnings.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1290[PATCH] Remove unused static seq variable2017-04-08T10:58:44ZDiego Elio Pettenò[PATCH] Remove unused static seq variableThere are two static seq variables in floor1.c, one is totally unused, the other is only ever written to. The attached patch gets rid of them to avoid copy-on-write.There are two static seq variables in floor1.c, one is totally unused, the other is only ever written to. The attached patch gets rid of them to avoid copy-on-write.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1265libvorbis-1.2.0 won't build under OS X 10.52017-04-08T10:58:44ZJeff Lyonlibvorbis-1.2.0 won't build under OS X 10.5libvorbis-1.2.0 won't build under OS X 10.5:
$ ./configure
checking build system type... powerpc-apple-darwin9.1.0
checking host system type... powerpc-apple-darwin9.1.0
checking target system type... powerpc-apple-darwin9.1.0
checking ...libvorbis-1.2.0 won't build under OS X 10.5:
$ ./configure
checking build system type... powerpc-apple-darwin9.1.0
checking host system type... powerpc-apple-darwin9.1.0
checking target system type... powerpc-apple-darwin9.1.0
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
file config.log was not created, so no further information in this error is available.
Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1263Add filter support to vorbis decoding2017-04-08T10:58:44ZwilliampoetraAdd filter support to vorbis decodingWHAT:
Support for specifying a filter function when decoding a vorbis stream. The filter function can do anything to the stream, like for example applying ReplayGain.
WHEN:
Done. Had been sitting on my disk for a couple of months no...WHAT:
Support for specifying a filter function when decoding a vorbis stream. The filter function can do anything to the stream, like for example applying ReplayGain.
WHEN:
Done. Had been sitting on my disk for a couple of months now.
WHY:
I wanted to add ReplayGain (VorbisGain) support to ogg123, and found that everything could be made remarkably simpler if we can have a filter function available.
HOW:
See attached patch. It's quite simple, actually: Just create a function ov_read_filter() with the same parameters as ov_read() except that ov_read_filter() takes two extra arguments: a pointer to the filter function (filter()) and a pointer to the data to be passed to the filter function (filter_param).
The filter function takes four arguments: 1. pointer to buffer containing the pcm samples in floating point format, 2. the number of channels, 3. the number of samples, and 4. the data (filter_param). The data passed in filter_param can be anything and is to be decided by the application. In my case, I used it to implement ReplayGain in ogg123 (the implementation is basically a much stripped-down version of vgplay).
WHO:
Me. williampoetra at gmail dot com
I would love to see this patch merged. Comments and suggestion please.
Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1258Add defines to exclude encoder specific parts from library2017-04-08T10:58:44ZGitlab BotAdd defines to exclude encoder specific parts from librarySeveral things can be removed from the library at compile time by using #defines if only a vorbis decoder is needed. These include, but are not limted to:
* Floor packer + Floor forward function
* Residue packer + Residue forward func...Several things can be removed from the library at compile time by using #defines if only a vorbis decoder is needed. These include, but are not limted to:
* Floor packer + Floor forward function
* Residue packer + Residue forward function
* Mapping packer + Mapping forward function
* Codebook packer/encoder
* Bitrate management (bitrate.c)
* vorbis_block_internal and functions that deal with it.
* Envelope code (envelope.c)
* Psychoaucostic model code (psy.c)
* Analysis file (analysis.c)
* info packers (info.c)
* smallft.c
This reduces the size of the generated code from >100kb to ~60kb.
Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1232[PATCH] Add -Wdeclaration-after-statement to CFLAGS2017-04-08T10:58:44Zmle[PATCH] Add -Wdeclaration-after-statement to CFLAGSgcc-4.1 seems to default to conforming to the C99 standard which allows declarations after statements, ie
```
void whatever (int param)
{
if (param == 0)
return ;
int a = 10 ;
return a ;
}
```
The above is reported as...gcc-4.1 seems to default to conforming to the C99 standard which allows declarations after statements, ie
```
void whatever (int param)
{
if (param == 0)
return ;
int a = 10 ;
return a ;
}
```
The above is reported as an error in compilers which conform to earlier C standards.
The problem is that anyone working with a C99 compiler can accidentally commit code that breaks the compile for some other compilers.
The solution (at least for C99) is to compile with the -Wdeclaration-after-statement CFLAG, but not all versions of gcc recognise that flag. Fortunately its possible to detect whether gcc accepts this CFLAG at configure time.
Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1228[Patch] Const correct tags functions2017-04-08T10:58:44Zmle[Patch] Const correct tags functionsI tend to compile my code with all GCC warnings turned on. However,
when I do this :
vorbis_comment_add_tag(&vdata->vc,"ENCODER","libsndfile");
I get the following warning messages:
warning: passing argument 2 of 'vorbis_comme...I tend to compile my code with all GCC warnings turned on. However,
when I do this :
vorbis_comment_add_tag(&vdata->vc,"ENCODER","libsndfile");
I get the following warning messages:
warning: passing argument 2 of 'vorbis_comment_add_tag' discards
qualifiers from pointer target type
warning: passing argument 3 of 'vorbis_comment_add_tag' discards
qualifiers from pointer target type
The problem is that string literals like "ENCODER" are be const
char * while vorbis_comment_add_tag is prototyped as having char *
pointers, even though the strings pointed to are not modified.
The following patch (against SVN head) makes the libvorbis const
correct.
Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/1204bad quality2017-04-08T10:58:44Zselindosbad qualityAt decoding ogg in wav and then coding in ogg very bad quality. Please correct a mistakeAt decoding ogg in wav and then coding in ogg very bad quality. Please correct a mistakeMonty MontgomeryMonty Montgomery