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
This commit is contained in:
Takashi Iwai 2023-09-18 12:05:03 +00:00 committed by Git OBS Bridge
parent af2e163a0f
commit f0ff330476
13 changed files with 366 additions and 51 deletions

20
_service Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<services>
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing.git</param>
<param name="revision">v1.3</param>
<param name="versionformat">1.3</param>
<!--
<param name="revision">master</param>
<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>
-->
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version" mode="manual" />
</services>

View File

@ -1 +1,2 @@
libwebrtc_audio_processing1 libwebrtc_audio_processing1-3
libwebrtc_audio_coding1-3

View File

@ -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.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 +++ 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() { @@ -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 -#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
-#error "Need to convert samples to big-endian when reading from WAV file" -#error "Need to convert samples to big-endian when reading from WAV file"
-#endif -#endif
// There could be metadata after the audio; ensure we don't read it.
num_samples = std::min(rtc::checked_cast<uint32_t>(num_samples), size_t num_samples_left_to_read = num_samples;
num_samples_remaining_); size_t next_chunk_start = 0;
@@ -76,6 +73,12 @@ size_t WavReader::ReadSamples(size_t num @@ -76,6 +73,12 @@ size_t WavReader::ReadSamples(size_t num
RTC_CHECK(read == num_samples || feof(file_handle_)); num_samples_left_to_read -= num_samples_read;
RTC_CHECK_LE(read, num_samples_remaining_); }
num_samples_remaining_ -= rtc::checked_cast<uint32_t>(read);
+#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +#ifndef WEBRTC_ARCH_LITTLE_ENDIAN
+ //convert to big-endian + //convert to big-endian
+ for(size_t idx = 0; idx < num_samples; idx++) { + for(size_t idx = 0; idx < num_samples; idx++) {
+ samples[idx] = (samples[idx]<<8) | (samples[idx]>>8); + samples[idx] = (samples[idx]<<8) | (samples[idx]>>8);
+ } + }
+#endif +#endif
return read; return num_samples - num_samples_left_to_read;
} }
@@ -120,10 +123,17 @@ WavWriter::~WavWriter() { @@ -120,10 +123,17 @@ WavWriter::~WavWriter() {

60
fix-build.patch Normal file
View File

@ -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";
}
}

126
fix-i586.patch Normal file
View File

@ -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 <xmmintrin.h>
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<std::vector<FftData>>& 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<std::vector<FftData>>& 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<float> 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<float> x);
void Sqrt(rtc::ArrayView<float> 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<int>(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<int>(x.size());
const int vector_limit = x_size >> 2;
@@ -173,7 +173,7 @@ class VectorMath {
void Accumulate(rtc::ArrayView<const float> x, rtc::ArrayView<float> 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<int>(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<std::array<float, kFftLengthBy2Plus1>>& H2,
rtc::ArrayView<float> erl) {

BIN
webrtc-audio-processing-0.3.1.tar.xz (Stored with Git LFS)

Binary file not shown.

BIN
webrtc-audio-processing-1.3.obscpio (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9f5fded08c76d4d540675b64a52d72d4274163ef3d38379e6915317affe7315b
size 650276

View File

@ -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 <dmueller@suse.com> Mon Aug 17 15:30:03 UTC 2020 - Dirk Mueller <dmueller@suse.com>

View File

@ -0,0 +1,4 @@
name: webrtc-audio-processing
version: 1.3
mtime: 1693927187
commit: 8e258a1933d405073c9e6465628a69ac7d2a1f13

View File

@ -2,7 +2,7 @@
# #
# spec file for package webrtc-audio-processing # spec file for package webrtc-audio-processing
# #
# Copyright (c) 2020 SUSE LLC # Copyright (c) 2023 SUSE LLC
# Copyright (c) 2012 Pascal Bleser <pascal.bleser@opensuse.org> # Copyright (c) 2012 Pascal Bleser <pascal.bleser@opensuse.org>
# #
# All modifications and additions to the file contributed by third parties # 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/ # Please submit bugfixes or comments via http://bugs.opensuse.org/
Name: webrtc-audio-processing Name: webrtc-audio-processing
Version: 0.3.1 Version: 1.3
Release: 0 Release: 0
Summary: Real-Time Communication Library for Web Browsers Summary: Real-Time Communication Library for Web Browsers
License: BSD-3-Clause License: BSD-3-Clause
Group: System/Libraries Group: System/Libraries
URL: https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/ 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 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 # PATCH-FIX-UPSTREAN big_endian_support.patch https://bugs.freedesktop.org/show_bug.cgi?id=95738
Patch1: big_endian_support.patch Patch1: big_endian_support.patch
# PATCH-FIX-UPSTREAN big_endian_support.patch https://bugs.freedesktop.org/show_bug.cgi?id=95738 # PATCH-FIX-UPSTREAN big_endian_support.patch https://bugs.freedesktop.org/show_bug.cgi?id=95738
Patch2: big_endian_support_2.patch Patch2: big_endian_support_2.patch
Patch3: fix-i586.patch
# PATCH-FIX-OPENSUSE webrtc-(ppc64|s390x|aarch64).patch # PATCH-FIX-OPENSUSE webrtc-(ppc64|s390x|aarch64).patch
Patch100: webrtc-ppc64.patch Patch100: webrtc-ppc64.patch
Patch101: webrtc-s390x.patch Patch101: webrtc-s390x.patch
BuildRequires: autoconf BuildRequires: cmake
BuildRequires: automake
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: glibc-devel BuildRequires: glibc-devel
BuildRequires: libtool BuildRequires: libtool
BuildRequires: make BuildRequires: make
BuildRequires: meson >= 0.63
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: xz BuildRequires: xz
BuildRequires: cmake(absl)
%description %description
WebRTC is an open source project that enables web browsers with Real-Time 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. 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 Summary: Real-Time Communication Library for Web Browsers
Group: System/Libraries 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 WebRTC is an open source project that enables web browsers with Real-Time
Communications (RTC) capabilities via simple Javascript APIs. The WebRTC Communications (RTC) capabilities via simple Javascript APIs. The WebRTC
components have been optimized to best serve this purpose. 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 %package -n libwebrtc_audio_processing-devel
Summary: Real-Time Communication Library for Web Browsers Summary: Real-Time Communication Library for Web Browsers
Group: Development/Libraries/C and C++ 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 %description -n libwebrtc_audio_processing-devel
WebRTC is an open source project that enables web browsers with Real-Time 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. 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 %prep
%setup -q -T -c "%{name}-%{version}" %autosetup -p1 -N
xz --decompress --stdout "%{SOURCE0}" | tar xf - --strip-components=1
sed -i 's/\r$//' AUTHORS sed -i 's/\r$//' AUTHORS
%patch1 -p1 %patch0 -p1
%patch2 -p1 #%%patch1 -p1
%patch100 #%%patch2 -p1
%patch101 %patch3 -p1
%patch100 -p1
%patch101 -p1
%build %build
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects %global _lto_cflags %{_lto_cflags} -ffat-lto-objects
%configure %meson \
%make_build -Dc_std=gnu17 \
-Dcpp_std=gnu++17 \
-Ddefault_library=both \
-Dc_args="${CFLAGS} ${LDFLAGS}" \
-Dcpp_args="${CXXFLAGS} ${LDFLAGS}" \
%{nil}
%meson_build
%install %install
%make_install %meson_install
find %{buildroot} -type f -name "*.la" -delete -print find %{buildroot} -type f -name "*.la" -delete -print
%post -n libwebrtc_audio_processing%{soname} -p /sbin/ldconfig %post -n libwebrtc_audio_processing%{pkg_soname} -p /sbin/ldconfig
%postun -n libwebrtc_audio_processing%{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 %license COPYING
%doc AUTHORS NEWS README.md UPDATING.md %doc AUTHORS NEWS README.md UPDATING.md
%{_libdir}/libwebrtc_audio_processing.so.%{soname} %{_libdir}/libwebrtc-audio-processing-1.so.%{soname}*
%{_libdir}/libwebrtc_audio_processing.so.%{soname}.*.*
%files -n libwebrtc_audio_processing-devel %files -n libwebrtc_audio_processing-devel
%{_includedir}/webrtc_audio_processing %{_includedir}/webrtc-audio-processing-1
%{_libdir}/libwebrtc_audio_processing.so %{_libdir}/libwebrtc-audio-processing-1.so
%{_libdir}/pkgconfig/webrtc-audio-processing.pc %{_libdir}/pkgconfig/webrtc-audio-processing-1.pc
%files -n libwebrtc_audio_processing-devel-static %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 %changelog

View File

@ -1,11 +1,17 @@
Index: webrtc/typedefs.h Index: webrtc/typedefs.h
=================================================================== ===================================================================
--- webrtc/typedefs.h.org --- a/webrtc/rtc_base/system/arch.h.orig
+++ webrtc/typedefs.h +++ b/webrtc/rtc_base/system/arch.h
@@ -47,6 +47,12 @@ @@ -57,6 +57,15 @@
#elif defined(__pnacl__) # #elif defined(__pnacl__)
# #define WEBRTC_ARCH_32_BITS
# #define WEBRTC_ARCH_LITTLE_ENDIAN
#elif defined(__EMSCRIPTEN__)
#define WEBRTC_ARCH_32_BITS #define WEBRTC_ARCH_32_BITS
#define WEBRTC_ARCH_LITTLE_ENDIAN #define WEBRTC_ARCH_LITTLE_ENDIAN
+#elif defined(__powerpc64__) && defined(__LITTLE_ENDIAN__)
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#define WEBRTC_ARCH_64_BITS
+#elif defined(__powerpc64__) +#elif defined(__powerpc64__)
+#define WEBRTC_ARCH_BIG_ENDIAN +#define WEBRTC_ARCH_BIG_ENDIAN
+#define WEBRTC_ARCH_64_BITS +#define WEBRTC_ARCH_64_BITS
@ -13,5 +19,8 @@ Index: webrtc/typedefs.h
+#define WEBRTC_ARCH_BIG_ENDIAN +#define WEBRTC_ARCH_BIG_ENDIAN
+#define WEBRTC_ARCH_32_BITS +#define WEBRTC_ARCH_32_BITS
#else #else
/* instead of failing, use typical unix defines... */ #error Please add support for your architecture in rtc_base/system/arch.h
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ #endif
# #else
# /* instead of failing, use typical unix defines... */
# #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__

View File

@ -1,6 +1,6 @@
--- webrtc/typedefs.h --- a/webrtc/rtc_base/system/arch.h.orig
+++ webrtc/typedefs.h +++ b/webrtc/rtc_base/system/arch.h
@@ -53,6 +53,12 @@ @@ -63,6 +63,12 @@
#elif defined(__powerpc__) #elif defined(__powerpc__)
#define WEBRTC_ARCH_BIG_ENDIAN #define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_ARCH_32_BITS #define WEBRTC_ARCH_32_BITS
@ -11,5 +11,8 @@
+#define WEBRTC_ARCH_BIG_ENDIAN +#define WEBRTC_ARCH_BIG_ENDIAN
+#define WEBRTC_ARCH_32_BITS +#define WEBRTC_ARCH_32_BITS
#else #else
/* instead of failing, use typical unix defines... */ #error Please add support for your architecture in rtc_base/system/arch.h
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ #endif
# #else
# /* instead of failing, use typical unix defines... */
# #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__