Consistently use DCHECK, not ASSERT or assert in talk/media/webrtc/.

BUG=
R=pbos@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/49929004

Cr-Commit-Position: refs/heads/master@{#9156}
This commit is contained in:
Fredrik Solenberg 2015-05-07 17:07:34 +02:00
parent e444a3dcd3
commit d3ddc1b69e
9 changed files with 60 additions and 64 deletions

View File

@ -30,6 +30,7 @@
#include <algorithm> #include <algorithm>
#include "talk/media/base/rtputils.h" #include "talk/media/base/rtputils.h"
#include "webrtc/base/checks.h"
#include "webrtc/base/gunit.h" #include "webrtc/base/gunit.h"
namespace cricket { namespace cricket {
@ -54,7 +55,7 @@ FakeVideoSendStream::FakeVideoSendStream(
config_(config), config_(config),
codec_settings_set_(false), codec_settings_set_(false),
num_swapped_frames_(0) { num_swapped_frames_(0) {
assert(config.encoder_settings.encoder != NULL); DCHECK(config.encoder_settings.encoder != NULL);
ReconfigureVideoEncoder(encoder_config); ReconfigureVideoEncoder(encoder_config);
} }

View File

@ -54,12 +54,6 @@ namespace cricket {
#define WEBRTC_BOOL_FUNC(method, args) bool method args override #define WEBRTC_BOOL_FUNC(method, args) bool method args override
#define WEBRTC_VOID_FUNC(method, args) void method args override #define WEBRTC_VOID_FUNC(method, args) void method args override
#define WEBRTC_CHECK_CHANNEL(channel) \
if (channels_.find(channel) == channels_.end()) return -1;
#define WEBRTC_ASSERT_CHANNEL(channel) \
ASSERT(channels_.find(channel) != channels_.end());
} // namespace cricket } // namespace cricket
#endif // TALK_SESSION_PHONE_FAKEWEBRTCCOMMON_H_ #endif // TALK_SESSION_PHONE_FAKEWEBRTCCOMMON_H_

View File

@ -45,12 +45,6 @@
namespace cricket { namespace cricket {
#define WEBRTC_CHECK_CAPTURER(capturer) \
if (capturers_.find(capturer) == capturers_.end()) return -1;
#define WEBRTC_ASSERT_CAPTURER(capturer) \
ASSERT(capturers_.find(capturer) != capturers_.end());
static const int kMinVideoBitrate = 100; static const int kMinVideoBitrate = 100;
static const int kStartVideoBitrate = 300; static const int kStartVideoBitrate = 300;
static const int kMaxVideoBitrate = 1000; static const int kMaxVideoBitrate = 1000;

View File

@ -38,6 +38,7 @@
#include "talk/media/webrtc/fakewebrtccommon.h" #include "talk/media/webrtc/fakewebrtccommon.h"
#include "talk/media/webrtc/webrtcvoe.h" #include "talk/media/webrtc/webrtcvoe.h"
#include "webrtc/base/basictypes.h" #include "webrtc/base/basictypes.h"
#include "webrtc/base/checks.h"
#include "webrtc/base/gunit.h" #include "webrtc/base/gunit.h"
#include "webrtc/base/stringutils.h" #include "webrtc/base/stringutils.h"
#include "webrtc/modules/audio_processing/include/audio_processing.h" #include "webrtc/modules/audio_processing/include/audio_processing.h"
@ -83,6 +84,12 @@ static const webrtc::NetworkStatistics kNetStats = {
7654, // int addedSamples; 7654, // int addedSamples;
}; // These random but non-trivial numbers are used for testing. }; // These random but non-trivial numbers are used for testing.
#define WEBRTC_CHECK_CHANNEL(channel) \
if (channels_.find(channel) == channels_.end()) return -1;
#define WEBRTC_ASSERT_CHANNEL(channel) \
DCHECK(channels_.find(channel) != channels_.end());
// Verify the header extension ID, if enabled, is within the bounds specified in // Verify the header extension ID, if enabled, is within the bounds specified in
// [RFC5285]: 1-14 inclusive. // [RFC5285]: 1-14 inclusive.
#define WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id) \ #define WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id) \
@ -355,7 +362,7 @@ class FakeWebRtcVoiceEngine
return channels_[channel]->packets.empty(); return channels_[channel]->packets.empty();
} }
void TriggerCallbackOnError(int channel_num, int err_code) { void TriggerCallbackOnError(int channel_num, int err_code) {
ASSERT(observer_ != NULL); DCHECK(observer_ != NULL);
observer_->CallbackOnError(channel_num, err_code); observer_->CallbackOnError(channel_num, err_code);
} }
void set_playout_fail_channel(int channel) { void set_playout_fail_channel(int channel) {

View File

@ -264,7 +264,7 @@ bool WebRtcVideoCapturer::SetApplyRotation(bool enable) {
// Can't take lock here as this will cause deadlock with // Can't take lock here as this will cause deadlock with
// OnIncomingCapturedFrame. In fact, the whole method, including methods it // OnIncomingCapturedFrame. In fact, the whole method, including methods it
// calls, can't take lock. // calls, can't take lock.
assert(module_); DCHECK(module_);
const std::string group_name = const std::string group_name =
webrtc::field_trial::FindFullName("WebRTC-CVO"); webrtc::field_trial::FindFullName("WebRTC-CVO");

View File

@ -52,7 +52,7 @@
#define UNIMPLEMENTED \ #define UNIMPLEMENTED \
LOG(LS_ERROR) << "Call to unimplemented function " << __FUNCTION__; \ LOG(LS_ERROR) << "Call to unimplemented function " << __FUNCTION__; \
ASSERT(false) RTC_NOTREACHED()
namespace cricket { namespace cricket {
namespace { namespace {
@ -105,7 +105,7 @@ class WebRtcSimulcastEncoderFactory
webrtc::VideoEncoder* CreateVideoEncoder( webrtc::VideoEncoder* CreateVideoEncoder(
webrtc::VideoCodecType type) override { webrtc::VideoCodecType type) override {
ASSERT(factory_ != NULL); DCHECK(factory_ != NULL);
// If it's a codec type we can simulcast, create a wrapped encoder. // If it's a codec type we can simulcast, create a wrapped encoder.
if (type == webrtc::kVideoCodecVP8) { if (type == webrtc::kVideoCodecVP8) {
return new webrtc::SimulcastEncoderAdapter( return new webrtc::SimulcastEncoderAdapter(
@ -558,14 +558,14 @@ WebRtcVideoEngine2::~WebRtcVideoEngine2() {
} }
void WebRtcVideoEngine2::SetCallFactory(WebRtcCallFactory* call_factory) { void WebRtcVideoEngine2::SetCallFactory(WebRtcCallFactory* call_factory) {
assert(!initialized_); DCHECK(!initialized_);
call_factory_ = call_factory; call_factory_ = call_factory;
} }
bool WebRtcVideoEngine2::Init(rtc::Thread* worker_thread) { bool WebRtcVideoEngine2::Init(rtc::Thread* worker_thread) {
LOG(LS_INFO) << "WebRtcVideoEngine2::Init"; LOG(LS_INFO) << "WebRtcVideoEngine2::Init";
worker_thread_ = worker_thread; worker_thread_ = worker_thread;
ASSERT(worker_thread_ != NULL); DCHECK(worker_thread_ != NULL);
initialized_ = true; initialized_ = true;
return true; return true;
@ -605,7 +605,7 @@ bool WebRtcVideoEngine2::SetDefaultEncoderConfig(
WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel( WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel(
const VideoOptions& options, const VideoOptions& options,
VoiceMediaChannel* voice_channel) { VoiceMediaChannel* voice_channel) {
assert(initialized_); DCHECK(initialized_);
LOG(LS_INFO) << "CreateChannel: " LOG(LS_INFO) << "CreateChannel: "
<< (voice_channel != NULL ? "With" : "Without") << (voice_channel != NULL ? "With" : "Without")
<< " voice channel. Options: " << options.ToString(); << " voice channel. Options: " << options.ToString();
@ -635,20 +635,20 @@ void WebRtcVideoEngine2::SetLogging(int min_sev, const char* filter) {
LOG(LS_VERBOSE) << "SetLogging: " << min_sev << '"' << filter << '"'; LOG(LS_VERBOSE) << "SetLogging: " << min_sev << '"' << filter << '"';
// if min_sev == -1, we keep the current log level. // if min_sev == -1, we keep the current log level.
if (min_sev < 0) { if (min_sev < 0) {
assert(min_sev == -1); DCHECK(min_sev == -1);
return; return;
} }
} }
void WebRtcVideoEngine2::SetExternalDecoderFactory( void WebRtcVideoEngine2::SetExternalDecoderFactory(
WebRtcVideoDecoderFactory* decoder_factory) { WebRtcVideoDecoderFactory* decoder_factory) {
assert(!initialized_); DCHECK(!initialized_);
external_decoder_factory_ = decoder_factory; external_decoder_factory_ = decoder_factory;
} }
void WebRtcVideoEngine2::SetExternalEncoderFactory( void WebRtcVideoEngine2::SetExternalEncoderFactory(
WebRtcVideoEncoderFactory* encoder_factory) { WebRtcVideoEncoderFactory* encoder_factory) {
assert(!initialized_); DCHECK(!initialized_);
if (external_encoder_factory_ == encoder_factory) if (external_encoder_factory_ == encoder_factory)
return; return;
@ -694,7 +694,7 @@ bool WebRtcVideoEngine2::FindCodec(const VideoCodec& in) {
bool WebRtcVideoEngine2::CanSendCodec(const VideoCodec& requested, bool WebRtcVideoEngine2::CanSendCodec(const VideoCodec& requested,
const VideoCodec& current, const VideoCodec& current,
VideoCodec* out) { VideoCodec* out) {
assert(out != NULL); DCHECK(out != NULL);
if (requested.width != requested.height && if (requested.width != requested.height &&
(requested.height == 0 || requested.width == 0)) { (requested.height == 0 || requested.width == 0)) {
@ -760,7 +760,7 @@ std::vector<VideoCodec> WebRtcVideoEngine2::GetSupportedCodecs() const {
// we only support up to 8 external payload types. // we only support up to 8 external payload types.
const int kExternalVideoPayloadTypeBase = 120; const int kExternalVideoPayloadTypeBase = 120;
size_t payload_type = kExternalVideoPayloadTypeBase + i; size_t payload_type = kExternalVideoPayloadTypeBase + i;
assert(payload_type < 128); DCHECK(payload_type < 128);
VideoCodec codec(static_cast<int>(payload_type), VideoCodec codec(static_cast<int>(payload_type),
codecs[i].name, codecs[i].name,
codecs[i].max_width, codecs[i].max_width,
@ -941,7 +941,7 @@ bool WebRtcVideoChannel2::SetSendCodecs(const std::vector<VideoCodec>& codecs) {
send_streams_.begin(); send_streams_.begin();
it != send_streams_.end(); it != send_streams_.end();
++it) { ++it) {
assert(it->second != NULL); DCHECK(it->second != NULL);
it->second->SetCodec(supported_codecs.front()); it->second->SetCodec(supported_codecs.front());
} }
@ -1061,7 +1061,7 @@ bool WebRtcVideoChannel2::AddSendStream(const StreamParams& sp) {
send_rtp_extensions_); send_rtp_extensions_);
uint32 ssrc = sp.first_ssrc(); uint32 ssrc = sp.first_ssrc();
assert(ssrc != 0); DCHECK(ssrc != 0);
send_streams_[ssrc] = stream; send_streams_[ssrc] = stream;
if (rtcp_receiver_report_ssrc_ == kDefaultRtcpReceiverReportSsrc) { if (rtcp_receiver_report_ssrc_ == kDefaultRtcpReceiverReportSsrc) {
@ -1136,7 +1136,7 @@ bool WebRtcVideoChannel2::AddRecvStream(const StreamParams& sp,
return false; return false;
uint32 ssrc = sp.first_ssrc(); uint32 ssrc = sp.first_ssrc();
assert(ssrc != 0); // TODO(pbos): Is this ever valid? DCHECK(ssrc != 0); // TODO(pbos): Is this ever valid?
rtc::CritScope stream_lock(&stream_crit_); rtc::CritScope stream_lock(&stream_crit_);
// Remove running stream if this was a default stream. // Remove running stream if this was a default stream.
@ -1326,7 +1326,7 @@ void WebRtcVideoChannel2::FillBandwidthEstimationStats(
bool WebRtcVideoChannel2::SetCapturer(uint32 ssrc, VideoCapturer* capturer) { bool WebRtcVideoChannel2::SetCapturer(uint32 ssrc, VideoCapturer* capturer) {
LOG(LS_INFO) << "SetCapturer: " << ssrc << " -> " LOG(LS_INFO) << "SetCapturer: " << ssrc << " -> "
<< (capturer != NULL ? "(capturer)" : "NULL"); << (capturer != NULL ? "(capturer)" : "NULL");
assert(ssrc != 0); DCHECK(ssrc != 0);
{ {
rtc::CritScope stream_lock(&stream_crit_); rtc::CritScope stream_lock(&stream_crit_);
if (send_streams_.find(ssrc) == send_streams_.end()) { if (send_streams_.find(ssrc) == send_streams_.end()) {
@ -1419,7 +1419,7 @@ void WebRtcVideoChannel2::OnReadyToSend(bool ready) {
bool WebRtcVideoChannel2::MuteStream(uint32 ssrc, bool mute) { bool WebRtcVideoChannel2::MuteStream(uint32 ssrc, bool mute) {
LOG(LS_VERBOSE) << "MuteStream: " << ssrc << " -> " LOG(LS_VERBOSE) << "MuteStream: " << ssrc << " -> "
<< (mute ? "mute" : "unmute"); << (mute ? "mute" : "unmute");
assert(ssrc != 0); DCHECK(ssrc != 0);
rtc::CritScope stream_lock(&stream_crit_); rtc::CritScope stream_lock(&stream_crit_);
if (send_streams_.find(ssrc) == send_streams_.end()) { if (send_streams_.find(ssrc) == send_streams_.end()) {
LOG(LS_ERROR) << "No sending stream on ssrc " << ssrc; LOG(LS_ERROR) << "No sending stream on ssrc " << ssrc;
@ -1700,7 +1700,7 @@ void WebRtcVideoChannel2::WebRtcVideoSendStream::InputFrame(
return; return;
if (format_.width == 0) { // Dropping frames. if (format_.width == 0) { // Dropping frames.
assert(format_.height == 0); DCHECK(format_.height == 0);
LOG(LS_VERBOSE) << "VideoFormat 0x0 set, Dropping frame."; LOG(LS_VERBOSE) << "VideoFormat 0x0 set, Dropping frame.";
return; return;
} }
@ -1870,7 +1870,7 @@ WebRtcVideoChannel2::WebRtcVideoSendStream::CreateVideoEncoder(
// This shouldn't happen, we should not be trying to create something we don't // This shouldn't happen, we should not be trying to create something we don't
// support. // support.
assert(false); DCHECK(false);
return AllocatedEncoder(NULL, webrtc::kVideoCodecUnknown, false); return AllocatedEncoder(NULL, webrtc::kVideoCodecUnknown, false);
} }
@ -2009,7 +2009,7 @@ void WebRtcVideoChannel2::WebRtcVideoSendStream::SetDimensions(
last_dimensions_.height = height; last_dimensions_.height = height;
last_dimensions_.is_screencast = is_screencast; last_dimensions_.is_screencast = is_screencast;
assert(!parameters_.encoder_config.streams.empty()); DCHECK(!parameters_.encoder_config.streams.empty());
VideoCodecSettings codec_settings; VideoCodecSettings codec_settings;
parameters_.codec_settings.Get(&codec_settings); parameters_.codec_settings.Get(&codec_settings);
@ -2035,7 +2035,7 @@ void WebRtcVideoChannel2::WebRtcVideoSendStream::SetDimensions(
void WebRtcVideoChannel2::WebRtcVideoSendStream::Start() { void WebRtcVideoChannel2::WebRtcVideoSendStream::Start() {
rtc::CritScope cs(&lock_); rtc::CritScope cs(&lock_);
assert(stream_ != NULL); DCHECK(stream_ != NULL);
stream_->Start(); stream_->Start();
sending_ = true; sending_ = true;
} }
@ -2261,7 +2261,7 @@ WebRtcVideoChannel2::WebRtcVideoReceiveStream::CreateOrReuseVideoDecoder(
// This shouldn't happen, we should not be trying to create something we don't // This shouldn't happen, we should not be trying to create something we don't
// support. // support.
assert(false); DCHECK(false);
return AllocatedDecoder(NULL, webrtc::kVideoCodecUnknown, false); return AllocatedDecoder(NULL, webrtc::kVideoCodecUnknown, false);
} }
@ -2443,7 +2443,7 @@ bool WebRtcVideoChannel2::VideoCodecSettings::operator!=(
std::vector<WebRtcVideoChannel2::VideoCodecSettings> std::vector<WebRtcVideoChannel2::VideoCodecSettings>
WebRtcVideoChannel2::MapCodecs(const std::vector<VideoCodec>& codecs) { WebRtcVideoChannel2::MapCodecs(const std::vector<VideoCodec>& codecs) {
assert(!codecs.empty()); DCHECK(!codecs.empty());
std::vector<VideoCodecSettings> video_codecs; std::vector<VideoCodecSettings> video_codecs;
std::map<int, bool> payload_used; std::map<int, bool> payload_used;
@ -2468,14 +2468,14 @@ WebRtcVideoChannel2::MapCodecs(const std::vector<VideoCodec>& codecs) {
switch (in_codec.GetCodecType()) { switch (in_codec.GetCodecType()) {
case VideoCodec::CODEC_RED: { case VideoCodec::CODEC_RED: {
// RED payload type, should not have duplicates. // RED payload type, should not have duplicates.
assert(fec_settings.red_payload_type == -1); DCHECK(fec_settings.red_payload_type == -1);
fec_settings.red_payload_type = in_codec.id; fec_settings.red_payload_type = in_codec.id;
continue; continue;
} }
case VideoCodec::CODEC_ULPFEC: { case VideoCodec::CODEC_ULPFEC: {
// ULPFEC payload type, should not have duplicates. // ULPFEC payload type, should not have duplicates.
assert(fec_settings.ulpfec_payload_type == -1); DCHECK(fec_settings.ulpfec_payload_type == -1);
fec_settings.ulpfec_payload_type = in_codec.id; fec_settings.ulpfec_payload_type = in_codec.id;
continue; continue;
} }
@ -2504,7 +2504,7 @@ WebRtcVideoChannel2::MapCodecs(const std::vector<VideoCodec>& codecs) {
// One of these codecs should have been a video codec. Only having FEC // One of these codecs should have been a video codec. Only having FEC
// parameters into this code is a logic error. // parameters into this code is a logic error.
assert(!video_codecs.empty()); DCHECK(!video_codecs.empty());
for (std::map<int, int>::const_iterator it = rtx_mapping.begin(); for (std::map<int, int>::const_iterator it = rtx_mapping.begin();
it != rtx_mapping.end(); it != rtx_mapping.end();

View File

@ -109,7 +109,7 @@ class WebRtcVideoEngine2Test : public ::testing::Test {
WebRtcVideoEngine2Test(WebRtcVoiceEngine* voice_engine) WebRtcVideoEngine2Test(WebRtcVoiceEngine* voice_engine)
: engine_(voice_engine) { : engine_(voice_engine) {
std::vector<VideoCodec> engine_codecs = engine_.codecs(); std::vector<VideoCodec> engine_codecs = engine_.codecs();
assert(!engine_codecs.empty()); DCHECK(!engine_codecs.empty());
bool codec_set = false; bool codec_set = false;
for (size_t i = 0; i < engine_codecs.size(); ++i) { for (size_t i = 0; i < engine_codecs.size(); ++i) {
if (engine_codecs[i].name == "red") { if (engine_codecs[i].name == "red") {
@ -128,7 +128,7 @@ class WebRtcVideoEngine2Test : public ::testing::Test {
} }
} }
assert(codec_set); DCHECK(codec_set);
} }
protected: protected:
@ -139,7 +139,7 @@ class WebRtcVideoEngine2Test : public ::testing::Test {
private: private:
webrtc::Call* CreateCall(const webrtc::Call::Config& config) override { webrtc::Call* CreateCall(const webrtc::Call::Config& config) override {
assert(fake_call_ == NULL); DCHECK(fake_call_ == NULL);
fake_call_ = new FakeCall(config); fake_call_ = new FakeCall(config);
return fake_call_; return fake_call_;
} }
@ -835,7 +835,7 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test,
} }
webrtc::Call* CreateCall(const webrtc::Call::Config& config) override { webrtc::Call* CreateCall(const webrtc::Call::Config& config) override {
assert(fake_call_ == NULL); DCHECK(fake_call_ == NULL);
fake_call_ = new FakeCall(config); fake_call_ = new FakeCall(config);
return fake_call_; return fake_call_;
} }
@ -2566,7 +2566,7 @@ class WebRtcVideoChannel2SimulcastTest : public WebRtcVideoEngine2SimulcastTest,
protected: protected:
webrtc::Call* CreateCall(const webrtc::Call::Config& config) override { webrtc::Call* CreateCall(const webrtc::Call::Config& config) override {
assert(fake_call_ == NULL); DCHECK(fake_call_ == NULL);
fake_call_ = new FakeCall(config); fake_call_ = new FakeCall(config);
return fake_call_; return fake_call_;
} }
@ -2585,7 +2585,7 @@ class WebRtcVideoChannel2SimulcastTest : public WebRtcVideoEngine2SimulcastTest,
ASSERT_TRUE(channel_->SetSendCodecs(codecs)); ASSERT_TRUE(channel_->SetSendCodecs(codecs));
std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3); std::vector<uint32> ssrcs = MAKE_VECTOR(kSsrcs3);
assert(num_configured_streams <= ssrcs.size()); DCHECK(num_configured_streams <= ssrcs.size());
ssrcs.resize(num_configured_streams); ssrcs.resize(num_configured_streams);
FakeVideoSendStream* stream = FakeVideoSendStream* stream =

View File

@ -338,7 +338,7 @@ static void MaybeFixupG722(webrtc::CodecInst* voe_codec, int new_plfreq) {
if (IsCodec(*voe_codec, kG722CodecName)) { if (IsCodec(*voe_codec, kG722CodecName)) {
// If the ASSERT triggers, the codec definition in WebRTC VoiceEngine // If the ASSERT triggers, the codec definition in WebRTC VoiceEngine
// has changed, and this special case is no longer needed. // has changed, and this special case is no longer needed.
ASSERT(voe_codec->plfreq != new_plfreq); DCHECK(voe_codec->plfreq != new_plfreq);
voe_codec->plfreq = new_plfreq; voe_codec->plfreq = new_plfreq;
} }
} }
@ -600,14 +600,14 @@ WebRtcVoiceEngine::~WebRtcVoiceEngine() {
} }
// Test to see if the media processor was deregistered properly // Test to see if the media processor was deregistered properly
ASSERT(SignalRxMediaFrame.is_empty()); DCHECK(SignalRxMediaFrame.is_empty());
ASSERT(SignalTxMediaFrame.is_empty()); DCHECK(SignalTxMediaFrame.is_empty());
tracing_->SetTraceCallback(NULL); tracing_->SetTraceCallback(NULL);
} }
bool WebRtcVoiceEngine::Init(rtc::Thread* worker_thread) { bool WebRtcVoiceEngine::Init(rtc::Thread* worker_thread) {
ASSERT(worker_thread == rtc::Thread::Current()); DCHECK(worker_thread == rtc::Thread::Current());
LOG(LS_INFO) << "WebRtcVoiceEngine::Init"; LOG(LS_INFO) << "WebRtcVoiceEngine::Init";
bool res = InitInternal(); bool res = InitInternal();
if (res) { if (res) {
@ -1223,7 +1223,7 @@ bool WebRtcVoiceEngine::GetOutputVolume(int* level) {
} }
bool WebRtcVoiceEngine::SetOutputVolume(int level) { bool WebRtcVoiceEngine::SetOutputVolume(int level) {
ASSERT(level >= 0 && level <= 255); DCHECK(level >= 0 && level <= 255);
if (voe_wrapper_->volume()->SetSpeakerVolume(level) == -1) { if (voe_wrapper_->volume()->SetSpeakerVolume(level) == -1) {
LOG_RTCERR1(SetSpeakerVolume, level); LOG_RTCERR1(SetSpeakerVolume, level);
return false; return false;
@ -1456,7 +1456,7 @@ void WebRtcVoiceEngine::CallbackOnError(int channel_num, int err_code) {
LOG(LS_WARNING) << "VoiceEngine error " << err_code << " reported on channel " LOG(LS_WARNING) << "VoiceEngine error " << err_code << " reported on channel "
<< channel_num << "."; << channel_num << ".";
if (FindChannelAndSsrc(channel_num, &channel, &ssrc)) { if (FindChannelAndSsrc(channel_num, &channel, &ssrc)) {
ASSERT(channel != NULL); DCHECK(channel != NULL);
channel->OnError(ssrc, err_code); channel->OnError(ssrc, err_code);
} else { } else {
LOG(LS_ERROR) << "VoiceEngine channel " << channel_num LOG(LS_ERROR) << "VoiceEngine channel " << channel_num
@ -1466,14 +1466,14 @@ void WebRtcVoiceEngine::CallbackOnError(int channel_num, int err_code) {
bool WebRtcVoiceEngine::FindChannelAndSsrc( bool WebRtcVoiceEngine::FindChannelAndSsrc(
int channel_num, WebRtcVoiceMediaChannel** channel, uint32* ssrc) const { int channel_num, WebRtcVoiceMediaChannel** channel, uint32* ssrc) const {
ASSERT(channel != NULL && ssrc != NULL); DCHECK(channel != NULL && ssrc != NULL);
*channel = NULL; *channel = NULL;
*ssrc = 0; *ssrc = 0;
// Find corresponding channel and ssrc // Find corresponding channel and ssrc
for (ChannelList::const_iterator it = channels_.begin(); for (ChannelList::const_iterator it = channels_.begin();
it != channels_.end(); ++it) { it != channels_.end(); ++it) {
ASSERT(*it != NULL); DCHECK(*it != NULL);
if ((*it)->FindSsrc(channel_num, ssrc)) { if ((*it)->FindSsrc(channel_num, ssrc)) {
*channel = *it; *channel = *it;
return true; return true;
@ -1487,14 +1487,14 @@ bool WebRtcVoiceEngine::FindChannelAndSsrc(
// obtain the voice engine's channel number. // obtain the voice engine's channel number.
bool WebRtcVoiceEngine::FindChannelNumFromSsrc( bool WebRtcVoiceEngine::FindChannelNumFromSsrc(
uint32 ssrc, MediaProcessorDirection direction, int* channel_num) { uint32 ssrc, MediaProcessorDirection direction, int* channel_num) {
ASSERT(channel_num != NULL); DCHECK(channel_num != NULL);
ASSERT(direction == MPD_RX || direction == MPD_TX); DCHECK(direction == MPD_RX || direction == MPD_TX);
*channel_num = -1; *channel_num = -1;
// Find corresponding channel for ssrc. // Find corresponding channel for ssrc.
for (ChannelList::const_iterator it = channels_.begin(); for (ChannelList::const_iterator it = channels_.begin();
it != channels_.end(); ++it) { it != channels_.end(); ++it) {
ASSERT(*it != NULL); DCHECK(*it != NULL);
if (direction & MPD_RX) { if (direction & MPD_RX) {
*channel_num = (*it)->GetReceiveChannelNum(ssrc); *channel_num = (*it)->GetReceiveChannelNum(ssrc);
} }
@ -1804,9 +1804,9 @@ class WebRtcVoiceMediaChannel::WebRtcVoiceChannelRenderer
// TODO(xians): Make sure Start() is called only once. // TODO(xians): Make sure Start() is called only once.
void Start(AudioRenderer* renderer) { void Start(AudioRenderer* renderer) {
rtc::CritScope lock(&lock_); rtc::CritScope lock(&lock_);
ASSERT(renderer != NULL); DCHECK(renderer != NULL);
if (renderer_ != NULL) { if (renderer_ != NULL) {
ASSERT(renderer_ == renderer); DCHECK(renderer_ == renderer);
return; return;
} }
@ -2575,7 +2575,7 @@ bool WebRtcVoiceMediaChannel::ChangeSend(int channel, SendFlags send) {
return false; return false;
} }
} else { // SEND_NOTHING } else { // SEND_NOTHING
ASSERT(send == SEND_NOTHING); DCHECK(send == SEND_NOTHING);
if (engine()->voe()->base()->StopSend(channel) == -1) { if (engine()->voe()->base()->StopSend(channel) == -1) {
LOG_RTCERR1(StopSend, channel); LOG_RTCERR1(StopSend, channel);
return false; return false;
@ -2866,7 +2866,7 @@ bool WebRtcVoiceMediaChannel::RemoveRecvStream(uint32 ssrc) {
receive_channels_.erase(it); receive_channels_.erase(it);
if (ssrc == default_receive_ssrc_) { if (ssrc == default_receive_ssrc_) {
ASSERT(IsDefaultChannel(channel)); DCHECK(IsDefaultChannel(channel));
// Recycle the default channel is for recv stream. // Recycle the default channel is for recv stream.
if (playout_) if (playout_)
SetPlayout(voe_channel(), false); SetPlayout(voe_channel(), false);
@ -3546,15 +3546,15 @@ bool WebRtcVoiceMediaChannel::GetStats(VoiceMediaInfo* info) {
void WebRtcVoiceMediaChannel::GetLastMediaError( void WebRtcVoiceMediaChannel::GetLastMediaError(
uint32* ssrc, VoiceMediaChannel::Error* error) { uint32* ssrc, VoiceMediaChannel::Error* error) {
ASSERT(ssrc != NULL); DCHECK(ssrc != NULL);
ASSERT(error != NULL); DCHECK(error != NULL);
FindSsrc(voe_channel(), ssrc); FindSsrc(voe_channel(), ssrc);
*error = WebRtcErrorToChannelError(GetLastEngineError()); *error = WebRtcErrorToChannelError(GetLastEngineError());
} }
bool WebRtcVoiceMediaChannel::FindSsrc(int channel_num, uint32* ssrc) { bool WebRtcVoiceMediaChannel::FindSsrc(int channel_num, uint32* ssrc) {
rtc::CritScope lock(&receive_channels_cs_); rtc::CritScope lock(&receive_channels_cs_);
ASSERT(ssrc != NULL); DCHECK(ssrc != NULL);
if (channel_num == -1 && send_ != SEND_NOTHING) { if (channel_num == -1 && send_ != SEND_NOTHING) {
// Sometimes the VoiceEngine core will throw error with channel_num = -1. // Sometimes the VoiceEngine core will throw error with channel_num = -1.
// This means the error is not limited to a specific channel. Signal the // This means the error is not limited to a specific channel. Signal the

View File

@ -102,7 +102,7 @@ class WebRtcVoiceEngineTestFake : public testing::Test {
public: public:
explicit ChannelErrorListener(cricket::VoiceMediaChannel* channel) explicit ChannelErrorListener(cricket::VoiceMediaChannel* channel)
: ssrc_(0), error_(cricket::VoiceMediaChannel::ERROR_NONE) { : ssrc_(0), error_(cricket::VoiceMediaChannel::ERROR_NONE) {
ASSERT(channel != NULL); DCHECK(channel != NULL);
channel->SignalMediaError.connect( channel->SignalMediaError.connect(
this, &ChannelErrorListener::OnVoiceChannelError); this, &ChannelErrorListener::OnVoiceChannelError);
} }