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 |