1 /* 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "webrtc/voice_engine/transmit_mixer.h" 12 13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "webrtc/voice_engine/include/voe_external_media.h" 15 16 namespace webrtc { 17 namespace voe { 18 namespace { 19 20 class MediaCallback : public VoEMediaProcess { 21 public: 22 virtual void Process(int channel, ProcessingTypes type, 23 int16_t audio[], int samples_per_channel, 24 int sample_rate_hz, bool is_stereo) { 25 } 26 }; 27 28 // TODO(andrew): Mock VoEMediaProcess, and verify the behavior when calling 29 // PrepareDemux(). 30 TEST(TransmitMixerTest, RegisterExternalMediaCallback) { 31 TransmitMixer* tm = NULL; 32 ASSERT_EQ(0, TransmitMixer::Create(tm, 0)); 33 ASSERT_TRUE(tm != NULL); 34 MediaCallback callback; 35 EXPECT_EQ(-1, tm->RegisterExternalMediaProcessing(NULL, 36 kRecordingPreprocessing)); 37 EXPECT_EQ(-1, tm->RegisterExternalMediaProcessing(&callback, 38 kPlaybackPerChannel)); 39 EXPECT_EQ(-1, tm->RegisterExternalMediaProcessing(&callback, 40 kPlaybackAllChannelsMixed)); 41 EXPECT_EQ(-1, tm->RegisterExternalMediaProcessing(&callback, 42 kRecordingPerChannel)); 43 EXPECT_EQ(0, tm->RegisterExternalMediaProcessing(&callback, 44 kRecordingAllChannelsMixed)); 45 EXPECT_EQ(0, tm->RegisterExternalMediaProcessing(&callback, 46 kRecordingPreprocessing)); 47 EXPECT_EQ(-1, tm->DeRegisterExternalMediaProcessing(kPlaybackPerChannel)); 48 EXPECT_EQ(-1, tm->DeRegisterExternalMediaProcessing( 49 kPlaybackAllChannelsMixed)); 50 EXPECT_EQ(-1, tm->DeRegisterExternalMediaProcessing(kRecordingPerChannel)); 51 EXPECT_EQ(0, tm->DeRegisterExternalMediaProcessing( 52 kRecordingAllChannelsMixed)); 53 EXPECT_EQ(0, tm->DeRegisterExternalMediaProcessing(kRecordingPreprocessing)); 54 TransmitMixer::Destroy(tm); 55 } 56 57 } // namespace 58 } // namespace voe 59 } // namespace webrtc 60