| Index: remoting/protocol/webrtc_connection_to_host.cc
|
| diff --git a/remoting/protocol/webrtc_connection_to_host.cc b/remoting/protocol/webrtc_connection_to_host.cc
|
| index 1ab485b3d7535eb3f27ac446c48a8900d592cfed..1e0c78878df2742c8b2c8b9469ae6faf8db45f79 100644
|
| --- a/remoting/protocol/webrtc_connection_to_host.cc
|
| +++ b/remoting/protocol/webrtc_connection_to_host.cc
|
| @@ -16,6 +16,8 @@
|
| #include "remoting/protocol/message_pipe.h"
|
| #include "remoting/protocol/transport_context.h"
|
| #include "remoting/protocol/video_renderer.h"
|
| +#include "remoting/protocol/webrtc_audio_module.h"
|
| +#include "remoting/protocol/webrtc_audio_sink_adapter.h"
|
| #include "remoting/protocol/webrtc_transport.h"
|
| #include "remoting/protocol/webrtc_video_renderer_adapter.h"
|
|
|
| @@ -35,6 +37,8 @@ void WebrtcConnectionToHost::Connect(
|
| transport_.reset(new WebrtcTransport(
|
| jingle_glue::JingleThreadWrapper::current(), transport_context, this));
|
|
|
| + transport_->audio_module()->SetAudioTaskRunner(audio_decode_task_runner_);
|
| +
|
| session_ = std::move(session);
|
| session_->SetEventHandler(this);
|
| session_->SetTransport(transport_.get());
|
| @@ -74,8 +78,9 @@ void WebrtcConnectionToHost::set_video_renderer(VideoRenderer* video_renderer) {
|
|
|
| void WebrtcConnectionToHost::InitializeAudio(
|
| scoped_refptr<base::SingleThreadTaskRunner> audio_decode_task_runner,
|
| - base::WeakPtr<AudioStub> audio_stub) {
|
| - NOTIMPLEMENTED();
|
| + base::WeakPtr<AudioStub> audio_consumer) {
|
| + audio_decode_task_runner_ = audio_decode_task_runner;
|
| + audio_consumer_ = audio_consumer;
|
| }
|
|
|
| void WebrtcConnectionToHost::OnSessionStateChange(Session::State state) {
|
| @@ -144,7 +149,13 @@ void WebrtcConnectionToHost::OnWebrtcTransportIncomingDataChannel(
|
|
|
| void WebrtcConnectionToHost::OnWebrtcTransportMediaStreamAdded(
|
| scoped_refptr<webrtc::MediaStreamInterface> stream) {
|
| - GetOrCreateVideoAdapter(stream->label())->SetMediaStream(stream);
|
| + if (stream->GetVideoTracks().size() > 0) {
|
| + GetOrCreateVideoAdapter(stream->label())->SetMediaStream(stream);
|
| + } else if (stream->GetAudioTracks().size() > 0) {
|
| + audio_adapter_.reset(new WebrtcAudioSinkAdapter(stream, audio_consumer_));
|
| + } else {
|
| + LOG(ERROR) << "Received MediaStream with no video or audio tracks.";
|
| + }
|
| }
|
|
|
| void WebrtcConnectionToHost::OnWebrtcTransportMediaStreamRemoved(
|
|
|