When GetEncoder or SetSendCodec failed, we should clean up and return error.
BUG= TEST= Review URL: https://webrtc-codereview.appspot.com/490001 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1995 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
78075451ed
commit
96b3017b33
@ -317,9 +317,13 @@ bool ViEChannelManager::CreateChannelObject(int channel_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
VideoCodec encoder;
|
VideoCodec encoder;
|
||||||
vie_encoder->GetEncoder(encoder);
|
if (vie_encoder->GetEncoder(encoder) != 0 ||
|
||||||
if (vie_channel->SetSendCodec(encoder) != 0) {
|
vie_channel->SetSendCodec(encoder) != 0) {
|
||||||
vie_encoder = NULL;
|
WEBRTC_TRACE(kTraceError, kTraceVideo, ViEId(engine_id_, channel_id),
|
||||||
|
"%s: Could not GetEncoder or SetSendCodec.", __FUNCTION__);
|
||||||
|
vie_channel->DeregisterSendRtpRtcpModule();
|
||||||
|
delete vie_channel;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store the channel, add it to the channel group and save the vie_encoder.
|
// Store the channel, add it to the channel group and save the vie_encoder.
|
||||||
|
@ -87,6 +87,7 @@ ViEEncoder::ViEEncoder(WebRtc_Word32 engine_id, WebRtc_Word32 channel_id,
|
|||||||
for (int i = 0; i < kMaxSimulcastStreams; i++) {
|
for (int i = 0; i < kMaxSimulcastStreams; i++) {
|
||||||
time_last_intra_request_ms_[i] = 0;
|
time_last_intra_request_ms_[i] = 0;
|
||||||
}
|
}
|
||||||
|
// TODO(wu): Split out those may fail into an Init function.
|
||||||
vcm_.InitializeSender();
|
vcm_.InitializeSender();
|
||||||
vpm_.EnableTemporalDecimation(true);
|
vpm_.EnableTemporalDecimation(true);
|
||||||
|
|
||||||
@ -115,8 +116,12 @@ ViEEncoder::ViEEncoder(WebRtc_Word32 engine_id, WebRtc_Word32 channel_id,
|
|||||||
#ifdef VIDEOCODEC_VP8
|
#ifdef VIDEOCODEC_VP8
|
||||||
VideoCodec video_codec;
|
VideoCodec video_codec;
|
||||||
if (vcm_.Codec(webrtc::kVideoCodecVP8, &video_codec) == VCM_OK) {
|
if (vcm_.Codec(webrtc::kVideoCodecVP8, &video_codec) == VCM_OK) {
|
||||||
vcm_.RegisterSendCodec(&video_codec, number_of_cores_,
|
if (vcm_.RegisterSendCodec(&video_codec, number_of_cores_,
|
||||||
default_rtp_rtcp_.MaxDataPayloadLength());
|
default_rtp_rtcp_.MaxDataPayloadLength()) != 0) {
|
||||||
|
WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideo,
|
||||||
|
ViEId(engine_id_, channel_id_),
|
||||||
|
"ViEEncoder: VCM::RegisterSendCodec failure");
|
||||||
|
}
|
||||||
default_rtp_rtcp_.RegisterSendPayload(video_codec);
|
default_rtp_rtcp_.RegisterSendPayload(video_codec);
|
||||||
} else {
|
} else {
|
||||||
assert(false);
|
assert(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user