Opus issueshttps://gitlab.xiph.org/xiph/opus/-/issues2022-07-12T14:08:12Zhttps://gitlab.xiph.org/xiph/opus/-/issues/2347cmake - disable ctest for ios and android crosscompiling2022-07-12T14:08:12ZMarcus Asteborgcmake - disable ctest for ios and android crosscompilinghttps://gitlab.xiph.org/xiph/opus/-/issues/2346Kiss FFT replacement2023-08-11T06:54:17ZVitaly IvanovKiss FFT replacementI wonder if there are any plans to replace Kiss FFT with much faster pffft? Here's this older issue: https://monorail-staging.appspot.com/p/webrtc/issues/detail?id=3350
I ran some tests myself (although I was using RNNoise), and on my M...I wonder if there are any plans to replace Kiss FFT with much faster pffft? Here's this older issue: https://monorail-staging.appspot.com/p/webrtc/issues/detail?id=3350
I ran some tests myself (although I was using RNNoise), and on my MacBook Pro (i7) opus_fft (complex, N=960, forward) is about 3.5x slower than pffft_transform_orderedhttps://gitlab.xiph.org/xiph/opus/-/issues/2345shared description of public API headers2020-10-27T16:09:01ZRalph Gilesshared description of public API headersWe have a shared list of source files in `*_sources.mk` which are used by all the build systems to reduce the maintenance burden. However, there is no such list of headers, so each build system maintains its own list of files defining th...We have a shared list of source files in `*_sources.mk` which are used by all the build systems to reduce the maintenance burden. However, there is no such list of headers, so each build system maintains its own list of files defining the public API.
In the discussion of !13 it was suggested that we create such a shared definition. @tmp volunteered to propose an implementation.https://gitlab.xiph.org/xiph/opus/-/issues/2344unexpected result using inbandfec in cbr mode.2020-10-12T16:47:40Zwumasterunexpected result using inbandfec in cbr mode.when I use this command:
`voip 16000 1 32000 -framesize 40 -loss 20 -inbandfec -cbr es01_l_16k.pcm out.pcm`
[es01_l_16k.pcm](/uploads/57c337058263bb3f0dafd897c55f82ee/es01_l_16k.pcm)
[out.pcm](/uploads/9ee13b2557c37a0a33470d7360025817/ou...when I use this command:
`voip 16000 1 32000 -framesize 40 -loss 20 -inbandfec -cbr es01_l_16k.pcm out.pcm`
[es01_l_16k.pcm](/uploads/57c337058263bb3f0dafd897c55f82ee/es01_l_16k.pcm)
[out.pcm](/uploads/9ee13b2557c37a0a33470d7360025817/out.pcm)
![image](/uploads/bb3fe48e9d57c6b62ae7daca6b7a9765/image.png)
![image](/uploads/020f2bb24020756f6dba82ec3896be56/image.png)
The output data seems to have a very bad quality. Is this normal?https://gitlab.xiph.org/xiph/opus/-/issues/2343cmake - neon optimizations doesn't compile on rp2020-10-05T21:26:53ZMarcus Asteborgcmake - neon optimizations doesn't compile on rpReference: https://github.com/xiph/opus/issues/203Reference: https://github.com/xiph/opus/issues/203https://gitlab.xiph.org/xiph/opus/-/issues/2342cmake - fix lrint detection on Linux ARM2022-07-12T14:05:12ZMarcus Asteborgcmake - fix lrint detection on Linux ARMlrint detection needs -m flaglrint detection needs -m flaghttps://gitlab.xiph.org/xiph/opus/-/issues/2341Mono file size is larger than Stereo file size, for same content and settings...2020-09-29T09:18:55ZTonuricsMono file size is larger than Stereo file size, for same content and settings. [Stereo uses lower bitrate.]Hello, I have some old Mono audio recordings from a CD that are stored in Stereo FLAC files. If I transcode one into a Stereo OPUS file using:
`ffmpeg -y -i ./input.flac -codec:a libopus -compression_level 10 -vbr on -b:a 192k -metadata...Hello, I have some old Mono audio recordings from a CD that are stored in Stereo FLAC files. If I transcode one into a Stereo OPUS file using:
`ffmpeg -y -i ./input.flac -codec:a libopus -compression_level 10 -vbr on -b:a 192k -metadata replaygain_album_gain= -metadata replaygain_album_peak= -metadata replaygain_reference_loudness= -metadata replaygain_track_gain= -metadata replaygain_track_peak= -af volume=replaygain=album -loglevel quiet ./output.opus`
Results in a 7,299,479 byte (7.0 MiB) file.
```
encoder=Lavc58.91.100 libopus
Pre-skip: 312
Playback gain: 0 dB
Channels: 2
Original sample rate: 48000 Hz
Packet duration: 20.0ms (max), 20.0ms (avg), 20.0ms (min)
Page duration: 1000.0ms (max), 999.8ms (avg), 940.0ms (min)
Total data length: 7299479 bytes (overhead: 0.656%)
Playback length: 6m:04.933s
Average bitrate: 160 kbit/s, w/o overhead: 159 kbit/s
```
Since the audio is Mono: I thought it would be interesting to throw away the right channel. And I used this command to transcode:
`ffmpeg -y -i ./input.flac -codec:a libopus -compression_level 10 -vbr on -b:a 192k -map_channel 0.0.0 -metadata replaygain_album_gain= -metadata replaygain_album_peak= -metadata replaygain_reference_loudness= -metadata replaygain_track_gain= -metadata replaygain_track_peak= -af volume=replaygain=album -loglevel quiet ./output.opus`
Results in a 8,804,150 byte (8.4 MiB) file.
```
encoder=Lavc58.91.100 libopus
Pre-skip: 312
Playback gain: 0 dB
Channels: 1
Original sample rate: 48000 Hz
Packet duration: 20.0ms (max), 20.0ms (avg), 20.0ms (min)
Page duration: 1000.0ms (max), 999.8ms (avg), 940.0ms (min)
Total data length: 8804150 bytes (overhead: 0.556%)
Playback length: 6m:04.933s
Average bitrate: 193 kbit/s, w/o overhead: 191.9 kbit/s
```
Which was surprising, as I expected little to no difference between the file sizes. It appears that OPUS is using a bitrate of 160k for the Stereo version, instead of the requested 192k bitrate [which is being used in Mono].
To ensure this wasn't an issue coming from ffmpeg, I transcoded the same file using opusenc:
`opusenc --bitrate 192k ./input.flac ./output.opus`
Results in a 7,307,706 byte (7.0 MiB) file.
```
ENCODER=opusenc from opus-tools 0.2
ENCODER_OPTIONS=--bitrate 192k
Pre-skip: 312
Playback gain: -12.2891 dB
Channels: 2
Original sample rate: 44100 Hz
Packet duration: 20.0ms (max), 20.0ms (avg), 20.0ms (min)
Page duration: 1000.0ms (max), 999.8ms (avg), 940.0ms (min)
Total data length: 7307706 bytes (overhead: 0.667%)
Playback length: 6m:04.933s
Average bitrate: 160.2 kbit/s, w/o overhead: 159.1 kbit/s
```
Which are virtually the same results as ffmpeg.
This seems like a bug. At the very least, I would expect the Stereo bitrates to be closer to 192k.
Or maybe this some sort a Mono documentation issue? [i.e. VBR doesn't work?]
Thanks for reading.
System details:
```
Linux 5.8.12-arch1-1 #1 SMP PREEMPT Sat, 26 Sep 2020 21:42:58 +0000 x86_64 GNU/Linux
ffmpeg n4.3.1
libopusenc 0.2.1
opusenc opus-tools 0.2 (using libopus 1.3.1)
```https://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 etchttps://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/2338cmake: wrong project version propagated to pkg-config file2020-11-21T18:29:34ZDonato Sciarracmake: wrong project version propagated to pkg-config fileWhen building the project as:
```
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE
```
I get:
>>>
-- Opus library version: 0.8.0
-- Found Git: /usr/bin/git (found version "2.25.1")
-- Opus package version: 1.3.1
-- Opus pr...When building the project as:
```
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE
```
I get:
>>>
-- Opus library version: 0.8.0
-- Found Git: /usr/bin/git (found version "2.25.1")
-- Opus package version: 1.3.1
-- Opus project version: 1.3.1
>>>
the "Opus library version" is propagated in the pkg-config file (at the time of writing 0.8.0). I discovered this while building tag 1.3.1 locally. Including opus in my cmake project as `pkg_check_modules(OPUS REQUIRED "opus")` returned:
> -- Found opus, version 0.8.0
I can live with it locally but I think it would good to fix it!https://gitlab.xiph.org/xiph/opus/-/issues/2337cmake - Add some missing options to CMakebuild2022-06-30T05:00:08ZMarcus Asteborgcmake - Add some missing options to CMakebuild--disable-hardening
--enable-fixed-point-debug
--enable-fuzzing
--enable-check-asm
--enable-assertions--disable-hardening
--enable-fixed-point-debug
--enable-fuzzing
--enable-check-asm
--enable-assertionshttps://gitlab.xiph.org/xiph/opus/-/issues/2336cmake - Rename options in CMake to have 1-1 mapping to autotools2020-11-21T06:58:42ZMarcus Asteborgcmake - Rename options in CMake to have 1-1 mapping to autotoolsdisable in autotools should be disable in cmake etc.disable in autotools should be disable in cmake etc.https://gitlab.xiph.org/xiph/opus/-/issues/2335Remove WINCE define from source2020-11-21T06:59:12ZMarcus AsteborgRemove WINCE define from sourceWINCE is no longer relevant platform and defines can be removed from Opus sourceWINCE is no longer relevant platform and defines can be removed from Opus sourcehttps://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/2332cmake - Add OPUS_TARGET_ARCH for crosscompiling from commandline for CMake build2020-11-21T06:59:41ZMarcus Asteborgcmake - Add OPUS_TARGET_ARCH for crosscompiling from commandline for CMake buildCurrently one need to use toolchain file for cross compiling, for easier crosscompiling in CI we can add a option to CMake so all cross compile options can be specified through commandline without the need for toolchain files.Currently one need to use toolchain file for cross compiling, for easier crosscompiling in CI we can add a option to CMake so all cross compile options can be specified through commandline without the need for toolchain files.https://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/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/2329Any plans to make new release?2023-04-20T23:34:55ZTomasz KłoczkoAny plans to make new release?Looks like it is alread +600 commits since last release +year ago.
I think that it would be good to flush currently committed changes and make new release :)Looks like it is alread +600 commits since last release +year ago.
I think that it would be good to flush currently committed changes and make new release :)https://gitlab.xiph.org/xiph/opus/-/issues/2328cmake - intrinsics is not enabled for x86 for non windows due to missing defines2022-07-12T14:05:59ZMarcus Asteborgcmake - intrinsics is not enabled for x86 for non windows due to missing defines