Improve logging and add DCHECKs in codec database.

BUG=
R=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8842}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8842 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
pbos@webrtc.org 2015-03-24 11:20:54 +00:00
parent eebcab5ce9
commit 0b52cebd28
2 changed files with 12 additions and 19 deletions

View File

@ -12,6 +12,7 @@
#include <assert.h> #include <assert.h>
#include "webrtc/base/checks.h"
#include "webrtc/engine_configurations.h" #include "webrtc/engine_configurations.h"
#ifdef VIDEOCODEC_I420 #ifdef VIDEOCODEC_I420
#include "webrtc/modules/video_coding/codecs/i420/main/interface/i420.h" #include "webrtc/modules/video_coding/codecs/i420/main/interface/i420.h"
@ -236,25 +237,15 @@ bool VCMCodecDataBase::SetSendCodec(
int number_of_cores, int number_of_cores,
size_t max_payload_size, size_t max_payload_size,
VCMEncodedFrameCallback* encoded_frame_callback) { VCMEncodedFrameCallback* encoded_frame_callback) {
if (!send_codec) { DCHECK(send_codec);
return false;
}
if (max_payload_size == 0) { if (max_payload_size == 0) {
max_payload_size = kDefaultPayloadSize; max_payload_size = kDefaultPayloadSize;
} }
if (number_of_cores <= 0) { DCHECK_GE(number_of_cores, 1);
return false; DCHECK_GE(send_codec->plType, 1);
}
if (send_codec->plType <= 0) {
return false;
}
// Make sure the start bit rate is sane... // Make sure the start bit rate is sane...
if (send_codec->startBitrate > 1000000) { DCHECK_LE(send_codec->startBitrate, 1000000u);
return false; DCHECK(send_codec->codecType != kVideoCodecUnknown);
}
if (send_codec->codecType == kVideoCodecUnknown) {
return false;
}
bool reset_required = pending_encoder_reset_; bool reset_required = pending_encoder_reset_;
if (number_of_cores_ != number_of_cores) { if (number_of_cores_ != number_of_cores) {
number_of_cores_ = number_of_cores; number_of_cores_ = number_of_cores;
@ -289,6 +280,7 @@ bool VCMCodecDataBase::SetSendCodec(
if (!reset_required) { if (!reset_required) {
encoded_frame_callback->SetPayloadType(send_codec->plType); encoded_frame_callback->SetPayloadType(send_codec->plType);
if (ptr_encoder_->RegisterEncodeCallback(encoded_frame_callback) < 0) { if (ptr_encoder_->RegisterEncodeCallback(encoded_frame_callback) < 0) {
LOG(LS_ERROR) << "Failed to register encoded-frame callback.";
return false; return false;
} }
return true; return true;
@ -304,17 +296,18 @@ bool VCMCodecDataBase::SetSendCodec(
} else { } else {
ptr_encoder_ = CreateEncoder(send_codec->codecType); ptr_encoder_ = CreateEncoder(send_codec->codecType);
current_enc_is_external_ = false; current_enc_is_external_ = false;
if (!ptr_encoder_) { if (!ptr_encoder_)
return false; return false;
}
} }
encoded_frame_callback->SetPayloadType(send_codec->plType); encoded_frame_callback->SetPayloadType(send_codec->plType);
if (ptr_encoder_->InitEncode(send_codec, if (ptr_encoder_->InitEncode(send_codec,
number_of_cores_, number_of_cores_,
max_payload_size_) < 0) { max_payload_size_) < 0) {
LOG(LS_ERROR) << "Failed to initialize video encoder.";
DeleteEncoder(); DeleteEncoder();
return false; return false;
} else if (ptr_encoder_->RegisterEncodeCallback(encoded_frame_callback) < 0) { } else if (ptr_encoder_->RegisterEncodeCallback(encoded_frame_callback) < 0) {
LOG(LS_ERROR) << "Failed to register encoded-frame callback.";
DeleteEncoder(); DeleteEncoder();
return false; return false;
} }

View File

@ -139,8 +139,8 @@ int32_t VideoSender::RegisterSendCodec(const VideoCodec* sendCodec,
current_codec_ = *sendCodec; current_codec_ = *sendCodec;
if (!ret) { if (!ret) {
LOG(LS_ERROR) << "Failed to initialize the encoder with payload name " LOG(LS_ERROR) << "Failed to initialize set encoder with payload name '"
<< sendCodec->plName << ". Error code: " << ret; << sendCodec->plName << "'.";
return VCM_CODEC_ERROR; return VCM_CODEC_ERROR;
} }