Fix an issue where the seek algorithm could be confused
by stream data changing between reads.
Clean up compiler and scan-build warnings.
Avoid use of the deprecated ftime() function
which has Y2038 problems.
Remove undefined behaviour memcpy(NULL) in op_read_native().
Visual Studio project files updated for libogg 1.3.4 library name change.
Various build systems updates.
Various integration and testing environment improvements.
This release is backward-compatible with the previous
release. We recommend all users upgrade.
Note that because of the removal of certificate store hooks
in openssl 1.1.1 and later, there are unfortunately no
supported versions of that library which can be used with
the code in opusurl to validate https responses against
the system certificate store on Windows. Using the system
default access to the certificate store on other platforms
In this release the Opus decoder opusdec has been converted to use the
opusfile library, and the Opus encoder opusenc has been converted to use
the libopusenc library. These libraries make it easy to robustly read
and write Ogg Opus audio files, and enable some new features. Both
libraries are available on the
opusdec enhancements include:
Read directly from http or https sources
New option --force-stereo will force stereo output
Improved support for chained input files with differing sample rate or
A summary is displayed for METADATA_BLOCK_PICTURE tags rather than
displaying the base64-encoded data
opusenc enhancements include:
Delayed decision support allows the encoder to look ahead up to two
seconds in order to improve encoding decisions
The options --music and --speech can be used to tune low bitrate audio
for music or speech, overriding automatic detection
The option --no-phase-inv disables the use of phase inversion for
intensity stereo, which can be useful for streams that are likely to
be downmixed to mono after decoding
New --tracknumber shortcut for setting tracknumber metadata
The opusinfo utility can display the demixing matrix from Ogg Opus
files using ambisonics channel mapping family 3
The experimental opusrtp tool supports new options to specify RTP
payload type, Ogg Opus output file, original sample rate, and number
of channels, and supports improved transmit timing, arbitrary
network devices, and IPv6
The Visual Studio 2015 project builds opusenc support for FLAC input
The old Visual Studio 2010 project has been removed
This Opus 1.3-beta beta release
of the upcoming Opus 1.3 includes:
Enabling by default the spec fixes in RFC 8251
Improvements to the VAD and speech/music classification using an RNN
Improvements to stereo speech coding at low bitrate
Added support for ambisonics projection using mapping 3 (disabled by default)
Fixes to the CELT PLC
Additionally, as a way to test the upcoming update to opus-tools, we’re providing Windows binaries
built with 1.3-beta. These binaries are based on libopusenc, which means opusenc is finally able
to make use of the Opus delayed-decision feature to make better speech/music transitions.
This Opus 1.2.1 minor release fixes a relatively rare
issue where the 1.2 encoder would wrongly assume a signal to be bandlimited to 12 kHz and not encode frequencies
between 12 and 20 kHz. This only happens on a few clips, but it is good to update to avoid a potential
loss of quality.
There are no other changes compared to 1.2. Please report any problems.
Opus 1.2-rc1 is
the first release candidate of the upcoming Opus 1.2 release. If no
issues are found with it, it will soon become 1.2-final, so we encourage
everyone to give it a try. Changes compared to 1.2-beta include:
Improves quality on files with powerful tones that cause MDCT leakage
Improves bit allocation on mode transitions (CELT to/from SILK/hybrid)
More ARM Neon optimizations
Fixes to the speech/music detection at the very beginning of files
Fixes to the unit tests (fixes illegal instructions and --disable-static)
This Opus 1.2-beta beta release
of the upcoming Opus 1.2 fixes a bug in surround encoding causing very bad quality
on signals beyond a certain amplitude. Thanks to Franziska Trojahn and others from HfT Leipzig
for finding this issue through their listening test (the quality of the two bad files in the paper should now be similar to the others). Also included in this release are some more ARM Neon optimizations and some low-bitrate quality tuning.
This Opus 1.1.4
release fixes a single bug. A specially-crafted Opus packet could cause
an integer wrap-around in the SILK LSF stabilization code. This would cause
an out-of-bounds read 256 bytes before a constant table. In most circumstances,
the consequences are harmless and the result is simply noise in the audio.
This was reported as CVE-2017-0381.
Contrary to that report, our own analysis shows that no
remote code execution is possible. However, we are making this release
as a precaution.
This Opus 1.2-alpha alpha release
of the upcoming Opus 1.2 brings many quality improvements, new features, and bug fixes, including:
Speech quality improvements especially in the 12-20 kbit/s range
Improved VBR encoding for hybrid mode
More aggressive use of wider speech bandwidth, including fullband speech starting at 14 kbit/s
Music quality improvements in the 32-48 kb/s range
Generic and SSE CELT optimizations
Support for directly encoding packets up to 120 ms
DTX support for CELT mode
SILK CBR improvements
Support for all of the fixes in draft-ietf-codec-opus-update-04 (the mono downmix and the folding fixes need --enable-update-draft)
Many bug fixes, including integer overflows discovered through fuzzing (no security implications)
Please test it and and report any problems. There are no known regressions compared to the
latest stable release (1.1.3), but given the large number of changes, it’s possible some bugs have
Compared to 1.1-beta, this new release further improves surround encoding quality.
It also includes better tuning of surround and stereo for lower bitrates.
The complexity has been reduced on all CPUs, but especially ARM, which now has
Neon assembly for the encoder. At last, there are a few bugfixes.
This release has numerious build fixes, including updated Visual Studio project files to match
similar changes in the opus package. Support encoding from FLAC files. Metadata tag support,
including album art. Use the new surround encoder API in opus 1.0.3. The opusenc --uncoupled
switch no longer works.
Opus 1.0.3 includes a backport of the new 1.1 surround API. Aside from that, it includes fixes
for a few minor glitches during mode switching, some minor fixed-point fixes, and fixes a
regression in the FEC code introduced in 1.0.2.
This is an alpha release for the upcoming 1.1 version. Compared to 1.0.2, it includes
quality improvements, optimizations, bug fixes, as well as an experimental speech/music
detector for mode decisions. All the fixes and improvements from 1.0.2 are also in this
release. Quality improvements include unconstrained VBR, a bitrate boost for tonal frames,
and improvements to tf estimation, transient detection and dynamic allocation.
This release includes many build fixes, especially for Windows, as well as some minor correctness
improvements. The opusenc --uncoupled switch is no longer advertised because this debugging option
was being mistaken for a quality enhancement.
An experiemental opusrtp tool is new in this release. It is not installed by default because it’s of
limited usefulness, mostly for debugging other RTP implementations. It can send an Opus file over RTP
or record a packet stream to an Opus file, on POSIX systems.
Opus 1.0.2 fixes an out-of-bounds read that could be triggered by a malicious Opus packet causing an
integer wrap-around in the padding code. Considering that the packet would have to be at least 16 MB
in size and that no out-of-bounds write is possible, the severity is very low. Other changes include
fixes and improvements to the PLC and hybrid mode quality improvements. As usual, this release is
fully compliant with the Opus specification.
This release fixes several resampling bugs and greatly increases resampler performance.
It also provides working Unicode filename and tag support for Windows (Unicode worked for Mac and *nix previously).
This release adds proper multichannel WAV output from opusdec, disables the
non-working --stereo and --mono mixdown switches, and uses linear predictive
coding to generate padding on the final frame to reduce the risk of clicking with gapless playback.
This version matches version -10 of the draft and fixes several glitches caused
by mode switching and other corner cases. This required breaking the bit-stream
for the SILK-only stereo and hybrid stereo modes. Fortunately, these modes are
not often used, so few users should be affected. This release also implements a
CBR mode for SILK mode.
This release includes a much better test suite and has been extensively tested
in multiple configurations. See the Jenkins build system and the resulting
floating-point coverage and fixed-point coverage. Now that the
analysis and documentation of the code has been completed, further changes to the
bit-stream until the final freeze are unlikely.
This is a cleanup release for version -07 of the draft. The bit-stream is
tentatively frozen. It will not change unless a major issue is found or if
for some reason the Working Group decides something needs to be change.
Opus libopus 0.9.2 adds support for glitchless switching between the voice and audio mode.
Also, the encoder now defaults to a new “automatic” mode and bandwidth selection and
attempts to select the optimal mode and bandwidth considering the bitrate and voice content.
Several bugs were also fixed and the codec and test tools should be more robust in general.
Opus libopus 0.9.1 fixes a few minor bugs that were found in version libopus 0.9.0.
Unfortunately, this has required slight changes to the bit-stream, which is thus not
compatible with libopus 0.9.0. This release adds support for forward error correction
(FEC), which improves performance under packet loss.