| 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 "chrome/renderer/media/cast_receiver_session.h" | 5 #include "chrome/renderer/media/cast_receiver_session.h" |
| 6 | 6 |
| 7 #include "base/synchronization/waitable_event.h" | 7 #include "base/synchronization/waitable_event.h" |
| 8 #include "chrome/renderer/media/cast_receiver_audio_valve.h" | 8 #include "chrome/renderer/media/cast_receiver_audio_valve.h" |
| 9 #include "content/public/renderer/render_thread.h" | 9 #include "content/public/renderer/render_thread.h" |
| 10 #include "media/base/audio_capturer_source.h" | 10 #include "media/base/audio_capturer_source.h" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 const content::VideoCaptureDeliverFrameCB& frame_callback, | 50 const content::VideoCaptureDeliverFrameCB& frame_callback, |
| 51 scoped_refptr<base::SingleThreadTaskRunner> frame_callback_task_runner, | 51 scoped_refptr<base::SingleThreadTaskRunner> frame_callback_task_runner, |
| 52 const RunningCallback& running_callback) override; | 52 const RunningCallback& running_callback) override; |
| 53 void StopCapture() override; | 53 void StopCapture() override; |
| 54 private: | 54 private: |
| 55 const scoped_refptr<CastReceiverSession> cast_receiver_session_; | 55 const scoped_refptr<CastReceiverSession> cast_receiver_session_; |
| 56 }; | 56 }; |
| 57 | 57 |
| 58 CastReceiverSession::CastReceiverSession() | 58 CastReceiverSession::CastReceiverSession() |
| 59 : delegate_(new CastReceiverSessionDelegate()), | 59 : delegate_(new CastReceiverSessionDelegate()), |
| 60 io_message_loop_proxy_( | 60 io_task_runner_( |
| 61 content::RenderThread::Get()->GetIOMessageLoopProxy()) {} | 61 content::RenderThread::Get()->GetIOMessageLoopProxy()) {} |
| 62 | 62 |
| 63 CastReceiverSession::~CastReceiverSession() { | 63 CastReceiverSession::~CastReceiverSession() { |
| 64 // We should always be able to delete the object on the IO thread. | 64 // We should always be able to delete the object on the IO thread. |
| 65 CHECK(io_message_loop_proxy_->DeleteSoon(FROM_HERE, delegate_.release())); | 65 CHECK(io_task_runner_->DeleteSoon(FROM_HERE, delegate_.release())); |
| 66 } | 66 } |
| 67 | 67 |
| 68 void CastReceiverSession::Start( | 68 void CastReceiverSession::Start( |
| 69 const media::cast::FrameReceiverConfig& audio_config, | 69 const media::cast::FrameReceiverConfig& audio_config, |
| 70 const media::cast::FrameReceiverConfig& video_config, | 70 const media::cast::FrameReceiverConfig& video_config, |
| 71 const net::IPEndPoint& local_endpoint, | 71 const net::IPEndPoint& local_endpoint, |
| 72 const net::IPEndPoint& remote_endpoint, | 72 const net::IPEndPoint& remote_endpoint, |
| 73 scoped_ptr<base::DictionaryValue> options, | 73 scoped_ptr<base::DictionaryValue> options, |
| 74 const media::VideoCaptureFormat& capture_format, | 74 const media::VideoCaptureFormat& capture_format, |
| 75 const StartCB& start_callback, | 75 const StartCB& start_callback, |
| 76 const CastReceiverSessionDelegate::ErrorCallback& error_callback) { | 76 const CastReceiverSessionDelegate::ErrorCallback& error_callback) { |
| 77 audio_config_ = audio_config; | 77 audio_config_ = audio_config; |
| 78 video_config_ = video_config; | 78 video_config_ = video_config; |
| 79 format_ = capture_format; | 79 format_ = capture_format; |
| 80 io_message_loop_proxy_->PostTask( | 80 io_task_runner_->PostTask( |
| 81 FROM_HERE, | 81 FROM_HERE, |
| 82 base::Bind(&CastReceiverSessionDelegate::Start, | 82 base::Bind(&CastReceiverSessionDelegate::Start, |
| 83 base::Unretained(delegate_.get()), | 83 base::Unretained(delegate_.get()), |
| 84 audio_config, | 84 audio_config, |
| 85 video_config, | 85 video_config, |
| 86 local_endpoint, | 86 local_endpoint, |
| 87 remote_endpoint, | 87 remote_endpoint, |
| 88 base::Passed(&options), | 88 base::Passed(&options), |
| 89 format_, | 89 format_, |
| 90 media::BindToCurrentLoop(error_callback))); | 90 media::BindToCurrentLoop(error_callback))); |
| 91 scoped_refptr<media::AudioCapturerSource> audio( | 91 scoped_refptr<media::AudioCapturerSource> audio( |
| 92 new CastReceiverSession::AudioCapturerSource(this)); | 92 new CastReceiverSession::AudioCapturerSource(this)); |
| 93 scoped_ptr<media::VideoCapturerSource> video( | 93 scoped_ptr<media::VideoCapturerSource> video( |
| 94 new CastReceiverSession::VideoCapturerSource(this)); | 94 new CastReceiverSession::VideoCapturerSource(this)); |
| 95 base::MessageLoop::current()->PostTask( | 95 base::MessageLoop::current()->PostTask( |
| 96 FROM_HERE, | 96 FROM_HERE, |
| 97 base::Bind(start_callback, audio, base::Passed(&video))); | 97 base::Bind(start_callback, audio, base::Passed(&video))); |
| 98 } | 98 } |
| 99 | 99 |
| 100 void CastReceiverSession::StartAudio( | 100 void CastReceiverSession::StartAudio( |
| 101 scoped_refptr<CastReceiverAudioValve> audio_valve) { | 101 scoped_refptr<CastReceiverAudioValve> audio_valve) { |
| 102 io_message_loop_proxy_->PostTask( | 102 io_task_runner_->PostTask( |
| 103 FROM_HERE, | 103 FROM_HERE, |
| 104 base::Bind(&CastReceiverSessionDelegate::StartAudio, | 104 base::Bind(&CastReceiverSessionDelegate::StartAudio, |
| 105 base::Unretained(delegate_.get()), | 105 base::Unretained(delegate_.get()), |
| 106 audio_valve)); | 106 audio_valve)); |
| 107 } | 107 } |
| 108 | 108 |
| 109 void CastReceiverSession::StartVideo( | 109 void CastReceiverSession::StartVideo( |
| 110 content::VideoCaptureDeliverFrameCB frame_callback) { | 110 content::VideoCaptureDeliverFrameCB frame_callback) { |
| 111 io_message_loop_proxy_->PostTask( | 111 io_task_runner_->PostTask( |
| 112 FROM_HERE, | 112 FROM_HERE, |
| 113 base::Bind(&CastReceiverSessionDelegate::StartVideo, | 113 base::Bind(&CastReceiverSessionDelegate::StartVideo, |
| 114 base::Unretained(delegate_.get()), | 114 base::Unretained(delegate_.get()), |
| 115 frame_callback)); | 115 frame_callback)); |
| 116 } | 116 } |
| 117 | 117 |
| 118 void CastReceiverSession::StopVideo() { | 118 void CastReceiverSession::StopVideo() { |
| 119 io_message_loop_proxy_->PostTask( | 119 io_task_runner_->PostTask( |
| 120 FROM_HERE, | 120 FROM_HERE, |
| 121 base::Bind(&CastReceiverSessionDelegate::StopVideo, | 121 base::Bind(&CastReceiverSessionDelegate::StopVideo, |
| 122 base::Unretained(delegate_.get()))); | 122 base::Unretained(delegate_.get()))); |
| 123 } | 123 } |
| 124 | 124 |
| 125 CastReceiverSession::VideoCapturerSource::VideoCapturerSource( | 125 CastReceiverSession::VideoCapturerSource::VideoCapturerSource( |
| 126 const scoped_refptr<CastReceiverSession> cast_receiver_session) | 126 const scoped_refptr<CastReceiverSession> cast_receiver_session) |
| 127 : cast_receiver_session_(cast_receiver_session) { | 127 : cast_receiver_session_(cast_receiver_session) { |
| 128 } | 128 } |
| 129 | 129 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 } | 192 } |
| 193 | 193 |
| 194 void CastReceiverSession::AudioCapturerSource::SetVolume(double volume) { | 194 void CastReceiverSession::AudioCapturerSource::SetVolume(double volume) { |
| 195 // not supported | 195 // not supported |
| 196 } | 196 } |
| 197 | 197 |
| 198 void CastReceiverSession::AudioCapturerSource::SetAutomaticGainControl( | 198 void CastReceiverSession::AudioCapturerSource::SetAutomaticGainControl( |
| 199 bool enable) { | 199 bool enable) { |
| 200 // not supported | 200 // not supported |
| 201 } | 201 } |
| OLD | NEW |