From 19d007ea842e364a850c170130d81cb76c7919ca Mon Sep 17 00:00:00 2001 From: Michael Froman Date: Mon, 24 Apr 2023 17:45:36 -0500 Subject: [PATCH] Bug 1828517 - Vendor libwebrtc from e15b9ff408 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream commit: https://webrtc.googlesource.com/src/+/e15b9ff408239dec2b65c2e548611c3bf68a0a7b Add a basic unittest for webrtc::voe::ChannelReceive This CL adds an unittest that a ChannelReceive can be constructed and destroyed without crashing. It is a basis for further testing. Lack of unit test was discovered while pursuing bug mentioned below. Bug: webrtc:13931 Change-Id: Iddb110f2df25e3806c74a5d00bbfab6d6d8e267f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/291338 Reviewed-by: Jakob Ivarsson‎ Commit-Queue: Harald Alvestrand Cr-Commit-Position: refs/heads/main@{#39200} --- third_party/libwebrtc/README.moz-ff-commit | 3 ++ third_party/libwebrtc/README.mozilla | 2 + third_party/libwebrtc/audio/BUILD.gn | 19 +++++++ .../audio/channel_receive_unittest.cc | 50 +++++++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 third_party/libwebrtc/audio/channel_receive_unittest.cc diff --git a/third_party/libwebrtc/README.moz-ff-commit b/third_party/libwebrtc/README.moz-ff-commit index dd96dbb0a787..f7af0ade307c 100644 --- a/third_party/libwebrtc/README.moz-ff-commit +++ b/third_party/libwebrtc/README.moz-ff-commit @@ -21216,3 +21216,6 @@ f2a083f262 # MOZ_LIBWEBRTC_SRC=/home/mfroman/mozilla/moz-central/.moz-fast-forward/moz-libwebrtc MOZ_LIBWEBRTC_BRANCH=mozpatches bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh # base of lastest vendoring 664cf14f9f +# MOZ_LIBWEBRTC_SRC=/home/mfroman/mozilla/moz-central/.moz-fast-forward/moz-libwebrtc MOZ_LIBWEBRTC_BRANCH=mozpatches bash dom/media/webrtc/third_party_build/fast-forward-libwebrtc.sh +# base of lastest vendoring +e15b9ff408 diff --git a/third_party/libwebrtc/README.mozilla b/third_party/libwebrtc/README.mozilla index 852dda7bf5b6..b7961ba71933 100644 --- a/third_party/libwebrtc/README.mozilla +++ b/third_party/libwebrtc/README.mozilla @@ -14166,3 +14166,5 @@ libwebrtc updated from /home/mfroman/mozilla/moz-central/.moz-fast-forward/moz-l libwebrtc updated from /home/mfroman/mozilla/moz-central/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-04-21T18:27:08.969408. # ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /home/mfroman/mozilla/moz-central/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc libwebrtc updated from /home/mfroman/mozilla/moz-central/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-04-21T18:28:05.264205. +# ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /home/mfroman/mozilla/moz-central/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc +libwebrtc updated from /home/mfroman/mozilla/moz-central/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2023-04-24T22:45:23.860631. diff --git a/third_party/libwebrtc/audio/BUILD.gn b/third_party/libwebrtc/audio/BUILD.gn index 199061586ba4..183a99b1a1b2 100644 --- a/third_party/libwebrtc/audio/BUILD.gn +++ b/third_party/libwebrtc/audio/BUILD.gn @@ -160,6 +160,7 @@ if (rtc_include_tests) { deps = [ ":audio", ":audio_end_to_end_test", + ":channel_receive_unittest", "../api:libjingle_peerconnection_api", "../api:mock_audio_mixer", "../api:mock_frame_decryptor", @@ -181,6 +182,7 @@ if (rtc_include_tests) { "../call:rtp_sender", "../common_audio", "../logging:mocks", + "../modules/audio_device:audio_device_api", "../modules/audio_device:audio_device_impl", # For TestAudioDeviceModule "../modules/audio_device:mock_audio_device", "../modules/audio_mixer:audio_mixer_impl", @@ -197,6 +199,7 @@ if (rtc_include_tests) { "../rtc_base:rtc_base_tests_utils", "../rtc_base:safe_compare", "../rtc_base:task_queue_for_test", + "../rtc_base:threading", "../rtc_base:timeutils", "../system_wrappers", "../test:audio_codec_mocks", @@ -214,6 +217,22 @@ if (rtc_include_tests) { ] } + rtc_library("channel_receive_unittest") { + testonly = true + sources = [ "channel_receive_unittest.cc" ] + deps = [ + ":audio", + "../api/crypto:frame_decryptor_interface", + "../api/task_queue:default_task_queue_factory", + "../modules/audio_device:audio_device_api", + "../modules/audio_device:mock_audio_device", + "../rtc_base:threading", + "../test:mock_transport", + "../test:test_support", + "../test/time_controller", + ] + } + if (rtc_enable_protobuf && !build_with_chromium) { rtc_test("low_bandwidth_audio_test") { testonly = true diff --git a/third_party/libwebrtc/audio/channel_receive_unittest.cc b/third_party/libwebrtc/audio/channel_receive_unittest.cc new file mode 100644 index 000000000000..3d9baebe894f --- /dev/null +++ b/third_party/libwebrtc/audio/channel_receive_unittest.cc @@ -0,0 +1,50 @@ +/* + * Copyright 2023 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "audio/channel_receive.h" + +#include "api/crypto/frame_decryptor_interface.h" +#include "api/task_queue/default_task_queue_factory.h" +#include "modules/audio_device/include/audio_device.h" +#include "modules/audio_device/include/mock_audio_device.h" +#include "rtc_base/thread.h" +#include "test/gmock.h" +#include "test/gtest.h" +#include "test/mock_transport.h" +#include "test/time_controller/simulated_time_controller.h" + +namespace webrtc { +namespace voe { + +TEST(ChannelReceiveTest, CreateAndDestroy) { + GlobalSimulatedTimeController time_controller(Timestamp::Seconds(5555)); + uint32_t local_ssrc = 1111; + uint32_t remote_ssrc = 2222; + webrtc::CryptoOptions crypto_options; + rtc::scoped_refptr audio_device_module = + test::MockAudioDeviceModule::CreateNice(); + MockTransport transport; + auto channel = CreateChannelReceive( + time_controller.GetClock(), + /* neteq_factory= */ nullptr, audio_device_module.get(), &transport, + /* rtc_event_log= */ nullptr, local_ssrc, remote_ssrc, + /* jitter_buffer_max_packets= */ 0, + /* jitter_buffer_fast_playout= */ false, + /* jitter_buffer_min_delay_ms= */ 0, + /* enable_non_sender_rtt= */ false, + /* decoder_factory= */ nullptr, + /* codec_pair_id= */ absl::nullopt, + /* frame_decryptor_interface= */ nullptr, crypto_options, + /* frame_transformer= */ nullptr); + EXPECT_TRUE(!!channel); +} + +} // namespace voe +} // namespace webrtc