OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "remoting/protocol/webrtc_connection_to_client.h" | 5 #include "remoting/protocol/webrtc_connection_to_client.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 } | 76 } |
77 | 77 |
78 std::unique_ptr<VideoStream> WebrtcConnectionToClient::StartVideoStream( | 78 std::unique_ptr<VideoStream> WebrtcConnectionToClient::StartVideoStream( |
79 std::unique_ptr<webrtc::DesktopCapturer> desktop_capturer) { | 79 std::unique_ptr<webrtc::DesktopCapturer> desktop_capturer) { |
80 DCHECK(thread_checker_.CalledOnValidThread()); | 80 DCHECK(thread_checker_.CalledOnValidThread()); |
81 DCHECK(transport_); | 81 DCHECK(transport_); |
82 | 82 |
83 std::unique_ptr<WebrtcVideoStream> stream(new WebrtcVideoStream()); | 83 std::unique_ptr<WebrtcVideoStream> stream(new WebrtcVideoStream()); |
84 stream->Start(std::move(desktop_capturer), transport_.get(), | 84 stream->Start(std::move(desktop_capturer), transport_.get(), |
85 video_encode_task_runner_); | 85 video_encode_task_runner_); |
| 86 stream->SetEventTimestampsSource( |
| 87 event_dispatcher_->event_timestamps_source()); |
86 return std::move(stream); | 88 return std::move(stream); |
87 } | 89 } |
88 | 90 |
89 std::unique_ptr<AudioStream> WebrtcConnectionToClient::StartAudioStream( | 91 std::unique_ptr<AudioStream> WebrtcConnectionToClient::StartAudioStream( |
90 std::unique_ptr<AudioSource> audio_source) { | 92 std::unique_ptr<AudioSource> audio_source) { |
91 DCHECK(thread_checker_.CalledOnValidThread()); | 93 DCHECK(thread_checker_.CalledOnValidThread()); |
92 DCHECK(transport_); | 94 DCHECK(transport_); |
93 | 95 |
94 std::unique_ptr<WebrtcAudioStream> stream(new WebrtcAudioStream()); | 96 std::unique_ptr<WebrtcAudioStream> stream(new WebrtcAudioStream()); |
95 stream->Start(audio_task_runner_, std::move(audio_source), transport_.get()); | 97 stream->Start(audio_task_runner_, std::move(audio_source), transport_.get()); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
174 DCHECK(thread_checker_.CalledOnValidThread()); | 176 DCHECK(thread_checker_.CalledOnValidThread()); |
175 Disconnect(error); | 177 Disconnect(error); |
176 } | 178 } |
177 | 179 |
178 void WebrtcConnectionToClient::OnWebrtcTransportIncomingDataChannel( | 180 void WebrtcConnectionToClient::OnWebrtcTransportIncomingDataChannel( |
179 const std::string& name, | 181 const std::string& name, |
180 std::unique_ptr<MessagePipe> pipe) { | 182 std::unique_ptr<MessagePipe> pipe) { |
181 DCHECK(thread_checker_.CalledOnValidThread()); | 183 DCHECK(thread_checker_.CalledOnValidThread()); |
182 if (name == event_dispatcher_->channel_name() && | 184 if (name == event_dispatcher_->channel_name() && |
183 !event_dispatcher_->is_connected()) { | 185 !event_dispatcher_->is_connected()) { |
184 event_dispatcher_->set_on_input_event_callback( | |
185 base::Bind(&WebrtcConnectionToClient::OnInputEventReceived, | |
186 base::Unretained(this))); | |
187 event_dispatcher_->Init(std::move(pipe), this); | 186 event_dispatcher_->Init(std::move(pipe), this); |
188 } | 187 } |
189 } | 188 } |
190 | 189 |
191 void WebrtcConnectionToClient::OnWebrtcTransportMediaStreamAdded( | 190 void WebrtcConnectionToClient::OnWebrtcTransportMediaStreamAdded( |
192 scoped_refptr<webrtc::MediaStreamInterface> stream) { | 191 scoped_refptr<webrtc::MediaStreamInterface> stream) { |
193 DCHECK(thread_checker_.CalledOnValidThread()); | 192 DCHECK(thread_checker_.CalledOnValidThread()); |
194 LOG(WARNING) << "The client created an unexpected media stream."; | 193 LOG(WARNING) << "The client created an unexpected media stream."; |
195 } | 194 } |
196 | 195 |
(...skipping 14 matching lines...) Expand all Loading... |
211 | 210 |
212 void WebrtcConnectionToClient::OnChannelClosed( | 211 void WebrtcConnectionToClient::OnChannelClosed( |
213 ChannelDispatcherBase* channel_dispatcher) { | 212 ChannelDispatcherBase* channel_dispatcher) { |
214 DCHECK(thread_checker_.CalledOnValidThread()); | 213 DCHECK(thread_checker_.CalledOnValidThread()); |
215 | 214 |
216 LOG(ERROR) << "Channel " << channel_dispatcher->channel_name() | 215 LOG(ERROR) << "Channel " << channel_dispatcher->channel_name() |
217 << " was closed unexpectedly."; | 216 << " was closed unexpectedly."; |
218 Disconnect(INCOMPATIBLE_PROTOCOL); | 217 Disconnect(INCOMPATIBLE_PROTOCOL); |
219 } | 218 } |
220 | 219 |
221 void WebrtcConnectionToClient::OnInputEventReceived(int64_t timestamp) { | |
222 DCHECK(thread_checker_.CalledOnValidThread()); | |
223 event_handler_->OnInputEventReceived(timestamp); | |
224 } | |
225 | |
226 } // namespace protocol | 220 } // namespace protocol |
227 } // namespace remoting | 221 } // namespace remoting |
OLD | NEW |