summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/audio/channel_receive_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/audio/channel_receive_unittest.cc')
-rw-r--r--third_party/libwebrtc/audio/channel_receive_unittest.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/third_party/libwebrtc/audio/channel_receive_unittest.cc b/third_party/libwebrtc/audio/channel_receive_unittest.cc
index 4b7b7c0231..aab8a95d8b 100644
--- a/third_party/libwebrtc/audio/channel_receive_unittest.cc
+++ b/third_party/libwebrtc/audio/channel_receive_unittest.cc
@@ -29,6 +29,7 @@
#include "test/gmock.h"
#include "test/gtest.h"
#include "test/mock_audio_decoder_factory.h"
+#include "test/mock_frame_transformer.h"
#include "test/mock_transport.h"
#include "test/time_controller/simulated_time_controller.h"
@@ -226,6 +227,41 @@ TEST_F(ChannelReceiveTest, CaptureStartTimeBecomesValid) {
EXPECT_NE(ProbeCaptureStartNtpTime(*channel), -1);
}
+TEST_F(ChannelReceiveTest, SettingFrameTransformer) {
+ auto channel = CreateTestChannelReceive();
+
+ rtc::scoped_refptr<MockFrameTransformer> mock_frame_transformer =
+ rtc::make_ref_counted<MockFrameTransformer>();
+
+ EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback);
+ channel->SetDepacketizerToDecoderFrameTransformer(mock_frame_transformer);
+
+ // Must start playout, otherwise packet is discarded.
+ channel->StartPlayout();
+
+ RtpPacketReceived packet = CreateRtpPacket();
+
+ // Receive one RTP packet, this should be transformed.
+ EXPECT_CALL(*mock_frame_transformer, Transform);
+ channel->OnRtpPacket(packet);
+}
+
+TEST_F(ChannelReceiveTest, SettingFrameTransformerMultipleTimes) {
+ auto channel = CreateTestChannelReceive();
+
+ rtc::scoped_refptr<MockFrameTransformer> mock_frame_transformer =
+ rtc::make_ref_counted<MockFrameTransformer>();
+
+ EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback);
+ channel->SetDepacketizerToDecoderFrameTransformer(mock_frame_transformer);
+
+ // Set the same transformer again, shouldn't cause any additional callback
+ // registration calls.
+ EXPECT_CALL(*mock_frame_transformer, RegisterTransformedFrameCallback)
+ .Times(0);
+ channel->SetDepacketizerToDecoderFrameTransformer(mock_frame_transformer);
+}
+
} // namespace
} // namespace voe
} // namespace webrtc