(Auto)update libjingle 79200114-> 79205306
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7627 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
8125744a5f
commit
795d003770
@ -1987,14 +1987,21 @@ bool WebRtcVideoMediaChannel::AddSendStream(const StreamParams& sp) {
|
||||
SetReceiverReportSsrc(sp.first_ssrc());
|
||||
}
|
||||
|
||||
send_channel->set_stream_params(sp);
|
||||
|
||||
// Reset send codec after stream parameters changed.
|
||||
if (send_codec_) {
|
||||
if (!SetSendCodec(send_channel, *send_codec_)) {
|
||||
send_channel->SetAdaptFormat(
|
||||
VideoFormatFromVieCodec(*send_codec_),
|
||||
WebRtcVideoChannelSendInfo::kAdaptFormatTypeCodec);
|
||||
|
||||
VideoSendParams send_params;
|
||||
send_params.codec = *send_codec_;
|
||||
send_params.stream = sp;
|
||||
if (!SetSendParams(send_channel, send_params)) {
|
||||
return false;
|
||||
}
|
||||
LogSendCodecChange("SetSendStreamFormat()");
|
||||
LogSendCodecChange("AddStream()");
|
||||
} else {
|
||||
// Save the stream params for later, when we have a codec.
|
||||
send_channel->set_stream_params(sp);
|
||||
}
|
||||
|
||||
if (sending_) {
|
||||
@ -2990,39 +2997,40 @@ bool WebRtcVideoMediaChannel::SetOptions(const VideoOptions &options) {
|
||||
VideoOptions original = options_;
|
||||
options_.SetAll(options);
|
||||
|
||||
// Set CPU options for all send channels.
|
||||
// Set CPU options and codec options for all send channels.
|
||||
for (SendChannelMap::iterator iter = send_channels_.begin();
|
||||
iter != send_channels_.end(); ++iter) {
|
||||
WebRtcVideoChannelSendInfo* send_channel = iter->second;
|
||||
send_channel->ApplyCpuOptions(options_);
|
||||
|
||||
if (send_codec_) {
|
||||
VideoSendParams send_params = send_channel->send_params();
|
||||
|
||||
bool conference_mode_turned_off = (
|
||||
original.conference_mode.IsSet() &&
|
||||
options.conference_mode.IsSet() &&
|
||||
original.conference_mode.GetWithDefaultIfUnset(false) &&
|
||||
!options.conference_mode.GetWithDefaultIfUnset(false));
|
||||
if (conference_mode_turned_off) {
|
||||
// This is a special case for turning conference mode off.
|
||||
// Max bitrate should go back to the default maximum value instead
|
||||
// of the current maximum.
|
||||
send_params.codec.maxBitrate = kAutoBandwidth;
|
||||
}
|
||||
|
||||
// TODO(pthatcher): Remove this. We don't need 4 ways to set bitrates.
|
||||
int new_start_bitrate;
|
||||
if (options.video_start_bitrate.Get(&new_start_bitrate)) {
|
||||
send_params.codec.startBitrate = new_start_bitrate;
|
||||
}
|
||||
|
||||
if (!SetSendParams(send_channel, send_params)) {
|
||||
return false;
|
||||
}
|
||||
LogSendCodecChange("SetOptions()");
|
||||
}
|
||||
}
|
||||
|
||||
if (send_codec_) {
|
||||
webrtc::VideoCodec new_codec = *send_codec_;
|
||||
|
||||
bool conference_mode_turned_off = (
|
||||
original.conference_mode.IsSet() &&
|
||||
options.conference_mode.IsSet() &&
|
||||
original.conference_mode.GetWithDefaultIfUnset(false) &&
|
||||
!options.conference_mode.GetWithDefaultIfUnset(false));
|
||||
if (conference_mode_turned_off) {
|
||||
// This is a special case for turning conference mode off.
|
||||
// Max bitrate should go back to the default maximum value instead
|
||||
// of the current maximum.
|
||||
new_codec.maxBitrate = kAutoBandwidth;
|
||||
}
|
||||
|
||||
// TODO(pthatcher): Remove this. We don't need 4 ways to set bitrates.
|
||||
int new_start_bitrate;
|
||||
if (options.video_start_bitrate.Get(&new_start_bitrate)) {
|
||||
new_codec.startBitrate = new_start_bitrate;
|
||||
}
|
||||
|
||||
if (!SetSendCodec(new_codec)) {
|
||||
return false;
|
||||
}
|
||||
LogSendCodecChange("SetOptions()");
|
||||
}
|
||||
|
||||
int buffer_latency;
|
||||
if (Changed(options.buffered_mode_latency,
|
||||
@ -3676,26 +3684,9 @@ bool WebRtcVideoMediaChannel::SetSendCodec(
|
||||
VideoFormatFromVieCodec(codec),
|
||||
WebRtcVideoChannelSendInfo::kAdaptFormatTypeCodec);
|
||||
|
||||
MaybeRegisterExternalEncoder(send_channel, codec);
|
||||
|
||||
VideoSendParams send_params = send_channel->send_params();
|
||||
send_params.codec = codec;
|
||||
if (!SetSendParams(send_channel, send_params)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// NOTE: SetRtxSendPayloadType must be called after all simulcast SSRCs
|
||||
// are configured. Otherwise ssrc's configured after this point will use
|
||||
// the primary PT for RTX.
|
||||
const int channel_id = send_channel->channel_id();
|
||||
if (send_rtx_type_ != -1 &&
|
||||
engine()->vie()->rtp()->SetRtxSendPayloadType(channel_id,
|
||||
send_rtx_type_) != 0) {
|
||||
LOG_RTCERR2(SetRtxSendPayloadType, channel_id, send_rtx_type_);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return SetSendParams(send_channel, send_params);
|
||||
}
|
||||
|
||||
static std::string ToString(webrtc::VideoCodecComplexity complexity) {
|
||||
@ -3872,6 +3863,8 @@ bool WebRtcVideoMediaChannel::SetSendParams(
|
||||
const VideoSendParams& send_params) {
|
||||
const int channel_id = send_channel->channel_id();
|
||||
|
||||
MaybeRegisterExternalEncoder(send_channel, send_params.codec);
|
||||
|
||||
CapturedFrameInfo frame;
|
||||
send_channel->last_captured_frame_info().Get(&frame);
|
||||
|
||||
@ -3923,10 +3916,18 @@ bool WebRtcVideoMediaChannel::SetSendParams(
|
||||
}
|
||||
engine()->vie()->rtp()->SetTransmissionSmoothingStatus(channel_id, true);
|
||||
|
||||
if (send_channel->IsActive()) {
|
||||
if (!SetSendSsrcs(channel_id, send_params.stream, codec)) {
|
||||
return false;
|
||||
}
|
||||
if (!SetSendSsrcs(channel_id, send_params.stream, codec)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// NOTE: SetRtxSendPayloadType must be called after all SSRCs are
|
||||
// configured. Otherwise ssrc's configured after this point will use
|
||||
// the primary PT for RTX.
|
||||
if (send_rtx_type_ != -1 &&
|
||||
engine()->vie()->rtp()->SetRtxSendPayloadType(channel_id,
|
||||
send_rtx_type_) != 0) {
|
||||
LOG_RTCERR2(SetRtxSendPayloadType, channel_id, send_rtx_type_);
|
||||
return false;
|
||||
}
|
||||
|
||||
send_channel->set_send_params(send_params);
|
||||
|
Loading…
x
Reference in New Issue
Block a user