From f0ff330476540530afea80e1c891d4afb99dfe3aa1f4add9d1a95c8ee4ea9e92 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 18 Sep 2023 12:05:03 +0000 Subject: [PATCH] Accepting request 1111520 from home:alarrosa:branches:multimedia:libs:webrtc-audio-processing - Update to version 1.3: * build: Bump version to 1.3 * meson: Fix generation of pkgconfig files * build: Bump version to 1.2 * meson: Update minimum version based on what abseil wrap needs * build: Expose absl as a dependency of webrtc-audio-processing * meson: Update to latest wrap, install required absl headers * doc: Update tarball generation process * file_utils.h: Fix build with gcc-13 * meson: Fixes for MSVC build * meson: Ensure that abseil is built with c++17 too * More changes not listed by upstream. Check the following link to see them: https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/commits/v1.3 - Add patch that fixes some compiler "control reaches end of non-void function" errors: * fix-build.patch - Add patch that fixes i586 build: * fix-i586.patch - Disable patches until they're rebased to the current codebase: * big_endian_support.patch * big_endian_support_2.patch - Rebased patches: * webrtc-ppc64.patch * webrtc-s390x.patch OBS-URL: https://build.opensuse.org/request/show/1111520 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/webrtc-audio-processing?expand=0&rev=19 --- _service | 20 +++++ baselibs.conf | 3 +- big_endian_support.patch | 18 ++-- fix-build.patch | 60 +++++++++++++ fix-i586.patch | 126 +++++++++++++++++++++++++++ webrtc-audio-processing-0.3.1.tar.xz | 3 - webrtc-audio-processing-1.3.obscpio | 3 + webrtc-audio-processing-1.3.tar.xz | 3 + webrtc-audio-processing.changes | 29 ++++++ webrtc-audio-processing.obsinfo | 4 + webrtc-audio-processing.spec | 114 ++++++++++++++++++------ webrtc-ppc64.patch | 21 +++-- webrtc-s390x.patch | 13 +-- 13 files changed, 366 insertions(+), 51 deletions(-) create mode 100644 _service create mode 100644 fix-build.patch create mode 100644 fix-i586.patch delete mode 100644 webrtc-audio-processing-0.3.1.tar.xz create mode 100644 webrtc-audio-processing-1.3.obscpio create mode 100644 webrtc-audio-processing-1.3.tar.xz create mode 100644 webrtc-audio-processing.obsinfo diff --git a/_service b/_service new file mode 100644 index 0000000..f27b2a3 --- /dev/null +++ b/_service @@ -0,0 +1,20 @@ + + + + git + https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing.git + v1.3 + 1.3 + + + + + *.tar + xz + + + + diff --git a/baselibs.conf b/baselibs.conf index 9e92647..a6f31d9 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1 +1,2 @@ -libwebrtc_audio_processing1 +libwebrtc_audio_processing1-3 +libwebrtc_audio_coding1-3 diff --git a/big_endian_support.patch b/big_endian_support.patch index 26850f7..2a58630 100644 --- a/big_endian_support.patch +++ b/big_endian_support.patch @@ -2,26 +2,26 @@ diff -up webrtc-audio-processing-0.2/webrtc/common_audio/wav_file.cc.than webrtc --- webrtc-audio-processing-0.2/webrtc/common_audio/wav_file.cc.than 2016-05-24 08:28:45.749940095 -0400 +++ webrtc-audio-processing-0.2/webrtc/common_audio/wav_file.cc 2016-05-24 08:50:30.361020010 -0400 @@ -64,9 +64,6 @@ WavReader::~WavReader() { - } - size_t WavReader::ReadSamples(size_t num_samples, int16_t* samples) { + size_t WavReader::ReadSamples(const size_t num_samples, + int16_t* const samples) { -#ifndef WEBRTC_ARCH_LITTLE_ENDIAN -#error "Need to convert samples to big-endian when reading from WAV file" -#endif - // There could be metadata after the audio; ensure we don't read it. - num_samples = std::min(rtc::checked_cast(num_samples), - num_samples_remaining_); + + size_t num_samples_left_to_read = num_samples; + size_t next_chunk_start = 0; @@ -76,6 +73,12 @@ size_t WavReader::ReadSamples(size_t num - RTC_CHECK(read == num_samples || feof(file_handle_)); - RTC_CHECK_LE(read, num_samples_remaining_); - num_samples_remaining_ -= rtc::checked_cast(read); + num_samples_left_to_read -= num_samples_read; + } + +#ifndef WEBRTC_ARCH_LITTLE_ENDIAN + //convert to big-endian + for(size_t idx = 0; idx < num_samples; idx++) { + samples[idx] = (samples[idx]<<8) | (samples[idx]>>8); + } +#endif - return read; + return num_samples - num_samples_left_to_read; } @@ -120,10 +123,17 @@ WavWriter::~WavWriter() { diff --git a/fix-build.patch b/fix-build.patch new file mode 100644 index 0000000..10f559f --- /dev/null +++ b/fix-build.patch @@ -0,0 +1,60 @@ +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc +@@ -39,6 +39,7 @@ float GetLevel(const VadLevelAnalyzer::R + return vad_level.rms_dbfs; + break; + case LevelEstimatorType::kPeak: ++ default: + return vad_level.peak_dbfs; + break; + } +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/audio_processing_impl.cc ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc +@@ -112,6 +112,7 @@ GainControl::Mode Agc1ConfigModeToInterf + case Agc1Config::kAdaptiveDigital: + return GainControl::kAdaptiveDigital; + case Agc1Config::kFixedDigital: ++ default: + return GainControl::kFixedDigital; + } + } +@@ -1852,6 +1853,7 @@ void AudioProcessingImpl::InitializeNois + return NsConfig::SuppressionLevel::k21dB; + default: + RTC_NOTREACHED(); ++ return NsConfig::SuppressionLevel::k21dB; // Just to keep the compiler happy + } + }; + +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/include/audio_processing.cc +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/include/audio_processing.cc ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/include/audio_processing.cc +@@ -26,6 +26,7 @@ std::string NoiseSuppressionLevelToStrin + case AudioProcessing::Config::NoiseSuppression::Level::kHigh: + return "High"; + case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh: ++ default: + return "VeryHigh"; + } + } +@@ -38,6 +39,7 @@ std::string GainController1ModeToString( + case AudioProcessing::Config::GainController1::Mode::kAdaptiveDigital: + return "AdaptiveDigital"; + case AudioProcessing::Config::GainController1::Mode::kFixedDigital: ++ default: + return "FixedDigital"; + } + } +@@ -48,6 +50,7 @@ std::string GainController2LevelEstimato + case AudioProcessing::Config::GainController2::LevelEstimator::kRms: + return "Rms"; + case AudioProcessing::Config::GainController2::LevelEstimator::kPeak: ++ default: + return "Peak"; + } + } diff --git a/fix-i586.patch b/fix-i586.patch new file mode 100644 index 0000000..50f568f --- /dev/null +++ b/fix-i586.patch @@ -0,0 +1,126 @@ +Index: webrtc-audio-processing-1.3/webrtc/third_party/pffft/src/pffft.c +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/third_party/pffft/src/pffft.c ++++ webrtc-audio-processing-1.3/webrtc/third_party/pffft/src/pffft.c +@@ -131,7 +131,7 @@ inline v4sf ld_ps1(const float *p) { v4s + /* + SSE1 support macros + */ +-#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__x86_64__) || defined(_M_X64) || defined(i386) || defined(__i386__) || defined(_M_IX86)) ++#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__x86_64__) || defined(_M_X64) || defined(i386) || defined(__i386__) || defined(_M_IX86)) && defined(__SSE2__) + + #include + typedef __m128 v4sf; +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/adaptive_fir_filter.cc +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/aec3/adaptive_fir_filter.cc ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/adaptive_fir_filter.cc +@@ -88,6 +88,7 @@ void ComputeFrequencyResponse_Neon( + + #if defined(WEBRTC_ARCH_X86_FAMILY) + // Computes and stores the frequency response of the filter. ++__attribute__((target("sse2"))) + void ComputeFrequencyResponse_Sse2( + size_t num_partitions, + const std::vector>& H, +@@ -207,9 +208,10 @@ void AdaptPartitions_Neon(const RenderBu + } while (p < lim2); + } + #endif +- ++ + #if defined(WEBRTC_ARCH_X86_FAMILY) + // Adapts the filter partitions. (SSE2 variant) ++__attribute__((target("sse2"))) + void AdaptPartitions_Sse2(const RenderBuffer& render_buffer, + const FftData& G, + size_t num_partitions, +@@ -375,6 +377,7 @@ void ApplyFilter_Neon(const RenderBuffer + + #if defined(WEBRTC_ARCH_X86_FAMILY) + // Produces the filter output (SSE2 variant). ++__attribute__((target("sse2"))) + void ApplyFilter_Sse2(const RenderBuffer& render_buffer, + size_t num_partitions, + const std::vector>& H, +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/matched_filter.cc +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/aec3/matched_filter.cc ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/matched_filter.cc +@@ -143,7 +143,7 @@ void MatchedFilterCore_NEON(size_t x_sta + #endif + + #if defined(WEBRTC_ARCH_X86_FAMILY) +- ++__attribute__((target("sse2"))) + void MatchedFilterCore_SSE2(size_t x_start_index, + float x2_sum_threshold, + float smoothing, +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/fft_data.h +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/aec3/fft_data.h ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/fft_data.h +@@ -48,7 +48,7 @@ struct FftData { + rtc::ArrayView power_spectrum) const { + RTC_DCHECK_EQ(kFftLengthBy2Plus1, power_spectrum.size()); + switch (optimization) { +-#if defined(WEBRTC_ARCH_X86_FAMILY) ++#if defined(WEBRTC_ARCH_X86_FAMILY) && defined(__SSE2__) + case Aec3Optimization::kSse2: { + constexpr int kNumFourBinBands = kFftLengthBy2 / 4; + constexpr int kLimit = kNumFourBinBands * 4; +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/vector_math.h +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/aec3/vector_math.h ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/vector_math.h +@@ -43,7 +43,7 @@ class VectorMath { + void SqrtAVX2(rtc::ArrayView x); + void Sqrt(rtc::ArrayView x) { + switch (optimization_) { +-#if defined(WEBRTC_ARCH_X86_FAMILY) ++#if defined(WEBRTC_ARCH_X86_FAMILY) && defined(__SSE2__) + case Aec3Optimization::kSse2: { + const int x_size = static_cast(x.size()); + const int vector_limit = x_size >> 2; +@@ -123,7 +123,7 @@ class VectorMath { + RTC_DCHECK_EQ(z.size(), x.size()); + RTC_DCHECK_EQ(z.size(), y.size()); + switch (optimization_) { +-#if defined(WEBRTC_ARCH_X86_FAMILY) ++#if defined(WEBRTC_ARCH_X86_FAMILY) && defined(__SSE2__) + case Aec3Optimization::kSse2: { + const int x_size = static_cast(x.size()); + const int vector_limit = x_size >> 2; +@@ -173,7 +173,7 @@ class VectorMath { + void Accumulate(rtc::ArrayView x, rtc::ArrayView z) { + RTC_DCHECK_EQ(z.size(), x.size()); + switch (optimization_) { +-#if defined(WEBRTC_ARCH_X86_FAMILY) ++#if defined(WEBRTC_ARCH_X86_FAMILY) && defined(__SSE2__) + case Aec3Optimization::kSse2: { + const int x_size = static_cast(x.size()); + const int vector_limit = x_size >> 2; +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/rnn_vad/rnn.cc +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/agc2/rnn_vad/rnn.cc ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/rnn_vad/rnn.cc +@@ -229,6 +229,7 @@ void ComputeFullyConnectedLayerOutput( + + #if defined(WEBRTC_ARCH_X86_FAMILY) + // Fully connected layer SSE2 implementation. ++__attribute__((target("sse2"))) + void ComputeFullyConnectedLayerOutputSse2( + size_t input_size, + size_t output_size, +Index: webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_erl.cc +=================================================================== +--- webrtc-audio-processing-1.3.orig/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_erl.cc ++++ webrtc-audio-processing-1.3/webrtc/modules/audio_processing/aec3/adaptive_fir_filter_erl.cc +@@ -57,6 +57,7 @@ void ErlComputer_NEON( + #if defined(WEBRTC_ARCH_X86_FAMILY) + // Computes and stores the echo return loss estimate of the filter, which is the + // sum of the partition frequency responses. ++__attribute__((target("sse2"))) + void ErlComputer_SSE2( + const std::vector>& H2, + rtc::ArrayView erl) { diff --git a/webrtc-audio-processing-0.3.1.tar.xz b/webrtc-audio-processing-0.3.1.tar.xz deleted file mode 100644 index d35a51c..0000000 --- a/webrtc-audio-processing-0.3.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a0fdd938fd85272d67e81572c5a4d9e200a0c104753cb3c209ded175ce3c5dbf -size 695920 diff --git a/webrtc-audio-processing-1.3.obscpio b/webrtc-audio-processing-1.3.obscpio new file mode 100644 index 0000000..7416e78 --- /dev/null +++ b/webrtc-audio-processing-1.3.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d95e27e348b777c26f66b06842269ae418ccb6cd41330d3007ae6f876114d58a +size 4396556 diff --git a/webrtc-audio-processing-1.3.tar.xz b/webrtc-audio-processing-1.3.tar.xz new file mode 100644 index 0000000..b731d7a --- /dev/null +++ b/webrtc-audio-processing-1.3.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f5fded08c76d4d540675b64a52d72d4274163ef3d38379e6915317affe7315b +size 650276 diff --git a/webrtc-audio-processing.changes b/webrtc-audio-processing.changes index 1d85831..201908d 100644 --- a/webrtc-audio-processing.changes +++ b/webrtc-audio-processing.changes @@ -1,3 +1,32 @@ +------------------------------------------------------------------- +Fri Sep 08 10:40:12 UTC 2023 - alarrosa@suse.com + +- Update to version 1.3: + * build: Bump version to 1.3 + * meson: Fix generation of pkgconfig files + * build: Bump version to 1.2 + * meson: Update minimum version based on what abseil wrap needs + * build: Expose absl as a dependency of webrtc-audio-processing + * meson: Update to latest wrap, install required absl headers + * doc: Update tarball generation process + * file_utils.h: Fix build with gcc-13 + * meson: Fixes for MSVC build + * meson: Ensure that abseil is built with c++17 too + * More changes not listed by upstream. Check + the following link to see them: + https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/commits/v1.3 +- Add patch that fixes some compiler "control reaches end of + non-void function" errors: + * fix-build.patch +- Add patch that fixes i586 build: + * fix-i586.patch +- Disable patches until they're rebased to the current codebase: + * big_endian_support.patch + * big_endian_support_2.patch +- Rebased patches: + * webrtc-ppc64.patch + * webrtc-s390x.patch + ------------------------------------------------------------------- Mon Aug 17 15:30:03 UTC 2020 - Dirk Mueller diff --git a/webrtc-audio-processing.obsinfo b/webrtc-audio-processing.obsinfo new file mode 100644 index 0000000..6847668 --- /dev/null +++ b/webrtc-audio-processing.obsinfo @@ -0,0 +1,4 @@ +name: webrtc-audio-processing +version: 1.3 +mtime: 1693927187 +commit: 8e258a1933d405073c9e6465628a69ac7d2a1f13 diff --git a/webrtc-audio-processing.spec b/webrtc-audio-processing.spec index 0d5dbc7..11f81f6 100644 --- a/webrtc-audio-processing.spec +++ b/webrtc-audio-processing.spec @@ -2,7 +2,7 @@ # # spec file for package webrtc-audio-processing # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2023 SUSE LLC # Copyright (c) 2012 Pascal Bleser # # All modifications and additions to the file contributed by third parties @@ -18,32 +18,37 @@ # -%define soname 1 +%define pkg_soname 1-3 +%define soname 3 # Please submit bugfixes or comments via http://bugs.opensuse.org/ Name: webrtc-audio-processing -Version: 0.3.1 +Version: 1.3 Release: 0 Summary: Real-Time Communication Library for Web Browsers License: BSD-3-Clause Group: System/Libraries URL: https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/ -Source: http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-%{version}.tar.xz +Source: webrtc-audio-processing-%{version}.tar.xz Source1: baselibs.conf +# PATCH-FIX-UPSTREAM fix-build.patch alarrosa@suse.com -- Fix a number of "control reaches end of non-void function" errors +Patch0: fix-build.patch # PATCH-FIX-UPSTREAN big_endian_support.patch https://bugs.freedesktop.org/show_bug.cgi?id=95738 Patch1: big_endian_support.patch # PATCH-FIX-UPSTREAN big_endian_support.patch https://bugs.freedesktop.org/show_bug.cgi?id=95738 Patch2: big_endian_support_2.patch +Patch3: fix-i586.patch # PATCH-FIX-OPENSUSE webrtc-(ppc64|s390x|aarch64).patch Patch100: webrtc-ppc64.patch Patch101: webrtc-s390x.patch -BuildRequires: autoconf -BuildRequires: automake +BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: glibc-devel BuildRequires: libtool BuildRequires: make +BuildRequires: meson >= 0.63 BuildRequires: pkgconfig BuildRequires: xz +BuildRequires: cmake(absl) %description WebRTC is an open source project that enables web browsers with Real-Time @@ -52,11 +57,11 @@ components have been optimized to best serve this purpose. WebRTC implements the W3C's proposal for video conferencing on the web. -%package -n libwebrtc_audio_processing%{soname} +%package -n libwebrtc_audio_processing%{pkg_soname} Summary: Real-Time Communication Library for Web Browsers Group: System/Libraries -%description -n libwebrtc_audio_processing%{soname} +%description -n libwebrtc_audio_processing%{pkg_soname} WebRTC is an open source project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. The WebRTC components have been optimized to best serve this purpose. @@ -66,7 +71,7 @@ WebRTC implements the W3C's proposal for video conferencing on the web. %package -n libwebrtc_audio_processing-devel Summary: Real-Time Communication Library for Web Browsers Group: Development/Libraries/C and C++ -Requires: libwebrtc_audio_processing%{soname} = %{version} +Requires: libwebrtc_audio_processing%{pkg_soname} = %{version} %description -n libwebrtc_audio_processing-devel WebRTC is an open source project that enables web browsers with Real-Time @@ -87,40 +92,95 @@ components have been optimized to best serve this purpose. WebRTC implements the W3C's proposal for video conferencing on the web. +%package -n libwebrtc_audio_coding%{pkg_soname} +Summary: Real-Time Communication Library for Web Browsers +Group: System/Libraries + +%description -n libwebrtc_audio_coding%{pkg_soname} +WebRTC is an open source project that enables web browsers with Real-Time +Communications (RTC) capabilities via simple Javascript APIs. The WebRTC +components have been optimized to best serve this purpose. + +WebRTC implements the W3C's proposal for video conferencing on the web. + +%package -n libwebrtc_audio_coding-devel +Summary: Real-Time Communication Library for Web Browsers +Group: Development/Libraries/C and C++ +Requires: libwebrtc_audio_coding%{pkg_soname} = %{version} + +%description -n libwebrtc_audio_coding-devel +WebRTC is an open source project that enables web browsers with Real-Time +Communications (RTC) capabilities via simple Javascript APIs. The WebRTC +components have been optimized to best serve this purpose. + +WebRTC implements the W3C's proposal for video conferencing on the web. + +%package -n libwebrtc_audio_coding-devel-static +Summary: Real-Time Communication Library for Web Browsers +Group: Development/Libraries/C and C++ +Requires: libwebrtc_audio_coding-devel = %{version} + +%description -n libwebrtc_audio_coding-devel-static +WebRTC is an open source project that enables web browsers with Real-Time +Communications (RTC) capabilities via simple Javascript APIs. The WebRTC +components have been optimized to best serve this purpose. + +WebRTC implements the W3C's proposal for video conferencing on the web. + %prep -%setup -q -T -c "%{name}-%{version}" -xz --decompress --stdout "%{SOURCE0}" | tar xf - --strip-components=1 +%autosetup -p1 -N sed -i 's/\r$//' AUTHORS -%patch1 -p1 -%patch2 -p1 -%patch100 -%patch101 +%patch0 -p1 +#%%patch1 -p1 +#%%patch2 -p1 +%patch3 -p1 +%patch100 -p1 +%patch101 -p1 %build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects -%configure -%make_build +%meson \ + -Dc_std=gnu17 \ + -Dcpp_std=gnu++17 \ + -Ddefault_library=both \ + -Dc_args="${CFLAGS} ${LDFLAGS}" \ + -Dcpp_args="${CXXFLAGS} ${LDFLAGS}" \ + %{nil} +%meson_build %install -%make_install +%meson_install find %{buildroot} -type f -name "*.la" -delete -print -%post -n libwebrtc_audio_processing%{soname} -p /sbin/ldconfig -%postun -n libwebrtc_audio_processing%{soname} -p /sbin/ldconfig +%post -n libwebrtc_audio_processing%{pkg_soname} -p /sbin/ldconfig +%postun -n libwebrtc_audio_processing%{pkg_soname} -p /sbin/ldconfig +%post -n libwebrtc_audio_coding%{pkg_soname} -p /sbin/ldconfig +%postun -n libwebrtc_audio_coding%{pkg_soname} -p /sbin/ldconfig -%files -n libwebrtc_audio_processing%{soname} +%files -n libwebrtc_audio_processing%{pkg_soname} %license COPYING %doc AUTHORS NEWS README.md UPDATING.md -%{_libdir}/libwebrtc_audio_processing.so.%{soname} -%{_libdir}/libwebrtc_audio_processing.so.%{soname}.*.* +%{_libdir}/libwebrtc-audio-processing-1.so.%{soname}* %files -n libwebrtc_audio_processing-devel -%{_includedir}/webrtc_audio_processing -%{_libdir}/libwebrtc_audio_processing.so -%{_libdir}/pkgconfig/webrtc-audio-processing.pc +%{_includedir}/webrtc-audio-processing-1 +%{_libdir}/libwebrtc-audio-processing-1.so +%{_libdir}/pkgconfig/webrtc-audio-processing-1.pc %files -n libwebrtc_audio_processing-devel-static -%{_libdir}/libwebrtc_audio_processing.a +%{_libdir}/libwebrtc-audio-processing-1.a + +%files -n libwebrtc_audio_coding%{pkg_soname} +%license COPYING +%doc AUTHORS NEWS README.md UPDATING.md +%{_libdir}/libwebrtc-audio-coding-1.so.%{soname}* + +%files -n libwebrtc_audio_coding-devel +%{_libdir}/libwebrtc-audio-coding-1.so +%{_libdir}/pkgconfig/webrtc-audio-coding-1.pc + +%files -n libwebrtc_audio_coding-devel-static +%{_libdir}/libwebrtc-audio-coding-1.a %changelog diff --git a/webrtc-ppc64.patch b/webrtc-ppc64.patch index 28dad72..7dab59c 100644 --- a/webrtc-ppc64.patch +++ b/webrtc-ppc64.patch @@ -1,11 +1,17 @@ Index: webrtc/typedefs.h =================================================================== ---- webrtc/typedefs.h.org -+++ webrtc/typedefs.h -@@ -47,6 +47,12 @@ - #elif defined(__pnacl__) +--- a/webrtc/rtc_base/system/arch.h.orig ++++ b/webrtc/rtc_base/system/arch.h +@@ -57,6 +57,15 @@ +# #elif defined(__pnacl__) +# #define WEBRTC_ARCH_32_BITS +# #define WEBRTC_ARCH_LITTLE_ENDIAN + #elif defined(__EMSCRIPTEN__) #define WEBRTC_ARCH_32_BITS #define WEBRTC_ARCH_LITTLE_ENDIAN ++#elif defined(__powerpc64__) && defined(__LITTLE_ENDIAN__) ++#define WEBRTC_ARCH_LITTLE_ENDIAN ++#define WEBRTC_ARCH_64_BITS +#elif defined(__powerpc64__) +#define WEBRTC_ARCH_BIG_ENDIAN +#define WEBRTC_ARCH_64_BITS @@ -13,5 +19,8 @@ Index: webrtc/typedefs.h +#define WEBRTC_ARCH_BIG_ENDIAN +#define WEBRTC_ARCH_32_BITS #else - /* instead of failing, use typical unix defines... */ - #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + #error Please add support for your architecture in rtc_base/system/arch.h + #endif +# #else +# /* instead of failing, use typical unix defines... */ +# #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ diff --git a/webrtc-s390x.patch b/webrtc-s390x.patch index 1ae3523..3dc7f44 100644 --- a/webrtc-s390x.patch +++ b/webrtc-s390x.patch @@ -1,6 +1,6 @@ ---- webrtc/typedefs.h -+++ webrtc/typedefs.h -@@ -53,6 +53,12 @@ +--- a/webrtc/rtc_base/system/arch.h.orig ++++ b/webrtc/rtc_base/system/arch.h +@@ -63,6 +63,12 @@ #elif defined(__powerpc__) #define WEBRTC_ARCH_BIG_ENDIAN #define WEBRTC_ARCH_32_BITS @@ -11,5 +11,8 @@ +#define WEBRTC_ARCH_BIG_ENDIAN +#define WEBRTC_ARCH_32_BITS #else - /* instead of failing, use typical unix defines... */ - #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + #error Please add support for your architecture in rtc_base/system/arch.h + #endif +# #else +# /* instead of failing, use typical unix defines... */ +# #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__