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:
Process(int channel,ProcessingTypes type,int16_t audio[],size_t samples_per_channel,int sample_rate_hz,bool is_stereo)22 virtual void Process(int channel, ProcessingTypes type,
23 int16_t audio[], size_t 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().
TEST(TransmitMixerTest,RegisterExternalMediaCallback)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