Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2020-07-04T02:02:58Zhttps://gitlab.xiph.org/xiph/vorbis/-/issues/2341Broken MSDN links2020-07-04T02:02:58ZRalph GilesBroken MSDN linksThe api docs link to msdn.microsoft.com for details of how the Visual Studio 8 standard library handles stdin/out. Those links no longer work. They pages are still available through archive.org, but the docs should be reviewed to see if ...The api docs link to msdn.microsoft.com for details of how the Visual Studio 8 standard library handles stdin/out. Those links no longer work. They pages are still available through archive.org, but the docs should be reviewed to see if the details are still correct. Behaviour may well have changed in the intervening decade.https://gitlab.xiph.org/xiph/opus-tools/-/issues/2314Release new version (and builds) with the libopusenc gapless bug fixed2020-07-05T02:18:05ZAmanRelease new version (and builds) with the libopusenc gapless bug fixedlibopusenc 0.2.1 includes xiph/libopusenc@a852e9fbfd7c360e9078d124e73ec6eef2665148, which fixed a bug with encoding tracks gaplessly. It will be great if you can cut a new release with this included.libopusenc 0.2.1 includes xiph/libopusenc@a852e9fbfd7c360e9078d124e73ec6eef2665148, which fixed a bug with encoding tracks gaplessly. It will be great if you can cut a new release with this included.https://gitlab.xiph.org/xiph/vorbis/-/issues/2334Stack buffer overflow(read) in function bark_noise_hybridmp() of libvorbis-1....2020-07-06T20:52:22ZJiangxinStack buffer overflow(read) in function bark_noise_hybridmp() of libvorbis-1.3.6, which is caused by lacking of array length check.I found a stack buffer overflow vul in function bark_noise_hybridmp() of libvorbis-1.3.6 by fuzzing libtheora, the crash sample behaves as follows:
```
(gdb) bt
#0 0x00007ffff6fdfb55 in raise () from /lib64/libc.so.6
#1 0x00007ffff6fe...I found a stack buffer overflow vul in function bark_noise_hybridmp() of libvorbis-1.3.6 by fuzzing libtheora, the crash sample behaves as follows:
```
(gdb) bt
#0 0x00007ffff6fdfb55 in raise () from /lib64/libc.so.6
#1 0x00007ffff6fe1131 in abort () from /lib64/libc.so.6
#2 0x0000000000520a0b in __sanitizer::Abort () at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc:146
#3 0x000000000051eb3a in __sanitizer::Die () at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc:59
#4 0x00000000005051a5 in ~ScopedInErrorReport (this=<optimized out>, __in_chrg=<optimized out>) at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/asan/asan_report.cc:225
#5 __asan::ReportGenericError (pc=<optimized out>, bp=bp@entry=140737488322736, sp=sp@entry=140737488322728, addr=<optimized out>, is_write=is_write@entry=false, access_size=access_size@entry=4, exp=<optimized out>, exp@entry=0, fatal=<optimized out>, fatal@entry=true) at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/asan/asan_report.cc:420
#6 0x0000000000505c03 in __asan::__asan_report_load4 (addr=<optimized out>) at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/asan/asan_rtl.cc:133
#7 0x000000000062cc6d in bark_noise_hybridmp (n=256, b=0x61d000000a80, f=0x61d000007c80, noise=0x619000005a80, offset=140, fixed=-1) at psy.c:608
#8 0x000000000062b3fb in _vp_noisemask (p=0x610000000040, logmdct=0x61d000007c80, logmask=0x619000005a80) at psy.c:705
#9 0x000000000069ff59 in mapping0_forward (vb=0x7fffffffd330) at mapping0.c:417
#10 0x00000000006244af in vorbis_analysis (vb=0x7fffffffd330, op=0x0) at analysis.c:46
#11 0x000000000052f14e in fetch_and_process_audio (audio=0x616000000380, audiopage=0x7fffffffd5e0, vo=0x7fffffffceb0, vd=0x7fffffffd260, vb=0x7fffffffd330, audioflag=0) at encoder_example.c:996
#12 0x0000000000536546 in main (argc=5, argv=0x7fffffffdfe8) at encoder_example.c:1754
```
This vul is because of lacking of array len check , and I recommand a patch as follows:
psy.c:
```
602 for (i = 0, x = 0.f;; i++, x += 1.f) {
603
604 lo = b[i] >> 16;
605 if( lo>=0 ) break;
606 hi = b[i] & 0xffff;
607 if(hi>=n || -lo>=n)break;//recommanded patch for this vul
608 tN = N[hi] + N[-lo];
609 tX = X[hi] - X[-lo];
610 tXX = XX[hi] + XX[-lo];
611 tY = Y[hi] + Y[-lo];
612 tXY = XY[hi] - XY[-lo];
```
Note: I need compile libtheora and libvorbis by clang asan and use encoder_example of libtheora to reproduce this vul.
The cmdline to reproduce this vul is like this :
./encoder_example crash_sample xxx.y4m -o out.ogv
The binary encoder_example belongs to libtheora.Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/vorbis/-/issues/2342Getting undefined reference to `_impure_ptr' on mingw compilation2020-07-08T14:20:51ZMoritz BenderGetting undefined reference to `_impure_ptr' on mingw compilationI downloaded the libvorbis-1.3.7 tarball because I wanted to statically compile it. Compiling on mingw fails, with the main error being this:
```
make[3]: Entering directory '/g/Downloads/libvorbis-1.3.7/lib'
CCLD test_sharedbook.e...I downloaded the libvorbis-1.3.7 tarball because I wanted to statically compile it. Compiling on mingw fails, with the main error being this:
```
make[3]: Entering directory '/g/Downloads/libvorbis-1.3.7/lib'
CCLD test_sharedbook.exe
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: test_sharedbook-sharedbook.o:sharedbook.c:(.rdata$.refptr._impure_ptr[.refptr._impure_ptr]+0x0): undefined reference to `_impure_ptr'
collect2.exe: error: ld returned 1 exit status
```
Compilation did work on my wsl, so I'm not sure what this is about. I managed to get the static library by make -j ing, but I'd still like to know why this part fails and whether there is a way to avoid this.https://gitlab.xiph.org/xiph/Infrastructure/-/issues/2232mf5 requirements2020-07-13T16:20:45ZRalph Gilesmf5 requirements# Xiph.Org Service Requirements
With the failure of mf4, we have a decision to make about where we want to run our services.
Most essential things have been migrated to catfish. For remaining bits, please add to the list below and help...# Xiph.Org Service Requirements
With the failure of mf4, we have a decision to make about where we want to run our services.
Most essential things have been migrated to catfish. For remaining bits, please add to the list below and help prioritize.
Several options going forward
- re-install mf4 from scratch, have backups for when it fails again.
- Buy a replacement server (or several).
- Must have remote console support.
- osuosl prefers Dell PowerEdge.
- Use osuosl's openstack cluster.
- Redundant storage (but no geographical replication)
- Don't have to maintain underlying hosts.
- Can still contribute, probably by buying drives for the Ceph cluster.
The raid failure demonstrates we've not been doing a good job with administration. Whatever we do going forward, we need to make sure we have automated offsite backups and that it's much easier to configure and upgrade our various services, ideally from deployment templates stored in version control. We should periodically practice service migration and restoration.
## static sites 🔶
- Partially restored from git or older svn backup + archive.org.
- Served as static html or shtml from catfish.
- Working on auto-deployment from gitlab ci.
- Should move remaining sites from svn to git.
- media.xiph.org is served from beaufish, and wasn't affected.
## dynamic websites
- gitlab.xiph.org ✅
- vm already on catfish
- wiki.xiph.org ✅
- vm aleady on catfish
- dir.xiph.org ✅
- switched to beta vm on catfish
- awcy ✅
- vm already on catfish
- svn.xiph.org
- down, lost data
- ftp.osuosl.org has a current snapshot of releases and websites
- people.xiph.org ❌
- down, lost data.
- planet.xiph.org
- anyone still blogging?
- jenkins ❌
- down, lost data.
- should replace with gitlab-ci.
- munin ❌
- down, not high priority.
- Better replacements?
- review.xiph.org 🔶
- down, have a recent backup.
- not actively used: not planning to restore.
## releases 🔶
- downloads.xiph.org redirects from catfish to ftp.osuosl.org
- ftp site has current files.
- was backed by svn, lost recent history.
- restore svn and re-populate from ftp.osuosl.org?
- alternate: git? gitlab artifacts? Some other object store?
## shell server
- Several people used shell accounts on mf4.
- Do we need to keep providing this?
- Alternate: per-user containers? kubernetes?
## email ✅
- mail and lists already on a catfish vm.
## dns 🔶
- catfish temporarily authoritative
- Need another machine to be secondary
- alternate: Use registrar or osuosl.https://gitlab.xiph.org/xiph/vorbis/-/issues/2335Four heap buffer overflow(read and write) vuls in function mapping0_forward()...2020-07-16T17:24:00ZJiangxinFour heap buffer overflow(read and write) vuls in function mapping0_forward() of libvorbis-1.3.6, which is caused by lacking of var “channels” check.I found four heap buffer overflow vuls in function mapping0_forward() of libvorbis-1.3.6 by fuzzing libtheora, one of the crash sample behaves as follows, others behave similar:
```
Program received signal SIGABRT, Aborted.
0x00007ffff6...I found four heap buffer overflow vuls in function mapping0_forward() of libvorbis-1.3.6 by fuzzing libtheora, one of the crash sample behaves as follows, others behave similar:
```
Program received signal SIGABRT, Aborted.
0x00007ffff6fdfb55 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x00007ffff6fdfb55 in raise () from /lib64/libc.so.6
#1 0x00007ffff6fe1131 in abort () from /lib64/libc.so.6
#2 0x0000000000520a0b in __sanitizer::Abort () at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc:146
#3 0x000000000051eb3a in __sanitizer::Die () at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc:59
#4 0x00000000005051a5 in ~ScopedInErrorReport (this=<optimized out>, __in_chrg=<optimized out>) at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/asan/asan_report.cc:225
#5 __asan::ReportGenericError (pc=<optimized out>, bp=bp@entry=140737488324304, sp=sp@entry=140737488324296, addr=<optimized out>, is_write=is_write@entry=false, access_size=access_size@entry=4, exp=<optimized out>, exp@entry=0, fatal=<optimized out>, fatal@entry=true) at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/asan/asan_report.cc:420
#6 0x0000000000505c03 in __asan::__asan_report_load4 (addr=<optimized out>) at /home/jiangxin/hunter-tool/llvm5/projects/compiler-rt/lib/asan/asan_rtl.cc:133
#7 0x000000000069fac3 in mapping0_forward (vb=0x7fffffffd330) at mapping0.c:370
#8 0x00000000006244af in vorbis_analysis (vb=0x7fffffffd330, op=0x0) at analysis.c:46
#9 0x000000000052f14e in fetch_and_process_audio (audio=0x616000000380, audiopage=0x7fffffffd5e0, vo=0x7fffffffceb0, vd=0x7fffffffd260, vb=0x7fffffffd330, audioflag=0) at encoder_example.c:996
#10 0x0000000000536546 in main (argc=5, argv=0x7fffffffdfe8) at encoder_example.c:1754
(gdb)
```
These vuls are because of lacking of var “channels” check”, and here is the details of these four vuls in mapping0.c:
vul 1: line 370 of mapping0.c
```
366 for(i=0;i<vi->channels;i++){
367 /* the encoder setup assumes that all the modes used by any
368 specific bitrate tweaking use the same floor */
369
370 int submap=info->chmuxlist[i];//int array[256] oob read, vi->channels need check
```
vul 2: line 614 of mapping0.c
```
612 /* encode floor, compute masking curve, sep out residue */
613 for(i=0;i<vi->channels;i++){
614 int submap=info->chmuxlist[i];//int array[256] oob read, vi->channels need check
615 int *ilogmask=iwork[i];
```
vul 3 and 4: line 666 and 678 of mapping0.c
```
665 for(j=0;j<vi->channels;j++){
666 if(info->chmuxlist[j]==i){//int array[256] oob write, vi->channels need check
667 zerobundle[ch_in_bundle]=0;
668 if(nonzero[j])zerobundle[ch_in_bundle]=1;
669 couple_bundle[ch_in_bundle++]=iwork[j];
670 }
671 }
672
673 classifications=_residue_P[ci->residue_type[resnum]]->
674 class(vb,b->residue[resnum],couple_bundle,zerobundle,ch_in_bundle);
675
676 ch_in_bundle=0;
677 for(j=0;j<vi->channels;j++)
678 if(info->chmuxlist[j]==i)//int array[256] oob write, vi->channels need check
679 couple_bundle[ch_in_bundle++]=iwork[j];
680
681 _residue_P[ci->residue_type[resnum]]->
682 forward(opb,vb,b->residue[resnum],
683 couple_bundle,zerobundle,ch_in_bundle,classifications,i);
```
Note: I need compile libtheora and libvorbis by clang asan and use encoder_example of libtheora to reproduce this vul.
The cmdline to reproduce this vul is like this :
./encoder_example crash_sample xxx.y4m -o out.ogv
The binary encoder_example belongs to libtheora.
recommanded patch : adding on line 238 of mapping0.c
```
230 static int mapping0_forward(vorbis_block *vb){
231 vorbis_dsp_state *vd=vb->vd;
232 vorbis_info *vi=vd->vi;
233 codec_setup_info *ci=vi->codec_setup;
234 private_state *b=vb->vd->backend_state;
235 vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal;
236 int n=vb->pcmend;
237 int i,j,k;
238 if(vi->channels > MAX_CHANNEL || vi->channels < 0) return -1;//recommanded patch for these vuls
```https://gitlab.xiph.org/xiph/speex/-/issues/2039fixed-point-debug fails to build2020-07-23T15:12:53ZTristan Matthewsfixed-point-debug fails to build```
./autogen.sh && ./configure --enable-fixe-point-debug && make V=99
# some time later...
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -no-undefined -version-info 6:1:5 -o libspeex.la -rpath /us...```
./autogen.sh && ./configure --enable-fixe-point-debug && make V=99
# some time later...
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -no-undefined -version-info 6:1:5 -o libspeex.la -rpath /usr/local/lib cb_search.lo exc_10_32_table.lo exc_8_128_table.lo filters.lo gain_table.lo hexc_table.lo high_lsp_tables.lo lsp.lo ltp.lo speex.lo stereo.lo vbr.lo vq.lo bits.lo exc_10_16_table.lo exc_20_32_table.lo exc_5_256_table.lo exc_5_64_table.lo gain_table_lbr.lo hexc_10_32_table.lo lpc.lo lsp_tables_nb.lo modes.lo modes_wb.lo nb_celp.lo quant_lsp.lo sb_celp.lo speex_callbacks.lo speex_header.lo window.lo -lm
libtool: link: gcc -shared -fPIC -DPIC .libs/cb_search.o .libs/exc_10_32_table.o .libs/exc_8_128_table.o .libs/filters.o .libs/gain_table.o .libs/hexc_table.o .libs/high_lsp_tables.o .libs/lsp.o .libs/ltp.o .libs/speex.o .libs/stereo.o .libs/vbr.o .libs/vq.o .libs/bits.o .libs/exc_10_16_table.o .libs/exc_20_32_table.o .libs/exc_5_256_table.o .libs/exc_5_64_table.o .libs/gain_table_lbr.o .libs/hexc_10_32_table.o .libs/lpc.o .libs/lsp_tables_nb.o .libs/modes.o .libs/modes_wb.o .libs/nb_celp.o .libs/quant_lsp.o .libs/sb_celp.o .libs/speex_callbacks.o .libs/speex_header.o .libs/window.o -lm -g -O2 -Wl,-soname -Wl,libspeex.so.1 -o .libs/libspeex.so.1.5.1
libtool: link: (cd ".libs" && rm -f "libspeex.so.1" && ln -s "libspeex.so.1.5.1" "libspeex.so.1")
libtool: link: (cd ".libs" && rm -f "libspeex.so" && ln -s "libspeex.so.1.5.1" "libspeex.so")
libtool: link: ar cru .libs/libspeex.a cb_search.o exc_10_32_table.o exc_8_128_table.o filters.o gain_table.o hexc_table.o high_lsp_tables.o lsp.o ltp.o speex.o stereo.o vbr.o vq.o bits.o exc_10_16_table.o exc_20_32_table.o exc_5_256_table.o exc_5_64_table.o gain_table_lbr.o hexc_10_32_table.o lpc.o lsp_tables_nb.o modes.o modes_wb.o nb_celp.o quant_lsp.o sb_celp.o speex_callbacks.o speex_header.o window.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libspeex.a
libtool: link: ( cd ".libs" && rm -f "libspeex.la" && ln -s "../libspeex.la" "libspeex.la" )
gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include/speex -I.. -g -O2 -fvisibility=hidden -Wall -MT testenc.o -MD -MP -MF .deps/testenc.Tpo -c -o testenc.o testenc.c
testenc.c: In function ‘main’:
testenc.c:83:7: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
fread(in_short, sizeof(short), FRAME_SIZE, fin);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/testenc.Tpo .deps/testenc.Po
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -fvisibility=hidden -Wall -o testenc testenc.o libspeex.la -lm
libtool: link: gcc -g -O2 -fvisibility=hidden -Wall -o .libs/testenc testenc.o ./.libs/libspeex.so -lm
testenc.o: In function `main':
/home/tmatth/speex/libspeex/testenc.c:136: undefined reference to `spx_mips'
collect2: error: ld returned 1 exit status
Makefile:510: recipe for target 'testenc' failed
make[2]: *** [testenc] Error 1
make[2]: Leaving directory '/home/tmatth/speex/libspeex'
Makefile:508: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/tmatth/speex'
Makefile:394: recipe for target 'all' failed
make: *** [all] Error 2
```
Other info:
```
~/speex/libspeex$ nm testenc.o
U exit
U fclose
U feof
U fopen
U __fprintf_chk
U fread
U fwrite
U _GLOBAL_OFFSET_TABLE_
0000000000000000 r .LC1
0000000000000044 r .LC10
0000000000000000 r .LC2
0000000000000003 r .LC3
0000000000000007 r .LC4
000000000000000a r .LC5
0000000000000000 r .LC6
0000000000000000 r .LC7
0000000000000027 r .LC8
0000000000000008 r .LC9
U log10
0000000000000000 T main
U __printf_chk
U rewind
U speex_bits_destroy
U speex_bits_init
U speex_bits_reset
U speex_bits_rewind
U speex_bits_write
U speex_decode_int
U speex_decoder_ctl
U speex_decoder_destroy
U speex_decoder_init
U speex_encode_int
U speex_encoder_ctl
U speex_encoder_destroy
U speex_encoder_init
U speex_nb_mode
U speex_std_char_handler
U speex_std_mode_request_handler
U spx_mips
U __stack_chk_fail
U stderr
```
and
```
nm .libs/libspeex.so
U acos@@GLIBC_2.2.5
0000000000014fe0 r attenuation
0000000000218120 B __bss_start
0000000000004420 t bw_lpc
U calloc@@GLIBC_2.2.5
0000000000014800 r cdbk_nb
0000000000014440 r cdbk_nb_high1
0000000000014300 r cdbk_nb_high2
00000000000146c0 r cdbk_nb_low1
0000000000014580 r cdbk_nb_low2
0000000000218120 b completed.7696
00000000000049a0 t compute_impulse_response
000000000000dbb0 t compute_quant_weights
0000000000004700 t compute_rms
0000000000004780 t compute_rms16
0000000000002840 t compute_weighted_codebook.isra.0
w __cxa_finalize@@GLIBC_2.2.5
0000000000002760 t deregister_tm_clones
00000000000027f0 t __do_global_dtors_aux
00000000002173f8 t __do_global_dtors_aux_fini_array_entry
0000000000218118 d __dso_handle
0000000000217d98 d _DYNAMIC
0000000000218120 D _edata
0000000000218130 B _end
0000000000013280 r e_ratio_quant
0000000000013270 r e_ratio_quant_bounds
00000000000137c0 r exc_10_16_table
0000000000012120 r exc_10_32_table
0000000000013860 r exc_20_32_table
0000000000013ae0 r exc_5_256_table
0000000000013fe0 r exc_5_64_table
0000000000012260 r exc_8_128_table
0000000000015008 r exc_gain_quant_scal1
0000000000015010 r exc_gain_quant_scal1_bound
0000000000015020 r exc_gain_quant_scal3
0000000000015040 r exc_gain_quant_scal3_bound
U exit@@GLIBC_2.2.5
U exp@@GLIBC_2.2.5
0000000000004160 t filter_mem16
0000000000003fb0 t filter_mem16_10
00000000000040c0 t filter_mem16_8
00000000000120b8 T _fini
0000000000004400 t fir_mem16
00000000000042d0 t fir_mem16_10
0000000000004390 t fir_mem16_8
00000000000155a0 r fold_quant_bound
00000000000077d0 t forced_pitch_quant
0000000000007990 t forced_pitch_unquant
U __fprintf_chk@@GLIBC_2.3.4
U fputc@@GLIBC_2.2.5
0000000000002830 t frame_dummy
00000000002173f0 t __frame_dummy_init_array_entry
0000000000017378 r __FRAME_END__
U free@@GLIBC_2.2.5
0000000000014120 r gain_cdbk_lbr
0000000000012720 r gain_cdbk_nb
0000000000015620 r gc_quant_bound
0000000000218000 d _GLOBAL_OFFSET_TABLE_
w __gmon_start__
0000000000015a6c r __GNU_EH_FRAME_HDR
00000000000154a0 r h0
00000000000141a0 r hexc_10_32_table
0000000000012920 r hexc_table
0000000000012f20 r high_lsp_cdbk
0000000000012d20 r high_lsp_cdbk2
00000000000044b0 t highpass
00000000000042b0 t iir_mem16
0000000000004180 t iir_mem16_10
0000000000004240 t iir_mem16_8
00000000000024e0 T _init
0000000000005dd0 t inner_prod
0000000000003d80 t interp_pitch.constprop.0
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
0000000000015a40 r lag_window
U log@@GLIBC_2.2.5
0000000000005500 t lpc_to_lsp
0000000000015720 r lpc_window
0000000000005cc0 t lsp_interpolate
000000000000dd20 t lsp_quant.constprop.1
000000000000e6f0 t lsp_quant_high
000000000000e2f0 t lsp_quant_lbr
000000000000dde0 t lsp_quant_nb
0000000000005a50 t lsp_to_lpc
000000000000e950 t lsp_unquant_high
000000000000e580 t lsp_unquant_lbr
000000000000e0b0 t lsp_unquant_nb
000000000000dc60 t lsp_weight_quant.constprop.0
0000000000217910 d ltp_params_lbr
0000000000217900 d ltp_params_med
0000000000217930 d ltp_params_nb
0000000000217920 d ltp_params_vlbr
U memcpy@@GLIBC_2.14
U memmove@@GLIBC_2.2.5
U memset@@GLIBC_2.2.5
0000000000005110 t multicomb
000000000000c760 t nb_decode
000000000000c3d0 t nb_decoder_ctl
000000000000c3c0 t nb_decoder_destroy
000000000000c290 t nb_decoder_init
000000000000a770 t nb_encode
000000000000a0f0 t nb_encoder_ctl
000000000000a0d0 t nb_encoder_destroy
0000000000009f60 t nb_encoder_init
0000000000217400 d nb_mode
0000000000007cc0 t nb_mode_query
00000000002177e0 d nb_submode1
0000000000217720 d nb_submode2
00000000002176c0 d nb_submode3
0000000000217660 d nb_submode4
0000000000217600 d nb_submode5
00000000002175a0 d nb_submode6
0000000000217540 d nb_submode7
0000000000217780 d nb_submode8
0000000000003c50 t noise_codebook_quant
0000000000003d10 t noise_codebook_unquant
0000000000006000 t open_loop_nbest_pitch
00000000000065a0 t pitch_search_3tap
0000000000007450 t pitch_unquant_3tap
0000000000005e40 t pitch_xcorr
U pow@@GLIBC_2.2.5
0000000000004b60 t qmf_decomp
0000000000004dc0 t qmf_synth
U realloc@@GLIBC_2.2.5
00000000000027a0 t register_tm_clones
00000000000048a0 t residue_percep_zero16
0000000000004460 t sanitize_values32
0000000000011190 t sb_decode
000000000000eab0 t sb_decode_lost
0000000000010d30 t sb_decoder_ctl
0000000000010cd0 t sb_decoder_destroy
0000000000010b10 t sb_decoder_init
000000000000f810 t sb_encode
000000000000ef90 t sb_encoder_ctl
000000000000ef10 t sb_encoder_destroy
000000000000ec40 t sb_encoder_init
00000000002179a0 d sb_uwb_mode
0000000000217ae0 d sb_wb_mode
00000000000094f0 t scal_quant
0000000000009530 t scal_quant32
0000000000012660 r shift_filt
00000000000046c0 t signal_div
0000000000004680 t signal_mul
0000000000009b70 T speex_bits_advance
0000000000009560 T speex_bits_destroy
00000000000095a0 T speex_bits_init
00000000000095e0 T speex_bits_init_buffer
0000000000009bf0 T speex_bits_insert_terminator
0000000000009be0 T speex_bits_nbytes
00000000000098d0 T speex_bits_pack
0000000000009b30 T speex_bits_peek
0000000000009ab0 T speex_bits_peek_unsigned
0000000000009610 T speex_bits_read_from
0000000000009710 T speex_bits_read_whole_bytes
0000000000009bb0 T speex_bits_remaining
0000000000009580 T speex_bits_reset
0000000000009600 T speex_bits_rewind
0000000000009540 T speex_bits_set_bit_buffer
0000000000009a90 T speex_bits_unpack_signed
00000000000099f0 T speex_bits_unpack_unsigned
0000000000009c40 T speex_bits_write
0000000000009860 T speex_bits_write_whole_bytes
0000000000007a80 T speex_decode
0000000000007b60 T speex_decode_int
0000000000007a60 t speex_decode_native
0000000000007b50 T speex_decoder_ctl
0000000000007a40 T speex_decoder_destroy
0000000000007a20 T speex_decoder_init
00000000000082f0 T speex_decode_stereo
0000000000008470 T speex_decode_stereo_int
0000000000011de0 T speex_default_user_handler
0000000000007a70 T speex_encode
0000000000007aa0 T speex_encode_int
0000000000007a50 t speex_encode_native
0000000000007a90 T speex_encoder_ctl
0000000000007a30 T speex_encoder_destroy
0000000000007a10 T speex_encoder_init
0000000000007e50 T speex_encode_stereo
0000000000008060 T speex_encode_stereo_int
0000000000002720 t _speex_fatal.constprop.0
00000000000120b0 T speex_header_free
0000000000011f40 T speex_header_to_packet
0000000000011ae0 T speex_inband_handler
0000000000011e10 T speex_init_header
0000000000007d50 T speex_lib_ctl
0000000000009f40 T speex_lib_get_mode
0000000000217d80 D speex_mode_list
0000000000009ea0 T speex_mode_query
00000000002174e0 D speex_nb_mode
0000000000011fa0 T speex_packet_to_header
0000000000011dc0 T speex_std_char_handler
0000000000011cf0 T speex_std_enh_request_handler
0000000000011c30 T speex_std_high_mode_request_handler
0000000000011bd0 T speex_std_low_mode_request_handler
0000000000011b70 T speex_std_mode_request_handler
00000000000085f0 T speex_std_stereo_request_handler
0000000000011d50 T speex_std_vbr_quality_request_handler
0000000000011c90 T speex_std_vbr_request_handler
0000000000007e40 T speex_stereo_state_destroy
0000000000007e20 T speex_stereo_state_init
0000000000007df0 T speex_stereo_state_reset
0000000000217940 D speex_uwb_mode
0000000000217a80 D speex_wb_mode
0000000000217d60 d split_cb_high
0000000000217d40 d split_cb_high_lbr
0000000000217880 d split_cb_nb
00000000002178a0 d split_cb_nb_lbr
0000000000217860 d split_cb_nb_med
00000000002178c0 d split_cb_nb_ulbr
00000000002178e0 d split_cb_nb_vlbr
0000000000217840 d split_cb_sb
0000000000002ac0 t split_cb_search_shape_sign
0000000000003aa0 t split_cb_shape_sign_unquant
0000000000009df0 t _spx_autocorr
0000000000009cc0 t _spx_lpc
0000000000218128 b spx_mips
U sqrtf@@GLIBC_2.2.5
U sqrt@@GLIBC_2.2.5
U __stack_chk_fail@@GLIBC_2.4
U stderr@@GLIBC_2.2.5
0000000000004790 t syn_percep_zero16
0000000000218120 d __TMC_END__
00000000000086f0 t vbr_analysis
0000000000009100 t vbr_destroy
0000000000013320 r vbr_hb_thresh
0000000000008690 t vbr_init
0000000000013400 r vbr_nb_thresh
00000000000132c0 r vbr_uhb_thresh
0000000000009110 t vq_nbest
00000000000092d0 t vq_nbest_sign
0000000000009eb0 t wb_mode_query
0000000000014fc0 r wb_skip_table
0000000000217ce0 d wb_submode1
0000000000217c80 d wb_submode2
0000000000217c20 d wb_submode3
0000000000217bc0 d wb_submode4
```https://gitlab.xiph.org/xiph/opus/-/issues/2330Make decoder state completely relocatable by avoiding inline pointer to mode2020-08-06T12:42:35ZDan RavivMake decoder state completely relocatable by avoiding inline pointer to modeCurrently, Opus Decoder state can be freely moved in memory in the same process, but it can't e.g. be copied as bytes to be sent across the network and set as a state for another decoder. But it *almost* can! The only thing preventing th...Currently, Opus Decoder state can be freely moved in memory in the same process, but it can't e.g. be copied as bytes to be sent across the network and set as a state for another decoder. But it *almost* can! The only thing preventing this use case is the `mode` pointer at the start of `CELTDecoder`. A clean decoder state on one machine has identical bytes to those of a clean state on another machine with the same architecture, except for possibly the bytes of the `mode` pointer - even when the mode itself is the same.
I'm not sure how to fix this in a way compatible with any custom mode, but it would be nice to be able to do this for the default mode, at least.https://gitlab.xiph.org/xiph/opus/-/issues/2327CMake - Consistent warning levels between autotools and cmake2020-08-08T17:36:52ZMarcus AsteborgCMake - Consistent warning levels between autotools and cmakeIf things blow up on automake it should blow up on cmakeIf things blow up on automake it should blow up on cmakehttps://gitlab.xiph.org/xiph/opus/-/issues/2331Enable NEON optimizations for Windows ARM642020-08-09T04:09:13ZMarcus AsteborgEnable NEON optimizations for Windows ARM64Windows on ARM64 uses another header then the general neon one.
AC:
- Enable Neon for Windows ARM in CMake
- Fix includes
- Verify on ARM64 deviceWindows on ARM64 uses another header then the general neon one.
AC:
- Enable Neon for Windows ARM in CMake
- Fix includes
- Verify on ARM64 devicehttps://gitlab.xiph.org/xiph/opus/-/issues/2334cmake - Build all tests and programs for Opus in CMake build2020-08-09T04:24:33ZMarcus Asteborgcmake - Build all tests and programs for Opus in CMake buildAC:
- Add minor unittest for dll and static build
- Add missing programs for dll and static buildAC:
- Add minor unittest for dll and static build
- Add missing programs for dll and static buildhttps://gitlab.xiph.org/xiph/opus/-/issues/2333cmake - Add Doxygen doc generation to CMakebuild2020-08-09T04:24:52ZMarcus Asteborgcmake - Add Doxygen doc generation to CMakebuildhttps://vicrucann.github.io/tutorials/quick-cmake-doxygen/https://vicrucann.github.io/tutorials/quick-cmake-doxygen/https://gitlab.xiph.org/xiph/opus/-/issues/2319Opusenc produces broken samples (wrong quantization) with 24-bit source2020-08-09T16:44:10ZstevenleleOpusenc produces broken samples (wrong quantization) with 24-bit source# Original Issue
I was encoding a specific sample of music (24 bits, 48 kHz) with `opusenc` in `opus-tools 0.2 (Opus 1.3)` and noticed a significant artifact in the beginning.
**More description:** You can hear the artifact within 00:01...# Original Issue
I was encoding a specific sample of music (24 bits, 48 kHz) with `opusenc` in `opus-tools 0.2 (Opus 1.3)` and noticed a significant artifact in the beginning.
**More description:** You can hear the artifact within 00:01. It's a broken "boom"-like sound.
Check the image below. The waveform graph has significant changes.
![comparison](/uploads/0d3ce65baebb985497f03086d09e4708/comparison.png)
This is how I encoded:
```
>opusenc sample.flac --bitrate 256 sample.opus
Encoding using libopus 1.3 (audio)
-----------------------------------------------------
Input: 48 kHz, 2 channels
Output: 2 channels (2 coupled)
20ms packets, 256 kbit/s VBR
Preskip: 312
Encoding complete
-----------------------------------------------------
Encoded: 1 minute and 31.1 seconds
Runtime: 1 second
(91.1x realtime)
Wrote: 2993392 bytes, 4555 packets, 94 pages
Bitrate: 261.351 kbit/s (without overhead)
Instant rates: 1.2 to 510.4 kbit/s
(3 to 1276 bytes per packet)
Overhead: 0.576% (container+metadata)
```
# Update
I tried using `FFmpeg` to convert the original file into 16 bits (original is 24 bits).
```
>ffmpeg -i sample.wav -f wav -c pcm_s16le sample_16bit.wav
```
Then I encoded again with the same settings.
```
>opusenc sample_16bit.wav --bitrate 256 sample_16bit.opus
Skipping chunk of type "LIST", length 26
Encoding using libopus 1.3 (audio)
-----------------------------------------------------
Input: 48 kHz, 2 channels
Output: 2 channels (2 coupled)
20ms packets, 256 kbit/s VBR
Preskip: 312
Encoding complete
-----------------------------------------------------
Encoded: 1 minute and 31.1 seconds
Runtime: 1 second
(91.1x realtime)
Wrote: 2990541 bytes, 4555 packets, 94 pages
Bitrate: 261.103 kbit/s (without overhead)
Instant rates: 1.2 to 510.4 kbit/s
(3 to 1276 bytes per packet)
Overhead: 0.576% (container+metadata)
```
The result turned out to be good.
Check the image below. The waveform graph has **no** significant changes now.
![comparison_2](/uploads/119ac4dce2ed78c692075e8d90315457/comparison_2.png)
So there may be issue in quantization of 24-bit (or high bit depth?) samples.
# Sample Download
The updated sample files are [here](https://www.mediafire.com/file/jiat0cn2cjccu2y/sample_new.7z/file).
All source samples are converted to FLAC files for better compression.
The 16-bit sample is converted from the 24-bit one; the 24-bit one is the original, not padded.https://gitlab.xiph.org/xiph/ogg/-/issues/2300Check for overflow on growing buffer2020-08-09T22:44:22ZClément BœschCheck for overflow on growing bufferHi,
I came across this code while debugging an issue in libshout (https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2318), and it looked pretty unsafe to me: [0001-framing-check-for-overflow-on-growing-buffer.patch](/uploads/376286...Hi,
I came across this code while debugging an issue in libshout (https://gitlab.xiph.org/xiph/icecast-libshout/-/issues/2318), and it looked pretty unsafe to me: [0001-framing-check-for-overflow-on-growing-buffer.patch](/uploads/376286b5321247d4934f85e924bdb2be/0001-framing-check-for-overflow-on-growing-buffer.patch).
One could check that the `oy->storage<0` and similar checks are enough, but I still believe it's safer not to assign the invalid value in the first place.https://gitlab.xiph.org/xiph/speexdsp/-/issues/3Ubuntu Aaarch64 18.04 ./configure error2020-08-11T02:16:11ZStuartIanNaylorUbuntu Aaarch64 18.04 ./configure error
checking for cos in -lm... yes
./configure: line 13500: syntax error near unexpected token `FFT,'
./configure: line 13500: ` PKG_CHECK_MODULES(FFT, fftw3f)'
Tried installing all the fftw packages -dev also
Going to switch for debian ...
checking for cos in -lm... yes
./configure: line 13500: syntax error near unexpected token `FFT,'
./configure: line 13500: ` PKG_CHECK_MODULES(FFT, fftw3f)'
Tried installing all the fftw packages -dev also
Going to switch for debian and give it a go as you can tell apart from simple compiling I am lost.
Posted here also seems both Ubuntu & Debian tried 18.04 & 20.04 64 bit
https://github.com/xiph/speexdsp/issues/31#issuecomment-633379070https://gitlab.xiph.org/xiph/vorbis-tools/-/issues/2325ogg123: feeding FLAC file via STDIN fails2020-08-13T14:54:45ZSebastian Hübnerogg123: feeding FLAC file via STDIN failsHi,
I tried to feed ogg123 with an FLAC file via STDIN, but ogg123 is telling me it's corrupt.
```
> ogg123 - < HD_2020-01-30_465376506.flac
Audio Device: Advanced Linux Sound Architecture (ALSA) output
Error opening - using the og...Hi,
I tried to feed ogg123 with an FLAC file via STDIN, but ogg123 is telling me it's corrupt.
```
> ogg123 - < HD_2020-01-30_465376506.flac
Audio Device: Advanced Linux Sound Architecture (ALSA) output
Error opening - using the oggvorbis module. The file may be corrupted.
> cat HD_2020-01-30_465376506.flac | ogg123 -
Audio Device: Advanced Linux Sound Architecture (ALSA) output
Error opening - using the oggvorbis module. The file may be corrupted.
```
If I give the FLAC file as a normal input it is working:
```
ogg123 HD_2020-01-30_465376506.flac
Audio Device: Advanced Linux Sound Architecture (ALSA) output
Playing: HD_2020-01-30_465376506.flac
FLAC stream: 16 bits, 2 channel, 44100 Hz
Artist: Flamingo Pier
Encoded by: **removed**
Heardis_id: HD_2020-01-30_465376506
Title: Boogie Meltdown
ReplayGain (Track): -6.27 dB
ReplayGain Peak (Track): 0.986664
Done.
```
I tried it on Ubuntu 20.04 (vorbis-tools 1.4.0-11) and Ubuntu 18.04 (vorbis-tools 1.4.0-10.1) and both gave me the same error.
Is this a bug or just not possible with FLAC files?
thanks in advance :)https://gitlab.xiph.org/xiph/vorbis-tools/-/issues/2326No git tags2020-08-15T19:17:21ZTomasz KłoczkoNo git tagsLooks like currently there is no any git tags marking exact versions.
BTW: do you have any plans to make new release soon?Looks like currently there is no any git tags marking exact versions.
BTW: do you have any plans to make new release soon?https://gitlab.xiph.org/xiph/icecast-server/-/issues/2390status-json with fallback-mount2020-08-31T15:48:47ZIgor dWstatus-json with fallback-mountI have icecast 2.4.4 with win2016 server. I'm using a fallback-mount. When the fallback mount is active my player gets the metadata from this mount and works perfect. When the 'main' mount gets active, icecast switches perfect, and in my...I have icecast 2.4.4 with win2016 server. I'm using a fallback-mount. When the fallback mount is active my player gets the metadata from this mount and works perfect. When the 'main' mount gets active, icecast switches perfect, and in my status-json my 'main' mount is first presented so my player pickes te metadata correct. When the 'main' mount is lost and icecast switches to the fallback mount things go wrong. The music switches but in status-json the metadata from the 'main' mount is not dropped/removed so my player is looking to empty strings and is not presenting artist and song information. The 'main' mount is also not dropped in the icecast server status (but empty, containing no data). When i at this point also disconnect the fallback, both are removed from status-json. Is this a setting i have to change or a bug?
[Icecast_xml_settings.txt](/uploads/be6d02c1146dea8396b28c984b0178fa/Icecast_xml_settings.txt)https://gitlab.xiph.org/xiph/opus/-/issues/2339libopus 1.2.1 - Windows - Integer division by zero2020-09-01T20:43:17ZAlexander Matveevlibopus 1.2.1 - Windows - Integer division by zeroHi everyone,
Our crash detection system registered Unhandled exceptions:
silk_Decode + 2485 (edited) \silk\dec_API.c(317)
opus_decode_frame + 971 (edited) \src\opus_decoder.c(381)
opus_decode_native + 763 (edited) \src\opus_decoder.c(6...Hi everyone,
Our crash detection system registered Unhandled exceptions:
silk_Decode + 2485 (edited) \silk\dec_API.c(317)
opus_decode_frame + 971 (edited) \src\opus_decoder.c(381)
opus_decode_native + 763 (edited) \src\opus_decoder.c(693)
opus_decode + 218 (edited) \src\opus_decoder.c(782)
Unhandled exception at (edited): Integer division by zero.
/* Number of output samples */
*nSamplesOut = silk_DIV32( nSamplesOutDec * decControl->API_sampleRate, silk_SMULBB( channel_state[ 0 ].fs_kHz, 1000 ) );
We do not know how we can reproduce this issue. We started seeing this issue a year ago and we still receive these crash reports.
Please investigate the issue or suggest us what we should debug.
Thank you for helping!
Alexhttps://gitlab.xiph.org/xiph/opus/-/issues/2340CMake - Improve compiler checks for intrinsics and prefix definitions with CO...2020-09-11T21:54:39ZMarcus AsteborgCMake - Improve compiler checks for intrinsics and prefix definitions with COMPILER_reference: https://github.com/xiph/opus/issues/198
set(SSE1_SUPPORTED 1 PARENT_SCOPE)
COMPILER_SSE1_SUPPORTED etcreference: https://github.com/xiph/opus/issues/198
set(SSE1_SUPPORTED 1 PARENT_SCOPE)
COMPILER_SSE1_SUPPORTED etc