Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Unified Diff: remoting/protocol/webrtc_connection_to_client.cc

Issue 1846893002: Interface with webrtc through encoded frames (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed sergey comment Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/protocol/webrtc_connection_to_client.h ('k') | remoting/protocol/webrtc_dummy_video_capturer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/webrtc_connection_to_client.cc
diff --git a/remoting/protocol/webrtc_connection_to_client.cc b/remoting/protocol/webrtc_connection_to_client.cc
index 733fd429388cad96135fb9da1c6d3fcec995f87f..32af9744e9985eff14498e2c4297fc322da82d2d 100644
--- a/remoting/protocol/webrtc_connection_to_client.cc
+++ b/remoting/protocol/webrtc_connection_to_client.cc
@@ -21,7 +21,6 @@
#include "remoting/protocol/input_stub.h"
#include "remoting/protocol/transport_context.h"
#include "remoting/protocol/webrtc_transport.h"
-#include "remoting/protocol/webrtc_video_capturer_adapter.h"
#include "remoting/protocol/webrtc_video_stream.h"
#include "third_party/webrtc/api/mediastreaminterface.h"
#include "third_party/webrtc/api/peerconnectioninterface.h"
@@ -36,16 +35,19 @@ namespace protocol {
// thread as a worker thread.
WebrtcConnectionToClient::WebrtcConnectionToClient(
std::unique_ptr<protocol::Session> session,
- scoped_refptr<protocol::TransportContext> transport_context)
- : transport_(jingle_glue::JingleThreadWrapper::current(),
- transport_context,
- this),
+ scoped_refptr<protocol::TransportContext> transport_context,
+ scoped_refptr<base::SingleThreadTaskRunner> video_encode_task_runner)
+ : transport_(
+ new WebrtcTransport(jingle_glue::JingleThreadWrapper::current(),
+ transport_context,
+ this)),
session_(std::move(session)),
+ video_encode_task_runner_(video_encode_task_runner),
control_dispatcher_(new HostControlDispatcher()),
event_dispatcher_(new HostEventDispatcher()),
weak_factory_(this) {
session_->SetEventHandler(this);
- session_->SetTransport(&transport_);
+ session_->SetTransport(transport_.get());
}
WebrtcConnectionToClient::~WebrtcConnectionToClient() {}
@@ -76,9 +78,11 @@ void WebrtcConnectionToClient::OnInputEventReceived(int64_t timestamp) {
std::unique_ptr<VideoStream> WebrtcConnectionToClient::StartVideoStream(
std::unique_ptr<webrtc::DesktopCapturer> desktop_capturer) {
+ // TODO(isheriff): make this codec independent
+ std::unique_ptr<VideoEncoder> video_encoder = VideoEncoderVpx::CreateForVP8();
std::unique_ptr<WebrtcVideoStream> stream(new WebrtcVideoStream());
- if (!stream->Start(std::move(desktop_capturer), transport_.peer_connection(),
- transport_.peer_connection_factory())) {
+ if (!stream->Start(std::move(desktop_capturer), transport_.get(),
+ video_encode_task_runner_, std::move(video_encoder))) {
return nullptr;
}
return std::move(stream);
@@ -115,7 +119,7 @@ void WebrtcConnectionToClient::OnSessionStateChange(Session::State state) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(event_handler_);
- switch(state) {
+ switch (state) {
case Session::INITIALIZING:
case Session::CONNECTING:
case Session::ACCEPTING:
@@ -140,6 +144,7 @@ void WebrtcConnectionToClient::OnSessionStateChange(Session::State state) {
case Session::CLOSED:
case Session::FAILED:
+ transport_->Close(state == Session::CLOSED ? OK : session_->error());
control_dispatcher_.reset();
event_dispatcher_.reset();
event_handler_->OnConnectionClosed(
@@ -149,9 +154,9 @@ void WebrtcConnectionToClient::OnSessionStateChange(Session::State state) {
}
void WebrtcConnectionToClient::OnWebrtcTransportConnecting() {
- control_dispatcher_->Init(transport_.outgoing_channel_factory(), this);
+ control_dispatcher_->Init(transport_->outgoing_channel_factory(), this);
- event_dispatcher_->Init(transport_.incoming_channel_factory(), this);
+ event_dispatcher_->Init(transport_->incoming_channel_factory(), this);
event_dispatcher_->set_on_input_event_callback(base::Bind(
&ConnectionToClient::OnInputEventReceived, base::Unretained(this)));
}
« no previous file with comments | « remoting/protocol/webrtc_connection_to_client.h ('k') | remoting/protocol/webrtc_dummy_video_capturer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698