(Auto)update libjingle 78381351-> 78389679

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7516 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
buildbot@webrtc.org
2014-10-23 23:07:23 +00:00
parent fb5e9fc44e
commit 8fe75ee234
2 changed files with 40 additions and 26 deletions

View File

@ -638,6 +638,12 @@ class WebRtcVideoChannelSendInfo : public sigslot::has_slots<> {
int capture_id() const { return capture_id_; }
void set_sending(bool sending) { sending_ = sending; }
bool sending() const { return sending_; }
void set_send_params(const VideoSendParams& send_params) {
send_params_ = send_params;
}
const VideoSendParams& send_params() const {
return send_params_;
}
const Settable<CapturedFrameInfo>& last_captured_frame_info() const {
return last_captured_frame_info_;
}
@ -709,12 +715,20 @@ class WebRtcVideoChannelSendInfo : public sigslot::has_slots<> {
return old_adaptation_changes_ + video_adapter()->adaptation_changes();
}
StreamParams* stream_params() { return stream_params_.get(); }
void set_stream_params(const StreamParams& sp) {
stream_params_.reset(new StreamParams(sp));
send_params_.stream = sp;
}
bool IsActive() { return stream_params() != NULL; }
void Deactivate() { stream_params_.reset(); }
const StreamParams& stream_params() const { return send_params_.stream; }
// A default send channel can be non-active if a stream hasn't been
// added yet, or if all streams have been removed (at which point,
// Deactive is called).
bool IsActive() {
return stream_params().first_ssrc() != 0;
}
void Deactivate() {
send_params_.stream = StreamParams();
}
WebRtcLocalStreamInfo* local_stream_info() {
return &local_stream_info_;
}
@ -886,6 +900,7 @@ class WebRtcVideoChannelSendInfo : public sigslot::has_slots<> {
private:
int channel_id_;
int capture_id_;
VideoSendParams send_params_;
// TODO(pthatcher): Merge CapturedFrameInfo and LocalStreamInfo.
Settable<CapturedFrameInfo> last_captured_frame_info_;
bool sending_;
@ -895,8 +910,6 @@ class WebRtcVideoChannelSendInfo : public sigslot::has_slots<> {
webrtc::ViEExternalCapture* external_capture_;
EncoderMap registered_encoders_;
rtc::scoped_ptr<StreamParams> stream_params_;
WebRtcLocalStreamInfo local_stream_info_;
rtc::CpuMonitor* cpu_monitor_;
@ -2289,8 +2302,7 @@ bool WebRtcVideoMediaChannel::GetSendChannelSsrcKey(uint32 local_ssrc,
for (SendChannelMap::iterator iter = send_channels_.begin();
iter != send_channels_.end(); ++iter) {
WebRtcVideoChannelSendInfo* send_channel = iter->second;
if (send_channel->stream_params() != NULL &&
send_channel->stream_params()->has_ssrc(local_ssrc)) {
if (send_channel->stream_params().has_ssrc(local_ssrc)) {
*ssrc_key = iter->first;
return true;
}
@ -2360,10 +2372,7 @@ int WebRtcVideoMediaChannel::GetSendChannelNum(VideoCapturer* capturer) {
}
uint32 WebRtcVideoMediaChannel::GetDefaultSendChannelSsrc() {
if (!DefaultSendChannelIsActive()) {
return 0;
}
return GetDefaultSendChannel()->stream_params()->first_ssrc();
return GetDefaultSendChannel()->stream_params().first_ssrc();
}
bool WebRtcVideoMediaChannel::DeleteSendChannel(uint32 ssrc_key) {
@ -2489,9 +2498,9 @@ bool WebRtcVideoMediaChannel::GetStats(const StatsOptions& options,
WebRtcLocalStreamInfo* channel_stream_info =
send_channel->local_stream_info();
const StreamParams* send_params = send_channel->stream_params();
for (size_t i = 0; i < send_params->ssrcs.size(); ++i) {
sinfo.add_ssrc(send_params->ssrcs[i]);
const StreamParams& sp = send_channel->stream_params();
for (size_t i = 0; i < sp.ssrcs.size(); ++i) {
sinfo.add_ssrc(sp.ssrcs[i]);
}
sinfo.codec_name = send_codec_->plName;
sinfo.bytes_sent = bytes_sent;
@ -3205,8 +3214,8 @@ bool WebRtcVideoMediaChannel::SendFrame(
send_channel->SetLastCapturedFrameInfo(frame, is_screencast, &changed);
if (changed) {
// If the last captured frame info changed, then calling
// SendParams will update to the latest resolution.
if (!SetSendParams(send_channel, send_channel->stream_params())) {
// SetSendParams will update to the latest resolution.
if (!SetSendParams(send_channel, send_channel->send_params())) {
LOG(LS_ERROR) << "SetSendParams from SendFrame failed with "
<< frame->GetWidth() << "x" << frame->GetHeight()
<< " screencast? " << is_screencast;
@ -3693,11 +3702,11 @@ bool WebRtcVideoMediaChannel::SetSendCodec(
}
if (target_codec.width == 0 && target_codec.height == 0) {
const uint32 ssrc = send_channel->stream_params()->first_ssrc();
const uint32 ssrc = send_channel->stream_params().first_ssrc();
LOG(LS_INFO) << "0x0 resolution selected. Captured frames will be dropped "
<< "for ssrc: " << ssrc << ".";
} else {
StreamParams* send_params = send_channel->stream_params();
const StreamParams& sp = send_channel->stream_params();
SanitizeBitrates(channel_id, &target_codec);
webrtc::VideoCodec current_codec;
if (!engine()->vie()->codec()->GetSendCodec(channel_id, current_codec)) {
@ -3713,8 +3722,8 @@ bool WebRtcVideoMediaChannel::SetSendCodec(
return false;
}
if (send_params) {
if (!SetSendSsrcs(channel_id, *send_params, target_codec)) {
if (send_channel->IsActive()) {
if (!SetSendSsrcs(channel_id, sp, target_codec)) {
return false;
}
}
@ -3908,7 +3917,7 @@ int WebRtcVideoMediaChannel::GetRecvChannelId(uint32 ssrc) {
// codecs in a single place.
bool WebRtcVideoMediaChannel::SetSendParams(
WebRtcVideoChannelSendInfo* send_channel,
const StreamParams* send_params) {
const VideoSendParams& send_params) {
ASSERT(send_codec_.get() != NULL);
CapturedFrameInfo frame;
@ -4006,8 +4015,9 @@ bool WebRtcVideoMediaChannel::SetSendParams(
engine()->vie()->rtp()->SetTransmissionSmoothingStatus(channel_id, true);
// TODO(sriniv): SetSendCodec already sets ssrc's like below.
// Consider removing.
if (send_params) {
if (!SetSendSsrcs(channel_id, *send_params, target_codec)) {
if (send_channel->IsActive() && !frame.screencast) {
if (!SetSendSsrcs(channel_id, send_params.stream, target_codec)) {
return false;
}
}

View File

@ -244,6 +244,11 @@ struct CapturedFrameInfo {
bool screencast;
};
// TODO(pthatcher): Add codec and VideoOptions.
struct VideoSendParams {
StreamParams stream;
};
class WebRtcVideoMediaChannel : public rtc::MessageHandler,
public VideoMediaChannel,
public webrtc::Transport {
@ -373,9 +378,8 @@ class WebRtcVideoMediaChannel : public rtc::MessageHandler,
bool SetSendCodec(const webrtc::VideoCodec& codec);
bool SetSendCodec(WebRtcVideoChannelSendInfo* send_channel,
const webrtc::VideoCodec& codec);
// TODO(pthatcher): Include codec and VideoOptions as well as StreamParams.
bool SetSendParams(WebRtcVideoChannelSendInfo* send_channel,
const StreamParams* params);
const VideoSendParams& params);
// Prepares the channel with channel id |info->channel_id()| to receive all
// codecs in |receive_codecs_| and start receive packets.