diff --git a/DEPS b/DEPS index d57501978..d874da27b 100644 --- a/DEPS +++ b/DEPS @@ -67,7 +67,7 @@ hooks = [ }, { "pattern": ".", - "action": ["svn", "export", Var("webrtc_trunk") + "/third_party_mods/libjingle@29", "third_party/libjingle", "--force"], + "action": ["svn", "export", Var("webrtc_trunk") + "/third_party_mods/libjingle", "third_party/libjingle", "--force"], }, { "pattern": ".", diff --git a/peerconnection/samples/client/conductor.cc b/peerconnection/samples/client/conductor.cc index 698ba4822..e0c029fb5 100644 --- a/peerconnection/samples/client/conductor.cc +++ b/peerconnection/samples/client/conductor.cc @@ -12,6 +12,7 @@ #include "peerconnection/samples/client/defaults.h" #include "talk/base/logging.h" +#include "talk/session/phone/videorendererfactory.h" Conductor::Conductor(PeerConnectionClient* client, MainWnd* main_wnd) : handshake_(NONE), @@ -70,6 +71,8 @@ bool Conductor::InitializePeerConnection() { void Conductor::DeletePeerConnection() { peer_connection_.reset(); + local_renderer_.reset(); + remote_renderer_.reset(); handshake_ = NONE; } @@ -79,8 +82,14 @@ void Conductor::StartCaptureDevice() { main_wnd_->SwitchToStreamingUI(); if (peer_connection_->SetVideoCapture("")) { - peer_connection_->SetVideoRenderer(-1, main_wnd_->handle(), 0, - 0.7f, 0.7f, 0.95f, 0.95f); + if (!local_renderer_.get()) { + // The window will be resized according to the stream properties + // when streaming starts. + local_renderer_.reset( + cricket::VideoRendererFactory::CreateGuiVideoRenderer(100, 100)); + } + if (local_renderer_.get()) + peer_connection_->SetLocalVideoRenderer(local_renderer_.get()); } else { ASSERT(false); } @@ -130,8 +139,13 @@ void Conductor::OnAddStream(const std::string& stream_id, int channel_id, video_channel_ = channel_id; waiting_for_video_ = false; LOG(INFO) << "Setting video renderer for channel: " << channel_id; - bool ok = peer_connection_->SetVideoRenderer(channel_id, - main_wnd_->handle(), 1, 0.0f, 0.0f, 1.0f, 1.0f); + if (!remote_renderer_.get()) { + // The window size will be automatically corrected. + remote_renderer_.reset( + cricket::VideoRendererFactory::CreateGuiVideoRenderer(100, 100)); + } + bool ok = peer_connection_->SetVideoRenderer(stream_id, + remote_renderer_.get()); ASSERT(ok); } else { ASSERT(audio_channel_ == -1); diff --git a/peerconnection/samples/client/conductor.h b/peerconnection/samples/client/conductor.h index ce968d768..3b9d471b4 100644 --- a/peerconnection/samples/client/conductor.h +++ b/peerconnection/samples/client/conductor.h @@ -19,6 +19,9 @@ #include "talk/app/peerconnection.h" #include "talk/base/scoped_ptr.h" +namespace cricket { +class VideoRenderer; +} // namespace cricket class Conductor : public webrtc::PeerConnectionObserver, @@ -112,6 +115,8 @@ class Conductor MainWnd* main_wnd_; int video_channel_; int audio_channel_; + talk_base::scoped_ptr local_renderer_; + talk_base::scoped_ptr remote_renderer_; }; #endif // PEERCONNECTION_SAMPLES_CLIENT_CONDUCTOR_H_