From nobody Wed Mar 09 16:20:13 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 65FA419FF1E6; Wed, 9 Mar 2022 16:20:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4KDHV52Mdtz4cVF; Wed, 9 Mar 2022 16:20:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1646842813; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y0gAjE9P38+Pn/kqrZ6Jnnejf0I/L5qC61nP3x85k/g=; b=ksSVmlXN1SVprQNi06F6wCu0ldDa7K/qRmiEB6P2NE4G70LAIfNx0lAV5FM3AfqZSi73rD 46Ogcqf+BpZGIelRVc4jdc4sGflWhLXy3df4xOiGkyVN/Jdim79VXUXYj3A13HsVOC47tW p2IFtm9z0uJmdiAjM4vOgAXX/EyNecswPjYgP1L9qdoCup5738m9IuLRKEWVervrWRYvGP /gTah8h2qRkcc/WPQ9Lq+Gn+fWBUw/uMQca+OgxdIy/TlYojN/IArN/0OLukPK5ieeDd7E qcgljpCM+rrH8Zu1PZjFHFFLKTQS5ChjsuFr8giyvJ2hEoBea/m6DC4d5ZaTuA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2CFF013E7F; Wed, 9 Mar 2022 16:20:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 229GKDBH090179; Wed, 9 Mar 2022 16:20:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 229GKDmD090176; Wed, 9 Mar 2022 16:20:13 GMT (envelope-from git) Date: Wed, 9 Mar 2022 16:20:13 GMT Message-Id: <202203091620.229GKDmD090176@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Piotr Kubaj Subject: git: c5a04cf7b88f - main - net-im/tg_owt: fix build on powerpc64* List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pkubaj X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c5a04cf7b88f3894165af184966592c70d57ef3b Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1646842813; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y0gAjE9P38+Pn/kqrZ6Jnnejf0I/L5qC61nP3x85k/g=; b=I/oW0svv66AsMCJS7gRO1hbMLd665lTgfCssrMEW2C7sioXLibZZryzfH1yjYUyNDHkOhQ zF+ArSd18B8vV4mNAx1FYq+Mc110v9pXfUeUj8B5URc3tn9j3yDSygx1QEOogR5Vne1g2i AUAw6LUKPKfoN5fsq8iigqyi1kdzwx9LrS9mN6pB17qIKDjgkTWF52VTwtAe2Iej5BW0NF 1XkSgiR5L4QpvHo7SdqNIwMp5sswlWTTbCeJ+fIww4TyiBFXjJ+3Me4JKrE84bazl2IYUX WcwIjgR9wPiz7Sy15NxFNYtn+QCtYkexNqJlgVlVePk7UEExQONdtumFmSvYnA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1646842813; a=rsa-sha256; cv=none; b=G4ojMC6WeAtIGc74MUFoVwxzfV8xK86ouLhyjxtHlHwpP9dfciJDBtdMVuqPB79psKrB+B ozLhH3tUv/41CVoMTSiYBi99q/DwCENKpqmsX3RdUFhyxl6pP48/38GzSr7SMmN5a2nDdu cbu8fLTgZb0Xgdp7HHdiZw/jRmIcYj5ySdOzqgrehpzqmhIH62f3uYCe6+M9FN09x8K4Wc J51JzWPwbumyDkr+Mf1I7vBpx7fvcs9jP6SnSRzkhfTWqXOHSXtpfMaMEBLpxhuCdTT4/R I0vxzzq5E/yAcGsOxOJ1YigXEIa2Nul1sjGLU1LxAP/vcbBnLH2y8MPaW3Bw6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/ports/commit/?id=c5a04cf7b88f3894165af184966592c70d57ef3b commit c5a04cf7b88f3894165af184966592c70d57ef3b Author: Piotr Kubaj AuthorDate: 2022-03-09 16:10:32 +0000 Commit: Piotr Kubaj CommitDate: 2022-03-09 16:10:32 +0000 net-im/tg_owt: fix build on powerpc64* Port patches from audio/webrtc-audio-processing. --- .../files/patch-src_common__audio_wav__file.cc | 126 +++++++++++++++++++++ .../files/patch-src_common__audio_wav__header.cc | 36 ++++++ .../tg_owt/files/patch-src_rtc__base_system_arch.h | 16 +++ 3 files changed, 178 insertions(+) diff --git a/net-im/tg_owt/files/patch-src_common__audio_wav__file.cc b/net-im/tg_owt/files/patch-src_common__audio_wav__file.cc new file mode 100644 index 000000000000..bb9ba2731442 --- /dev/null +++ b/net-im/tg_owt/files/patch-src_common__audio_wav__file.cc @@ -0,0 +1,126 @@ +--- src/common_audio/wav_file.cc.orig 2022-02-09 19:21:53 UTC ++++ src/common_audio/wav_file.cc +@@ -14,6 +14,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -89,10 +90,6 @@ void WavReader::Reset() { + + 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 +- + size_t num_samples_left_to_read = num_samples; + size_t next_chunk_start = 0; + while (num_samples_left_to_read > 0 && num_unread_samples_ > 0) { +@@ -124,15 +121,16 @@ size_t WavReader::ReadSamples(const size_t num_samples + num_unread_samples_ -= num_samples_read; + num_samples_left_to_read -= num_samples_read; + } ++#ifndef WEBRTC_ARCH_LITTLE_ENDIAN ++ for (size_t i = 0; i < num_samples; i++) { ++ samples[i] = bswap16(samples[i]); ++ } ++#endif + + return num_samples - num_samples_left_to_read; + } + + size_t WavReader::ReadSamples(const size_t num_samples, float* const samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to big-endian when reading from WAV file" +-#endif +- + size_t num_samples_left_to_read = num_samples; + size_t next_chunk_start = 0; + while (num_samples_left_to_read > 0 && num_unread_samples_ > 0) { +@@ -170,6 +168,12 @@ size_t WavReader::ReadSamples(const size_t num_samples + num_unread_samples_ -= num_samples_read; + num_samples_left_to_read -= num_samples_read; + } ++#ifndef WEBRTC_ARCH_LITTLE_ENDIAN ++ // TODO: is this the right place for this? ++ for (size_t i = 0; i < num_samples; i++) { ++ samples[i] = bswap16(samples[i]); ++ } ++#endif + + return num_samples - num_samples_left_to_read; + } +@@ -213,23 +217,33 @@ WavWriter::WavWriter(FileWrapper file, + } + + void WavWriter::WriteSamples(const int16_t* samples, size_t num_samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to little-endian when writing to WAV file" +-#endif +- + for (size_t i = 0; i < num_samples; i += kMaxChunksize) { + const size_t num_remaining_samples = num_samples - i; + const size_t num_samples_to_write = + std::min(kMaxChunksize, num_remaining_samples); + + if (format_ == WavFormat::kWavFormatPcm) { ++#ifndef WEBRTC_ARCH_LITTLE_ENDIAN + RTC_CHECK( + file_.Write(&samples[i], num_samples_to_write * sizeof(samples[0]))); ++#else ++ std::array converted_samples; ++ for (size_t j = 0; j < num_samples_to_write; ++j) { ++ converted_samples[j] = bswap16(samples[i + j]); ++ } ++ RTC_CHECK( ++ file_.Write(converted_samples.data(), ++ num_samples_to_write * sizeof(converted_samples[0]))); ++#endif + } else { + RTC_CHECK_EQ(format_, WavFormat::kWavFormatIeeeFloat); + std::array converted_samples; + for (size_t j = 0; j < num_samples_to_write; ++j) { +- converted_samples[j] = S16ToFloat(samples[i + j]); ++ int16_t sample = samples[i + j]; ++#ifndef WEBRTC_ARCH_LITTLE_ENDIAN ++ sample = bswap16(sample); ++#endif ++ converted_samples[j] = S16ToFloat(sample); + } + RTC_CHECK( + file_.Write(converted_samples.data(), +@@ -243,10 +257,6 @@ void WavWriter::WriteSamples(const int16_t* samples, s + } + + void WavWriter::WriteSamples(const float* samples, size_t num_samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to little-endian when writing to WAV file" +-#endif +- + for (size_t i = 0; i < num_samples; i += kMaxChunksize) { + const size_t num_remaining_samples = num_samples - i; + const size_t num_samples_to_write = +@@ -255,7 +265,11 @@ void WavWriter::WriteSamples(const float* samples, siz + if (format_ == WavFormat::kWavFormatPcm) { + std::array converted_samples; + for (size_t j = 0; j < num_samples_to_write; ++j) { +- converted_samples[j] = FloatS16ToS16(samples[i + j]); ++ int16_t sample = FloatS16ToS16(samples[i + j]); ++#ifndef WEBRTC_ARCH_LITTLE_ENDIAN ++ sample = bswap16(sample); ++#endif ++ converted_samples[j] = sample; + } + RTC_CHECK( + file_.Write(converted_samples.data(), +@@ -264,6 +278,7 @@ void WavWriter::WriteSamples(const float* samples, siz + RTC_CHECK_EQ(format_, WavFormat::kWavFormatIeeeFloat); + std::array converted_samples; + for (size_t j = 0; j < num_samples_to_write; ++j) { ++ // TODO: is swap needed for big-endian here? + converted_samples[j] = FloatS16ToFloat(samples[i + j]); + } + RTC_CHECK( diff --git a/net-im/tg_owt/files/patch-src_common__audio_wav__header.cc b/net-im/tg_owt/files/patch-src_common__audio_wav__header.cc new file mode 100644 index 000000000000..5f8f73eff0db --- /dev/null +++ b/net-im/tg_owt/files/patch-src_common__audio_wav__header.cc @@ -0,0 +1,36 @@ +--- src/common_audio/wav_header.cc.orig 2022-02-09 19:21:53 UTC ++++ src/common_audio/wav_header.cc +@@ -26,10 +26,6 @@ + namespace webrtc { + namespace { + +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Code not working properly for big endian platforms." +-#endif +- + #pragma pack(2) + struct ChunkHeader { + uint32_t ID; +@@ -119,9 +115,22 @@ uint32_t PackFourCC(char a, char b, char c, char d) { + return packed_value; + } + ++#ifdef WEBRTC_ARCH_LITTLE_ENDIAN + std::string ReadFourCC(uint32_t x) { + return std::string(reinterpret_cast(&x), 4); + } ++#else ++static inline uint32_t ReadLE32(uint32_t x) { ++ return ((x << 24) & 0xFF000000) ++ | ((x << 8) & 0x00FF0000) ++ | ((x >> 8) & 0x0000FF00) ++ | ((x >> 24) & 0x000000FF); ++} ++std::string ReadFourCC(uint32_t x) { ++ x = ReadLE32(x); ++ return std::string(reinterpret_cast(&x), 4); ++} ++#endif + + uint16_t MapWavFormatToHeaderField(WavFormat format) { + switch (format) { diff --git a/net-im/tg_owt/files/patch-src_rtc__base_system_arch.h b/net-im/tg_owt/files/patch-src_rtc__base_system_arch.h new file mode 100644 index 000000000000..267fb4d0e18d --- /dev/null +++ b/net-im/tg_owt/files/patch-src_rtc__base_system_arch.h @@ -0,0 +1,16 @@ +--- src/rtc_base/system/arch.h.orig 2022-02-09 19:21:53 UTC ++++ src/rtc_base/system/arch.h +@@ -46,6 +46,13 @@ + #endif + #if defined(__MIPSEL__) + #define WEBRTC_ARCH_LITTLE_ENDIAN ++#elif defined(__powerpc64__) ++#define WEBRTC_ARCH_64_BITS ++#if defined(__BIG_ENDIAN__) ++#define WEBRTC_ARCH_BIG_ENDIAN ++#else ++#define WEBRTC_ARCH_LITTLE_ENDIAN ++#endif + #else + #define WEBRTC_ARCH_BIG_ENDIAN + #endif