Clean out unused methods from VoiceEngine and VoEBase.
BUG=webrtc:4690 Review-Url: https://codereview.webrtc.org/3018523002 Cr-Commit-Position: refs/heads/master@{#19880}
This commit is contained in:
parent
2c9ac29c5b
commit
35dee81321
@ -160,7 +160,6 @@ rtc_static_library("rtc_audio_video") {
|
||||
"engine/videodecodersoftwarefallbackwrapper.h",
|
||||
"engine/videoencodersoftwarefallbackwrapper.cc",
|
||||
"engine/videoencodersoftwarefallbackwrapper.h",
|
||||
"engine/webrtccommon.h",
|
||||
"engine/webrtcmediaengine.cc",
|
||||
"engine/webrtcmediaengine.h",
|
||||
"engine/webrtcvideocapturer.cc",
|
||||
|
||||
@ -98,16 +98,10 @@ class FakeWebRtcVoiceEngine : public webrtc::VoEBase {
|
||||
channels_.erase(channel);
|
||||
return 0;
|
||||
}
|
||||
WEBRTC_STUB(StartReceive, (int channel));
|
||||
WEBRTC_STUB(StartPlayout, (int channel));
|
||||
WEBRTC_STUB(StartSend, (int channel));
|
||||
WEBRTC_STUB(StopReceive, (int channel));
|
||||
WEBRTC_STUB(StopPlayout, (int channel));
|
||||
WEBRTC_STUB(StopSend, (int channel));
|
||||
WEBRTC_STUB(GetVersion, (char version[1024]));
|
||||
WEBRTC_STUB(LastError, ());
|
||||
WEBRTC_STUB(AssociateSendChannel, (int channel,
|
||||
int accociate_send_channel));
|
||||
|
||||
size_t GetNetEqCapacity() const {
|
||||
auto ch = channels_.find(last_channel_);
|
||||
|
||||
@ -1,58 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2004 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.
|
||||
*/
|
||||
|
||||
#ifndef MEDIA_ENGINE_WEBRTCCOMMON_H_
|
||||
#define MEDIA_ENGINE_WEBRTCCOMMON_H_
|
||||
|
||||
#include "common_types.h" // NOLINT(build/include)
|
||||
|
||||
namespace cricket {
|
||||
|
||||
// Tracing helpers, for easy logging when WebRTC calls fail.
|
||||
// Example: "LOG_RTCERR1(StartSend, channel);" produces the trace
|
||||
// "StartSend(1) failed, err=XXXX"
|
||||
// The method GetLastEngineError must be defined in the calling scope.
|
||||
#define LOG_RTCERR0(func) \
|
||||
LOG_RTCERR0_EX(func, GetLastEngineError())
|
||||
#define LOG_RTCERR1(func, a1) \
|
||||
LOG_RTCERR1_EX(func, a1, GetLastEngineError())
|
||||
#define LOG_RTCERR2(func, a1, a2) \
|
||||
LOG_RTCERR2_EX(func, a1, a2, GetLastEngineError())
|
||||
#define LOG_RTCERR3(func, a1, a2, a3) \
|
||||
LOG_RTCERR3_EX(func, a1, a2, a3, GetLastEngineError())
|
||||
#define LOG_RTCERR4(func, a1, a2, a3, a4) \
|
||||
LOG_RTCERR4_EX(func, a1, a2, a3, a4, GetLastEngineError())
|
||||
#define LOG_RTCERR5(func, a1, a2, a3, a4, a5) \
|
||||
LOG_RTCERR5_EX(func, a1, a2, a3, a4, a5, GetLastEngineError())
|
||||
#define LOG_RTCERR6(func, a1, a2, a3, a4, a5, a6) \
|
||||
LOG_RTCERR6_EX(func, a1, a2, a3, a4, a5, a6, GetLastEngineError())
|
||||
#define LOG_RTCERR0_EX(func, err) LOG(LS_WARNING) \
|
||||
<< "" << #func << "() failed, err=" << err
|
||||
#define LOG_RTCERR1_EX(func, a1, err) LOG(LS_WARNING) \
|
||||
<< "" << #func << "(" << a1 << ") failed, err=" << err
|
||||
#define LOG_RTCERR2_EX(func, a1, a2, err) LOG(LS_WARNING) \
|
||||
<< "" << #func << "(" << a1 << ", " << a2 << ") failed, err=" \
|
||||
<< err
|
||||
#define LOG_RTCERR3_EX(func, a1, a2, a3, err) LOG(LS_WARNING) \
|
||||
<< "" << #func << "(" << a1 << ", " << a2 << ", " << a3 \
|
||||
<< ") failed, err=" << err
|
||||
#define LOG_RTCERR4_EX(func, a1, a2, a3, a4, err) LOG(LS_WARNING) \
|
||||
<< "" << #func << "(" << a1 << ", " << a2 << ", " << a3 \
|
||||
<< ", " << a4 << ") failed, err=" << err
|
||||
#define LOG_RTCERR5_EX(func, a1, a2, a3, a4, a5, err) LOG(LS_WARNING) \
|
||||
<< "" << #func << "(" << a1 << ", " << a2 << ", " << a3 \
|
||||
<< ", " << a4 << ", " << a5 << ") failed, err=" << err
|
||||
#define LOG_RTCERR6_EX(func, a1, a2, a3, a4, a5, a6, err) LOG(LS_WARNING) \
|
||||
<< "" << #func << "(" << a1 << ", " << a2 << ", " << a3 \
|
||||
<< ", " << a4 << ", " << a5 << ", " << a6 << ") failed, err=" << err
|
||||
|
||||
} // namespace cricket
|
||||
|
||||
#endif // MEDIA_ENGINE_WEBRTCCOMMON_H_
|
||||
@ -13,8 +13,6 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "media/engine/webrtccommon.h"
|
||||
|
||||
#include "common_types.h" // NOLINT(build/include)
|
||||
#include "modules/audio_device/include/audio_device.h"
|
||||
#include "voice_engine/include/voe_base.h"
|
||||
@ -83,7 +81,6 @@ class VoEWrapper {
|
||||
~VoEWrapper() {}
|
||||
webrtc::VoiceEngine* engine() const { return engine_.get(); }
|
||||
webrtc::VoEBase* base() const { return base_.get(); }
|
||||
int error() { return base_->LastError(); }
|
||||
|
||||
private:
|
||||
scoped_voe_engine engine_;
|
||||
|
||||
@ -290,7 +290,6 @@ void WebRtcVoiceEngine::Init() {
|
||||
// Temporarily turn logging level up for the Init() call.
|
||||
webrtc::Trace::SetTraceCallback(this);
|
||||
webrtc::Trace::set_level_filter(kElevatedTraceFilter);
|
||||
LOG(LS_INFO) << webrtc::VoiceEngine::GetVersionString();
|
||||
RTC_CHECK_EQ(0,
|
||||
voe_wrapper_->base()->Init(adm_.get(), apm(), decoder_factory_));
|
||||
webrtc::Trace::set_level_filter(kDefaultTraceFilter);
|
||||
@ -628,14 +627,18 @@ bool WebRtcVoiceEngine::ApplyOptions(const AudioOptions& options_in) {
|
||||
LOG(LS_INFO) << "Recording sample rate is "
|
||||
<< *options.recording_sample_rate;
|
||||
if (adm()->SetRecordingSampleRate(*options.recording_sample_rate)) {
|
||||
LOG_RTCERR1(SetRecordingSampleRate, *options.recording_sample_rate);
|
||||
LOG(LS_WARNING) << "SetRecordingSampleRate("
|
||||
<< *options.recording_sample_rate << ") failed, err="
|
||||
<< adm()->LastError();
|
||||
}
|
||||
}
|
||||
|
||||
if (options.playout_sample_rate) {
|
||||
LOG(LS_INFO) << "Playout sample rate is " << *options.playout_sample_rate;
|
||||
if (adm()->SetPlayoutSampleRate(*options.playout_sample_rate)) {
|
||||
LOG_RTCERR1(SetPlayoutSampleRate, *options.playout_sample_rate);
|
||||
LOG(LS_WARNING) << "SetPlayoutSampleRate("
|
||||
<< *options.playout_sample_rate << ") failed, err="
|
||||
<< adm()->LastError();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@ -673,11 +676,6 @@ RtpCapabilities WebRtcVoiceEngine::GetCapabilities() const {
|
||||
return capabilities;
|
||||
}
|
||||
|
||||
int WebRtcVoiceEngine::GetLastEngineError() {
|
||||
RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
|
||||
return voe_wrapper_->error();
|
||||
}
|
||||
|
||||
void WebRtcVoiceEngine::Print(webrtc::TraceLevel level, const char* trace,
|
||||
int length) {
|
||||
// Note: This callback can happen on any thread!
|
||||
@ -1832,7 +1830,7 @@ bool WebRtcVoiceMediaChannel::SetAudioSend(uint32_t ssrc,
|
||||
int WebRtcVoiceMediaChannel::CreateVoEChannel() {
|
||||
int id = engine()->CreateVoEChannel();
|
||||
if (id == -1) {
|
||||
LOG_RTCERR0(CreateVoEChannel);
|
||||
LOG(LS_WARNING) << "CreateVoEChannel() failed.";
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -1841,7 +1839,7 @@ int WebRtcVoiceMediaChannel::CreateVoEChannel() {
|
||||
|
||||
bool WebRtcVoiceMediaChannel::DeleteVoEChannel(int channel) {
|
||||
if (engine()->voe()->base()->DeleteChannel(channel) == -1) {
|
||||
LOG_RTCERR1(DeleteChannel, channel);
|
||||
LOG(LS_WARNING) << "DeleteChannel(" << channel << ") failed.";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
@ -22,7 +22,6 @@
|
||||
#include "call/call.h"
|
||||
#include "media/base/rtputils.h"
|
||||
#include "media/engine/apm_helpers.h"
|
||||
#include "media/engine/webrtccommon.h"
|
||||
#include "media/engine/webrtcvoe.h"
|
||||
#include "modules/audio_processing/include/audio_processing.h"
|
||||
#include "pc/channel.h"
|
||||
@ -89,7 +88,6 @@ class WebRtcVoiceEngine final : public webrtc::TraceCallback {
|
||||
void UnregisterChannel(WebRtcVoiceMediaChannel* channel);
|
||||
|
||||
VoEWrapper* voe() { return voe_wrapper_.get(); }
|
||||
int GetLastEngineError();
|
||||
|
||||
// Starts AEC dump using an existing file. A maximum file size in bytes can be
|
||||
// specified. When the maximum file size is reached, logging is stopped and
|
||||
@ -249,7 +247,6 @@ class WebRtcVoiceMediaChannel final : public VoiceMediaChannel,
|
||||
bool MuteStream(uint32_t ssrc, bool mute);
|
||||
|
||||
WebRtcVoiceEngine* engine() { return engine_; }
|
||||
int GetLastEngineError() { return engine()->GetLastEngineError(); }
|
||||
void ChangePlayout(bool playout);
|
||||
int CreateVoEChannel();
|
||||
bool DeleteVoEChannel(int channel);
|
||||
|
||||
@ -107,17 +107,11 @@ class MockVoiceEngine : public VoiceEngineImpl {
|
||||
MOCK_METHOD0(CreateChannel, int());
|
||||
MOCK_METHOD1(CreateChannel, int(const ChannelConfig& config));
|
||||
MOCK_METHOD1(DeleteChannel, int(int channel));
|
||||
MOCK_METHOD1(StartReceive, int(int channel));
|
||||
MOCK_METHOD1(StopReceive, int(int channel));
|
||||
MOCK_METHOD1(StartPlayout, int(int channel));
|
||||
MOCK_METHOD1(StopPlayout, int(int channel));
|
||||
MOCK_METHOD1(StartSend, int(int channel));
|
||||
MOCK_METHOD1(StopSend, int(int channel));
|
||||
MOCK_METHOD1(GetVersion, int(char version[1024]));
|
||||
MOCK_METHOD0(LastError, int());
|
||||
MOCK_METHOD0(audio_transport, AudioTransport*());
|
||||
MOCK_METHOD2(AssociateSendChannel,
|
||||
int(int channel, int accociate_send_channel));
|
||||
|
||||
// VoECodec
|
||||
MOCK_METHOD0(NumOfCodecs, int());
|
||||
|
||||
@ -73,20 +73,6 @@ class WEBRTC_DLLEXPORT VoiceEngine {
|
||||
// references have been released.
|
||||
static bool Delete(VoiceEngine*& voiceEngine);
|
||||
|
||||
// Specifies the amount and type of trace information which will be
|
||||
// created by the VoiceEngine.
|
||||
static int SetTraceFilter(unsigned int filter);
|
||||
|
||||
// Sets the name of the trace file and enables non-encrypted trace messages.
|
||||
static int SetTraceFile(const char* fileNameUTF8,
|
||||
bool addFileCounter = false);
|
||||
|
||||
// Installs the TraceCallback implementation to ensure that the user
|
||||
// receives callbacks for generated trace messages.
|
||||
static int SetTraceCallback(TraceCallback* callback);
|
||||
|
||||
static std::string GetVersionString();
|
||||
|
||||
protected:
|
||||
VoiceEngine() {}
|
||||
~VoiceEngine() {}
|
||||
@ -158,13 +144,6 @@ class WEBRTC_DLLEXPORT VoEBase {
|
||||
// Returns -1 in case of an error, 0 otherwise.
|
||||
virtual int DeleteChannel(int channel) = 0;
|
||||
|
||||
// Prepares and initiates the VoiceEngine for reception of
|
||||
// incoming RTP/RTCP packets on the specified |channel|.
|
||||
virtual int StartReceive(int channel) = 0;
|
||||
|
||||
// Stops receiving incoming RTP/RTCP packets on the specified |channel|.
|
||||
virtual int StopReceive(int channel) { return 0; }
|
||||
|
||||
// Starts forwarding the packets to the mixer/soundcard for a
|
||||
// specified |channel|.
|
||||
virtual int StartPlayout(int channel) = 0;
|
||||
@ -180,22 +159,10 @@ class WEBRTC_DLLEXPORT VoEBase {
|
||||
// Stops sending packets from a specified |channel|.
|
||||
virtual int StopSend(int channel) = 0;
|
||||
|
||||
// Gets the version information for VoiceEngine and its components.
|
||||
virtual int GetVersion(char version[1024]) = 0;
|
||||
|
||||
// Gets the last VoiceEngine error code.
|
||||
virtual int LastError() = 0;
|
||||
|
||||
// TODO(xians): Make the interface pure virtual after libjingle
|
||||
// implements the interface in its FakeWebRtcVoiceEngine.
|
||||
virtual AudioTransport* audio_transport() { return NULL; }
|
||||
|
||||
// Associate a send channel to a receive channel.
|
||||
// Used for obtaining RTT for a receive-only channel.
|
||||
// One should be careful not to crate a circular association, e.g.,
|
||||
// 1 <- 2 <- 1.
|
||||
virtual int AssociateSendChannel(int channel, int accociate_send_channel) = 0;
|
||||
|
||||
protected:
|
||||
VoEBase() {}
|
||||
virtual ~VoEBase() {}
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2012 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.
|
||||
*/
|
||||
|
||||
#ifndef VOICE_ENGINE_MOCK_VOE_OBSERVER_H_
|
||||
#define VOICE_ENGINE_MOCK_VOE_OBSERVER_H_
|
||||
|
||||
#include "test/gmock.h"
|
||||
#include "voice_engine/include/voe_base.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
class MockVoEObserver: public VoiceEngineObserver {
|
||||
public:
|
||||
MockVoEObserver() {}
|
||||
virtual ~MockVoEObserver() {}
|
||||
|
||||
MOCK_METHOD2(CallbackOnError, void(int channel, int error_code));
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // VOICE_ENGINE_MOCK_VOE_OBSERVER_H_
|
||||
@ -81,18 +81,6 @@ int32_t Statistics::SetLastError(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int32_t Statistics::LastError() const
|
||||
{
|
||||
int32_t ret;
|
||||
{
|
||||
rtc::CritScope cs(&lock_);
|
||||
ret = _lastError;
|
||||
}
|
||||
WEBRTC_TRACE(kTraceStateInfo, kTraceVoice, VoEId(_instanceId, -1),
|
||||
"LastError() => %d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
} // namespace voe
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
@ -36,7 +36,6 @@ class Statistics
|
||||
int32_t SetLastError(int32_t error,
|
||||
TraceLevel level,
|
||||
const char* msg) const;
|
||||
int32_t LastError() const;
|
||||
|
||||
private:
|
||||
rtc::CriticalSection lock_;
|
||||
|
||||
@ -468,22 +468,6 @@ int VoEBaseImpl::DeleteChannel(int channel) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int VoEBaseImpl::StartReceive(int channel) {
|
||||
rtc::CritScope cs(shared_->crit_sec());
|
||||
if (!shared_->statistics().Initialized()) {
|
||||
shared_->SetLastError(VE_NOT_INITED, kTraceError);
|
||||
return -1;
|
||||
}
|
||||
voe::ChannelOwner ch = shared_->channel_manager().GetChannel(channel);
|
||||
voe::Channel* channelPtr = ch.channel();
|
||||
if (channelPtr == nullptr) {
|
||||
shared_->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
|
||||
"StartReceive() failed to locate channel");
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int VoEBaseImpl::StartPlayout(int channel) {
|
||||
rtc::CritScope cs(shared_->crit_sec());
|
||||
if (!shared_->statistics().Initialized()) {
|
||||
@ -569,22 +553,6 @@ int VoEBaseImpl::StopSend(int channel) {
|
||||
return StopSend();
|
||||
}
|
||||
|
||||
int VoEBaseImpl::GetVersion(char version[1024]) {
|
||||
if (version == nullptr) {
|
||||
shared_->SetLastError(VE_INVALID_ARGUMENT, kTraceError);
|
||||
return -1;
|
||||
}
|
||||
|
||||
std::string versionString = VoiceEngine::GetVersionString();
|
||||
RTC_DCHECK_GT(1024, versionString.size() + 1);
|
||||
char* end = std::copy(versionString.cbegin(), versionString.cend(), version);
|
||||
end[0] = '\n';
|
||||
end[1] = '\0';
|
||||
return 0;
|
||||
}
|
||||
|
||||
int VoEBaseImpl::LastError() { return (shared_->statistics().LastError()); }
|
||||
|
||||
int32_t VoEBaseImpl::StartPlayout() {
|
||||
if (!shared_->audio_device()->Playing()) {
|
||||
if (shared_->audio_device()->InitPlayout() != 0) {
|
||||
@ -716,33 +684,4 @@ void VoEBaseImpl::GetPlayoutData(int sample_rate, size_t number_of_channels,
|
||||
*ntp_time_ms = audioFrame_.ntp_time_ms_;
|
||||
}
|
||||
|
||||
int VoEBaseImpl::AssociateSendChannel(int channel,
|
||||
int accociate_send_channel) {
|
||||
rtc::CritScope cs(shared_->crit_sec());
|
||||
|
||||
if (!shared_->statistics().Initialized()) {
|
||||
shared_->SetLastError(VE_NOT_INITED, kTraceError);
|
||||
return -1;
|
||||
}
|
||||
|
||||
voe::ChannelOwner ch = shared_->channel_manager().GetChannel(channel);
|
||||
voe::Channel* channel_ptr = ch.channel();
|
||||
if (channel_ptr == NULL) {
|
||||
shared_->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
|
||||
"AssociateSendChannel() failed to locate channel");
|
||||
return -1;
|
||||
}
|
||||
|
||||
ch = shared_->channel_manager().GetChannel(accociate_send_channel);
|
||||
voe::Channel* accociate_send_channel_ptr = ch.channel();
|
||||
if (accociate_send_channel_ptr == NULL) {
|
||||
shared_->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
|
||||
"AssociateSendChannel() failed to locate accociate_send_channel");
|
||||
return -1;
|
||||
}
|
||||
|
||||
channel_ptr->set_associate_send_channel(ch);
|
||||
return 0;
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
@ -44,20 +44,13 @@ class VoEBaseImpl : public VoEBase,
|
||||
int CreateChannel(const ChannelConfig& config) override;
|
||||
int DeleteChannel(int channel) override;
|
||||
|
||||
int StartReceive(int channel) override;
|
||||
int StartPlayout(int channel) override;
|
||||
int StartSend(int channel) override;
|
||||
int StopPlayout(int channel) override;
|
||||
int StopSend(int channel) override;
|
||||
|
||||
int GetVersion(char version[1024]) override;
|
||||
|
||||
int LastError() override;
|
||||
|
||||
AudioTransport* audio_transport() override { return this; }
|
||||
|
||||
int AssociateSendChannel(int channel, int accociate_send_channel) override;
|
||||
|
||||
// AudioTransport
|
||||
int32_t RecordedDataIsAvailable(const void* audio_data,
|
||||
const size_t number_of_frames,
|
||||
|
||||
@ -10,20 +10,35 @@
|
||||
|
||||
#include "voice_engine/include/voe_base.h"
|
||||
|
||||
#include "modules/audio_processing/include/audio_processing.h"
|
||||
#include "modules/audio_device/include/fake_audio_device.h"
|
||||
#include "modules/audio_processing/include/mock_audio_processing.h"
|
||||
#include "test/gtest.h"
|
||||
#include "voice_engine/channel_manager.h"
|
||||
#include "voice_engine/shared_data.h"
|
||||
#include "voice_engine/voice_engine_fixture.h"
|
||||
#include "voice_engine/voice_engine_impl.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
class VoEBaseTest : public VoiceEngineFixture {};
|
||||
class VoEBaseTest : public ::testing::Test {
|
||||
protected:
|
||||
VoEBaseTest()
|
||||
: voe_(VoiceEngine::Create()),
|
||||
base_(VoEBase::GetInterface(voe_)) {
|
||||
EXPECT_NE(nullptr, base_);
|
||||
apm_ = new rtc::RefCountedObject<test::MockAudioProcessing>();
|
||||
}
|
||||
|
||||
~VoEBaseTest() {
|
||||
EXPECT_EQ(0, base_->Terminate());
|
||||
EXPECT_EQ(1, base_->Release());
|
||||
EXPECT_TRUE(VoiceEngine::Delete(voe_));
|
||||
}
|
||||
|
||||
VoiceEngine* voe_;
|
||||
VoEBase* base_;
|
||||
FakeAudioDeviceModule adm_;
|
||||
rtc::scoped_refptr<AudioProcessing> apm_;
|
||||
};
|
||||
|
||||
TEST_F(VoEBaseTest, InitWithExternalAudioDevice) {
|
||||
EXPECT_EQ(0, base_->Init(&adm_, apm_.get()));
|
||||
EXPECT_EQ(0, base_->LastError());
|
||||
}
|
||||
|
||||
TEST_F(VoEBaseTest, CreateChannelBeforeInitShouldFail) {
|
||||
@ -38,40 +53,4 @@ TEST_F(VoEBaseTest, CreateChannelAfterInit) {
|
||||
EXPECT_EQ(0, base_->DeleteChannel(channelID));
|
||||
}
|
||||
|
||||
TEST_F(VoEBaseTest, AssociateSendChannel) {
|
||||
EXPECT_EQ(0, base_->Init(&adm_, apm_.get()));
|
||||
|
||||
const int channel_1 = base_->CreateChannel();
|
||||
|
||||
// Associating with a channel that does not exist should fail.
|
||||
EXPECT_EQ(-1, base_->AssociateSendChannel(channel_1, channel_1 + 1));
|
||||
|
||||
const int channel_2 = base_->CreateChannel();
|
||||
|
||||
// Let the two channels associate with each other. This is not a normal use
|
||||
// case. Actually, circular association should be avoided in practice. This
|
||||
// is just to test that no crash is caused.
|
||||
EXPECT_EQ(0, base_->AssociateSendChannel(channel_1, channel_2));
|
||||
EXPECT_EQ(0, base_->AssociateSendChannel(channel_2, channel_1));
|
||||
|
||||
voe::SharedData* shared_data = static_cast<voe::SharedData*>(
|
||||
static_cast<VoiceEngineImpl*>(voe_));
|
||||
voe::ChannelOwner reference = shared_data->channel_manager()
|
||||
.GetChannel(channel_1);
|
||||
EXPECT_EQ(0, base_->DeleteChannel(channel_1));
|
||||
// Make sure that the only use of the channel-to-delete is |reference|
|
||||
// at this point.
|
||||
EXPECT_EQ(1, reference.use_count());
|
||||
|
||||
reference = shared_data->channel_manager().GetChannel(channel_2);
|
||||
EXPECT_EQ(0, base_->DeleteChannel(channel_2));
|
||||
EXPECT_EQ(1, reference.use_count());
|
||||
}
|
||||
|
||||
TEST_F(VoEBaseTest, GetVersion) {
|
||||
char v1[1024] = {75};
|
||||
base_->GetVersion(v1);
|
||||
std::string v2 = VoiceEngine::GetVersionString() + "\n";
|
||||
EXPECT_EQ(v2, v1);
|
||||
}
|
||||
} // namespace webrtc
|
||||
|
||||
@ -64,11 +64,6 @@ enum { kVoiceEngineMaxRtpExtensionId = 14 };
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
#define NOT_SUPPORTED(stat) \
|
||||
LOG_F(LS_ERROR) << "not supported"; \
|
||||
stat.SetLastError(VE_FUNC_NOT_SUPPORTED); \
|
||||
return -1;
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
inline int VoEId(int veId, int chId) {
|
||||
|
||||
@ -19,13 +19,11 @@ VoiceEngineFixture::VoiceEngineFixture()
|
||||
network_(VoENetwork::GetInterface(voe_)) {
|
||||
EXPECT_NE(nullptr, base_);
|
||||
EXPECT_NE(nullptr, network_);
|
||||
EXPECT_EQ(0, base_->RegisterVoiceEngineObserver(observer_));
|
||||
apm_ = new rtc::RefCountedObject<test::MockAudioProcessing>();
|
||||
}
|
||||
|
||||
VoiceEngineFixture::~VoiceEngineFixture() {
|
||||
EXPECT_EQ(2, network_->Release());
|
||||
EXPECT_EQ(0, base_->DeRegisterVoiceEngineObserver());
|
||||
EXPECT_EQ(0, base_->Terminate());
|
||||
EXPECT_EQ(1, base_->Release());
|
||||
EXPECT_TRUE(VoiceEngine::Delete(voe_));
|
||||
|
||||
@ -14,7 +14,6 @@
|
||||
#include "test/mock_transport.h"
|
||||
#include "voice_engine/include/voe_base.h"
|
||||
#include "voice_engine/include/voe_network.h"
|
||||
#include "voice_engine/mock/mock_voe_observer.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
@ -26,7 +25,6 @@ class VoiceEngineFixture : public ::testing::Test {
|
||||
VoiceEngine* voe_;
|
||||
VoEBase* base_;
|
||||
VoENetwork* network_;
|
||||
MockVoEObserver observer_;
|
||||
FakeAudioDeviceModule adm_;
|
||||
MockTransport transport_;
|
||||
rtc::scoped_refptr<AudioProcessing> apm_;
|
||||
|
||||
@ -74,40 +74,6 @@ VoiceEngine* VoiceEngine::Create() {
|
||||
return GetVoiceEngine();
|
||||
}
|
||||
|
||||
int VoiceEngine::SetTraceFilter(unsigned int filter) {
|
||||
WEBRTC_TRACE(kTraceApiCall, kTraceVoice,
|
||||
VoEId(gVoiceEngineInstanceCounter, -1),
|
||||
"SetTraceFilter(filter=0x%x)", filter);
|
||||
|
||||
// Remember old filter
|
||||
uint32_t oldFilter = Trace::level_filter();
|
||||
Trace::set_level_filter(filter);
|
||||
|
||||
// If previous log was ignored, log again after changing filter
|
||||
if (kTraceNone == oldFilter) {
|
||||
WEBRTC_TRACE(kTraceApiCall, kTraceVoice, -1, "SetTraceFilter(filter=0x%x)",
|
||||
filter);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int VoiceEngine::SetTraceFile(const char* fileNameUTF8, bool addFileCounter) {
|
||||
int ret = Trace::SetTraceFile(fileNameUTF8, addFileCounter);
|
||||
WEBRTC_TRACE(kTraceApiCall, kTraceVoice,
|
||||
VoEId(gVoiceEngineInstanceCounter, -1),
|
||||
"SetTraceFile(fileNameUTF8=%s, addFileCounter=%d)", fileNameUTF8,
|
||||
addFileCounter);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
int VoiceEngine::SetTraceCallback(TraceCallback* callback) {
|
||||
WEBRTC_TRACE(kTraceApiCall, kTraceVoice,
|
||||
VoEId(gVoiceEngineInstanceCounter, -1),
|
||||
"SetTraceCallback(callback=0x%x)", callback);
|
||||
return (Trace::SetTraceCallback(callback));
|
||||
}
|
||||
|
||||
bool VoiceEngine::Delete(VoiceEngine*& voiceEngine) {
|
||||
if (voiceEngine == NULL)
|
||||
return false;
|
||||
@ -127,13 +93,4 @@ bool VoiceEngine::Delete(VoiceEngine*& voiceEngine) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
std::string VoiceEngine::GetVersionString() {
|
||||
std::string version = "VoiceEngine 4.1.0";
|
||||
#ifdef WEBRTC_EXTERNAL_TRANSPORT
|
||||
version += " (External transport build)";
|
||||
#endif
|
||||
return version;
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user