Hello community, here is the log from the commit of package opus.13601 for openSUSE:Leap:15.1:Update checked in at 2020-08-07 14:31:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.1:Update/opus.13601 (Old) and /work/SRC/openSUSE:Leap:15.1:Update/.opus.13601.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "opus.13601" Fri Aug 7 14:31:53 2020 rev:1 rq:824329 version:1.3.1 Changes: -------- New Changes file: --- /dev/null 2020-08-06 00:20:10.149648038 +0200 +++ /work/SRC/openSUSE:Leap:15.1:Update/.opus.13601.new.3399/opus.changes 2020-08-07 14:32:10.262401217 +0200 @@ -0,0 +1,226 @@ +------------------------------------------------------------------- +Fri Jul 10 01:15:45 UTC 2020 - Alynx Zhou <[email protected]> + +- Add opus-fix-celt-decoder-assertion.patch: When using + OPUS_CUSTOM, CELTDecoder->end can be larger than 21. + This causes builds with CUSTOM_MODES and either ENABLE_HARDENING + or ENABLE_ASSERTIONS to crash. This patch fixes it. + (bsc#1172526) + +------------------------------------------------------------------- +Thu Aug 15 17:37:36 UTC 2019 - Bjørn Lie <[email protected]> + +- Add 2 upstream bug fixes for Silk: + * opus-Silk-CNG-adapts-faster.patch: Silk CNG adapts faster to + received packets with lower gains. + * opus-Silk-fix-arm-optimization.patch: Avoid processing LPC + coeffs beyond the given order in NEON optimizations. + +------------------------------------------------------------------- +Thu Aug 8 11:02:43 UTC 2019 - Dominique Leuenberger <[email protected]> + +- Own %{_datadir}/aclocal: when we might switch to pkgconf instead + of pkg-config, nothing in the build root is 'accidentally' owning + this directory for us. + +------------------------------------------------------------------- +Sat May 25 08:29:45 UTC 2019 - Luigi Baldoni <[email protected]> + +- Update to version 1.3.1 + * This release fixes an issue with the analysis on files with + digital silence (all zeros), especially on x87 builds + (mostly affects 32-bit builds). + * Two new features: + + A new OPUS_GET_IN_DTX query to know if the encoder is in + DTX mode (last frame was either a comfort noise frame or + not encoded at all) + + A new (and still experimental) CMake-based build system + that is eventually meant to replace the VS2015 build + system (the autotools one will stay). + +------------------------------------------------------------------- +Thu Oct 18 22:33:04 CEST 2018 - [email protected] + +- Update to 1.3: + - improved speech/music detection based on a neural network + - low-bitrate speech improvements + - support for immersive audio using ambisonics + - tone quality improvements + - updates to the Opus standard (rfc 8251) are on by default + - security improvements +- Clean up SPEC to the latest standards + +------------------------------------------------------------------- +Mon Jun 26 20:06:55 UTC 2017 - [email protected] + +- Update to version 1.2.1: + + This fixes an issue where the encoder can misdetect that the + signal is SWB instead of FB, lowpassing the signal. This patch + makes the encoder much more careful about doing that. + +------------------------------------------------------------------- +Wed Jun 21 21:56:12 UTC 2017 - [email protected] + +- Cleanup with spec-cleaner + +------------------------------------------------------------------- +Tue Jun 20 21:17:41 UTC 2017 - [email protected] + +- Update to version 1.2 + + 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-06 (the mono downmix and the + folding fixes need --enable-update-draft) + + Many bug fixes, including integer wrap-arounds discovered + through fuzzing (no security implications) +- Removed static package + +------------------------------------------------------------------- +Sun May 28 18:54:56 UTC 2017 - [email protected] + +- Update to version 1.1.5 + + This release backports the surround encoder bug fix from + 1.2-beta branch + +------------------------------------------------------------------- +Sat Mar 11 14:27:30 UTC 2017 - [email protected] + +- Rename %soname to %sover to better reflect its use. + RPM group fix. + +------------------------------------------------------------------- +Sun Feb 26 23:08:38 UTC 2017 - [email protected] + +- Update to version 1.1.4 (CVE-2017-0381): + + 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. +- Drop opus-NLSF-not-negative.patch: Fixed upstream. + +------------------------------------------------------------------- +Mon Jan 16 20:56:54 UTC 2017 - [email protected] + +- Fix CVE-2017-0381 (boo#1020102), opus: remote code execution + vulnerability in silk/NLSF_stabilize.c. +- Add opus-NLSF-not-negative.patch: Ensure that NLSF cannot be + negative when computing a min distance between them. + +------------------------------------------------------------------- +Sat Aug 13 15:26:11 UTC 2016 - [email protected] + +- Update to version 1.1.3: + + Neon optimizations improving performance on ARMv7 and ARMv8 by + up to 15%. + + Fixes some issues with 16-bit platforms (e.g. TI C55x). + + Fixes to comfort noise generation (CNG). + + Documenting that PLC packets can also be 2 bytes. + + Includes experimental ambisonics work (--enable-ambisonics). +- Stop passing conditional --enable/disable-intrinsics, it's + enabled by default now. +- Not adding the new --enable-ambisonics to configure, it's still + experimental. + +------------------------------------------------------------------- +Wed Jan 27 09:32:12 UTC 2016 - [email protected] + +- Disable SSE2 in SLE_11 due to code or compiler bugs. + +------------------------------------------------------------------- +Tue Jan 26 20:23:12 UTC 2016 - [email protected] + +- Enable tests during package build +- Cleanup spec file with spec-cleaner +- Drop not needed libtool dependency for build + +------------------------------------------------------------------- +Tue Jan 19 13:24:17 UTC 2016 - [email protected] + +- Update to version 1.1.2, fixes the following bugs: + + Resetting the encoder or decoder state with OPUS_RESET_STATE + would disable some run-time selected architecture-specific + optimizations. + + In hybrid mode discontinuous transmission (DTX) operation, + the comfort noise above 8 kHz was incorrectly estimated + and could oscillate in time. + +------------------------------------------------------------------- +Wed Dec 2 19:32:31 UTC 2015 - [email protected] + +- Update to version 1.1.1: + + x86 SSE, SSE2 and SSE4.1 intrinsics optimizations with run-time + CPU detection. + + MIPS intrinsics optimizations. + + ARM Neon optimizations. + + Many architecture-independent optimizations and memory + footprint reductions that should improve performance on all + platforms, and several minor bug fixes. +- Pass --enable-intrinsics to configure. + +------------------------------------------------------------------- +Sun Dec 8 00:21:36 UTC 2013 - [email protected] + +- Update to version 1.1: + + New analysis code and tuning that significantly improves + encoding quality, especially for variable-bitrate (VBR). + + Automatic detection of speech or music to decide which encoding + mode to use. + + Surround with good quality at 128 kbps for 5.1 and usable down + to 48 kbps. + + Speed improvements on all architectures, especially ARM, where + decoding uses around 40% less CPU and encoding uses around 30% + less CPU. + +------------------------------------------------------------------- +Thu Aug 1 19:12:56 UTC 2013 - [email protected] + +- Update to version 1.0.3: + + Backport of the new 1.1 surround API. + + Fixes for a few minor glitches during mode switching. + + Some minor fixed-point fixes. + + Fix a regression in the FEC code introduced in 1.0.2. + +------------------------------------------------------------------- +Sat Feb 2 15:21:36 UTC 2013 - [email protected] + +- Update to version 1.0.2: + + Fix an out-of-bounds read security issue. + + Fixes and improvements to the PLC and hybrid mode quality. +- Drop ++++ 29 more lines (skipped) ++++ between /dev/null ++++ and /work/SRC/openSUSE:Leap:15.1:Update/.opus.13601.new.3399/opus.changes New: ---- baselibs.conf opus-1.3.1.tar.gz opus-Silk-CNG-adapts-faster.patch opus-Silk-fix-arm-optimization.patch opus-fix-celt-decoder-assertion.patch opus.changes opus.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ opus.spec ++++++ # # spec file for package opus # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2012 Pascal Bleser <[email protected]> # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define sover 0 Name: opus Version: 1.3.1 Release: 0 Summary: Audio Codec Library License: BSD-3-Clause Group: Development/Libraries/C and C++ URL: https://opus-codec.org/ Source: https://archive.mozilla.org/pub/opus/%{name}-%{version}.tar.gz Source99: baselibs.conf # PATCH-FIX-UPSTREAM opus-Silk-CNG-adapts-faster.patch -- Silk CNG adapts faster to received packets with lower gains Patch0: opus-Silk-CNG-adapts-faster.patch # PATCH-FIX-UPSTREAM opus-Silk-fix-arm-optimization.patch -- Avoid processing LPC coeffs beyond the given order in NEON optimizations Patch1: opus-Silk-fix-arm-optimization.patch # PATCH-FIX-UPSTREAM opus-fix-celt-decoder-assertion.patch bsc#1172526 -- When using OPUS_CUSTOM, CELTDecoder->end can be larger than 21. This causes builds with CUSTOM_MODES and either ENABLE_HARDENING or ENABLE_ASSERTIONS to crash. Patch2: opus-fix-celt-decoder-assertion.patch BuildRequires: pkgconfig %description The Opus codec is designed for interactive speech and audio transmission over the Internet. It is designed by the IETF Codec Working Group and incorporates technology from Skype's SILK codec and Xiph.Org's CELT codec. %package -n libopus%{sover} Summary: Opus Audio Codec Library Group: System/Libraries %description -n libopus%{sover} The Opus codec is designed for interactive speech and audio transmission over the Internet. It is designed by the IETF Codec Working Group and incorporates technology from Skype's SILK codec and Xiph.Org's CELT codec. %package -n libopus-devel Summary: Opus Audio Codec Library Development Environment Group: Development/Libraries/C and C++ Requires: libopus%{sover} = %{version} %description -n libopus-devel The Opus codec is designed for interactive speech and audio transmission over the Internet. It is designed by the IETF Codec Working Group and incorporates technology from Skype's SILK codec and Xiph.Org's CELT codec. %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %build %configure \ --disable-static \ --disable-silent-rules \ --disable-doc \ --enable-custom-modes make %{?_smp_mflags} %check make %{?_smp_mflags} check %install %make_install find %{buildroot} -type f -name "*.la" -delete -print %post -n libopus%{sover} -p /sbin/ldconfig %postun -n libopus%{sover} -p /sbin/ldconfig %files -n libopus%{sover} %license COPYING %doc AUTHORS README %{_libdir}/libopus.so.%{sover}* %files -n libopus-devel %{_libdir}/libopus.so %{_includedir}/opus %{_libdir}/pkgconfig/opus.pc %dir %{_datadir}/aclocal %{_datadir}/aclocal/opus.m4 %changelog ++++++ baselibs.conf ++++++ libopus0 ++++++ opus-Silk-CNG-adapts-faster.patch ++++++ >From 3ebf4ad86de2469572f7fa2bd6451469e7867c8f Mon Sep 17 00:00:00 2001 From: Felicia Lim <[email protected]> Date: Fri, 31 May 2019 13:58:44 -0700 Subject: [PATCH] Silk CNG adapts faster to received packets with lower gains --- silk/CNG.c | 4 ++++ silk/define.h | 1 + 2 files changed, 5 insertions(+) diff --git a/silk/CNG.c b/silk/CNG.c index ef8e38df..2a910099 100644 --- a/silk/CNG.c +++ b/silk/CNG.c @@ -118,6 +118,10 @@ void silk_CNG( /* Smooth gains */ for( i = 0; i < psDec->nb_subfr; i++ ) { psCNG->CNG_smth_Gain_Q16 += silk_SMULWB( psDecCtrl->Gains_Q16[ i ] - psCNG->CNG_smth_Gain_Q16, CNG_GAIN_SMTH_Q16 ); + /* If the smoothed gain is 3 dB greater than this subframe's gain, use this subframe's gain to adapt faster. */ + if( silk_SMULWW( psCNG->CNG_smth_Gain_Q16, CNG_GAIN_SMTH_THRESHOLD_Q16 ) > psDecCtrl->Gains_Q16[ i ] ) { + psCNG->CNG_smth_Gain_Q16 = psDecCtrl->Gains_Q16[ i ]; + } } } diff --git a/silk/define.h b/silk/define.h index 247cb0bf..491c86f3 100644 --- a/silk/define.h +++ b/silk/define.h @@ -225,6 +225,7 @@ extern "C" /* Defines for CN generation */ #define CNG_BUF_MASK_MAX 255 /* 2^floor(log2(MAX_FRAME_LENGTH))-1 */ #define CNG_GAIN_SMTH_Q16 4634 /* 0.25^(1/4) */ +#define CNG_GAIN_SMTH_THRESHOLD_Q16 46396 /* -3 dB */ #define CNG_NLSF_SMTH_Q16 16348 /* 0.25 */ #ifdef __cplusplus -- 2.11.0 ++++++ opus-Silk-fix-arm-optimization.patch ++++++ >From 812ae3fb5c589aaafe761b8ebf86bcbbb8f0ed76 Mon Sep 17 00:00:00 2001 From: Felicia Lim <[email protected]> Date: Mon, 8 Jul 2019 09:44:35 -0700 Subject: [PATCH] Avoid processing LPC coeffs beyond the given order in NEON optimizations --- silk/arm/LPC_inv_pred_gain_neon_intr.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/silk/arm/LPC_inv_pred_gain_neon_intr.c b/silk/arm/LPC_inv_pred_gain_neon_intr.c index ab426bcd..726e6667 100644 --- a/silk/arm/LPC_inv_pred_gain_neon_intr.c +++ b/silk/arm/LPC_inv_pred_gain_neon_intr.c @@ -210,19 +210,23 @@ opus_int32 silk_LPC_inverse_pred_gain_neon( /* O Returns inverse predi /* Increase Q domain of the AR coefficients */ t0_s16x8 = vld1q_s16( A_Q12 + 0 ); t1_s16x8 = vld1q_s16( A_Q12 + 8 ); - t2_s16x8 = vld1q_s16( A_Q12 + 16 ); + if ( order > 16 ) { + t2_s16x8 = vld1q_s16( A_Q12 + 16 ); + } t0_s32x4 = vpaddlq_s16( t0_s16x8 ); switch( order - leftover ) { case 24: t0_s32x4 = vpadalq_s16( t0_s32x4, t2_s16x8 ); + vst1q_s32( Atmp_QA + 16, vshll_n_s16( vget_low_s16 ( t2_s16x8 ), QA - 12 ) ); + vst1q_s32( Atmp_QA + 20, vshll_n_s16( vget_high_s16( t2_s16x8 ), QA - 12 ) ); /* FALLTHROUGH */ case 16: t0_s32x4 = vpadalq_s16( t0_s32x4, t1_s16x8 ); - vst1q_s32( Atmp_QA + 16, vshll_n_s16( vget_low_s16 ( t2_s16x8 ), QA - 12 ) ); - vst1q_s32( Atmp_QA + 20, vshll_n_s16( vget_high_s16( t2_s16x8 ), QA - 12 ) ); + vst1q_s32( Atmp_QA + 8, vshll_n_s16( vget_low_s16 ( t1_s16x8 ), QA - 12 ) ); + vst1q_s32( Atmp_QA + 12, vshll_n_s16( vget_high_s16( t1_s16x8 ), QA - 12 ) ); /* FALLTHROUGH */ case 8: @@ -230,8 +234,8 @@ opus_int32 silk_LPC_inverse_pred_gain_neon( /* O Returns inverse predi const int32x2_t t_s32x2 = vpadd_s32( vget_low_s32( t0_s32x4 ), vget_high_s32( t0_s32x4 ) ); const int64x1_t t_s64x1 = vpaddl_s32( t_s32x2 ); DC_resp = vget_lane_s32( vreinterpret_s32_s64( t_s64x1 ), 0 ); - vst1q_s32( Atmp_QA + 8, vshll_n_s16( vget_low_s16 ( t1_s16x8 ), QA - 12 ) ); - vst1q_s32( Atmp_QA + 12, vshll_n_s16( vget_high_s16( t1_s16x8 ), QA - 12 ) ); + vst1q_s32( Atmp_QA + 0, vshll_n_s16( vget_low_s16 ( t0_s16x8 ), QA - 12 ) ); + vst1q_s32( Atmp_QA + 4, vshll_n_s16( vget_high_s16( t0_s16x8 ), QA - 12 ) ); } break; @@ -246,16 +250,22 @@ opus_int32 silk_LPC_inverse_pred_gain_neon( /* O Returns inverse predi case 6: DC_resp += (opus_int32)A_Q12[ 5 ]; DC_resp += (opus_int32)A_Q12[ 4 ]; + Atmp_QA[ order - leftover + 5 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 5 ], QA - 12 ); + Atmp_QA[ order - leftover + 4 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 4 ], QA - 12 ); /* FALLTHROUGH */ case 4: DC_resp += (opus_int32)A_Q12[ 3 ]; DC_resp += (opus_int32)A_Q12[ 2 ]; + Atmp_QA[ order - leftover + 3 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 3 ], QA - 12 ); + Atmp_QA[ order - leftover + 2 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 2 ], QA - 12 ); /* FALLTHROUGH */ case 2: DC_resp += (opus_int32)A_Q12[ 1 ]; DC_resp += (opus_int32)A_Q12[ 0 ]; + Atmp_QA[ order - leftover + 1 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 1 ], QA - 12 ); + Atmp_QA[ order - leftover + 0 ] = silk_LSHIFT32( (opus_int32)A_Q12[ 0 ], QA - 12 ); /* FALLTHROUGH */ default: @@ -266,8 +276,6 @@ opus_int32 silk_LPC_inverse_pred_gain_neon( /* O Returns inverse predi if( DC_resp >= 4096 ) { invGain_Q30 = 0; } else { - vst1q_s32( Atmp_QA + 0, vshll_n_s16( vget_low_s16 ( t0_s16x8 ), QA - 12 ) ); - vst1q_s32( Atmp_QA + 4, vshll_n_s16( vget_high_s16( t0_s16x8 ), QA - 12 ) ); invGain_Q30 = LPC_inverse_pred_gain_QA_neon( Atmp_QA, order ); } } -- 2.11.0 ++++++ opus-fix-celt-decoder-assertion.patch ++++++ >From 7ad4ba3e12a6970f81a3703fdc6b33ab3c142ec9 Mon Sep 17 00:00:00 2001 From: Niclas Olmenius <[email protected]> Date: Wed, 19 Feb 2020 13:58:35 +0100 Subject: [PATCH] Fix celt decoder assertion when using OPUS_CUSTOM When using OPUS_CUSTOM, `CELTDecoder->end` can be larger than 21. Assert against 25 instead in OPUS_CUSTOM builds. --- celt/celt_decoder.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/celt/celt_decoder.c b/celt/celt_decoder.c index e6efce93..74ca3b74 100644 --- a/celt/celt_decoder.c +++ b/celt/celt_decoder.c @@ -117,13 +117,19 @@ void validate_celt_decoder(CELTDecoder *st) #ifndef CUSTOM_MODES celt_assert(st->mode == opus_custom_mode_create(48000, 960, NULL)); celt_assert(st->overlap == 120); + celt_assert(st->end <= 21); +#else +/* From Section 4.3 in the spec: "The normal CELT layer uses 21 of those bands, + though Opus Custom (see Section 6.2) may use a different number of bands" + + Check if it's within the maximum number of Bark frequency bands instead */ + celt_assert(st->end <= 25); #endif celt_assert(st->channels == 1 || st->channels == 2); celt_assert(st->stream_channels == 1 || st->stream_channels == 2); celt_assert(st->downsample > 0); celt_assert(st->start == 0 || st->start == 17); celt_assert(st->start < st->end); - celt_assert(st->end <= 21); #ifdef OPUS_ARCHMASK celt_assert(st->arch >= 0); celt_assert(st->arch <= OPUS_ARCHMASK);
