OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/browser/renderer_host/media/media_stream_dispatcher_host.h" | 5 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" |
6 | 6 |
7 #include "content/browser/resource_context.h" | 7 #include "content/browser/resource_context.h" |
8 #include "content/common/media/media_stream_messages.h" | 8 #include "content/common/media/media_stream_messages.h" |
9 #include "content/common/media/media_stream_options.h" | 9 #include "content/common/media/media_stream_options.h" |
10 | 10 |
(...skipping 25 matching lines...) Expand all Loading... |
36 return resource_context_->media_stream_manager(); | 36 return resource_context_->media_stream_manager(); |
37 } | 37 } |
38 | 38 |
39 bool MediaStreamDispatcherHost::OnMessageReceived( | 39 bool MediaStreamDispatcherHost::OnMessageReceived( |
40 const IPC::Message& message, bool* message_was_ok) { | 40 const IPC::Message& message, bool* message_was_ok) { |
41 bool handled = true; | 41 bool handled = true; |
42 IPC_BEGIN_MESSAGE_MAP_EX(MediaStreamDispatcherHost, message, *message_was_ok) | 42 IPC_BEGIN_MESSAGE_MAP_EX(MediaStreamDispatcherHost, message, *message_was_ok) |
43 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_GenerateStream, OnGenerateStream) | 43 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_GenerateStream, OnGenerateStream) |
44 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_StopGeneratedStream, | 44 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_StopGeneratedStream, |
45 OnStopGeneratedStream) | 45 OnStopGeneratedStream) |
| 46 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_EnumerateVideoDevices, |
| 47 OnEnumerateVideoDevices) |
| 48 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_OpenVideoDevice, |
| 49 OnOpenVideoDevice) |
46 IPC_MESSAGE_UNHANDLED(handled = false) | 50 IPC_MESSAGE_UNHANDLED(handled = false) |
47 IPC_END_MESSAGE_MAP_EX() | 51 IPC_END_MESSAGE_MAP_EX() |
48 return handled; | 52 return handled; |
49 } | 53 } |
50 | 54 |
51 void MediaStreamDispatcherHost::OnChannelClosing() { | 55 void MediaStreamDispatcherHost::OnChannelClosing() { |
52 BrowserMessageFilter::OnChannelClosing(); | 56 BrowserMessageFilter::OnChannelClosing(); |
53 DVLOG(1) << "MediaStreamDispatcherHost::OnChannelClosing"; | 57 DVLOG(1) << "MediaStreamDispatcherHost::OnChannelClosing"; |
54 | 58 |
55 // TODO(mflodman) Remove this temporary solution when shut-down issue is | 59 // TODO(mflodman) Remove this temporary solution when shut-down issue is |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 int render_view_id, const std::string& label) { | 98 int render_view_id, const std::string& label) { |
95 DVLOG(1) << "MediaStreamDispatcherHost::OnStopGeneratedStream(" | 99 DVLOG(1) << "MediaStreamDispatcherHost::OnStopGeneratedStream(" |
96 << ", {label = " << label << "})"; | 100 << ", {label = " << label << "})"; |
97 | 101 |
98 StreamMap::iterator it = streams_.find(label); | 102 StreamMap::iterator it = streams_.find(label); |
99 DCHECK(it != streams_.end()); | 103 DCHECK(it != streams_.end()); |
100 manager()->StopGeneratedStream(label); | 104 manager()->StopGeneratedStream(label); |
101 streams_.erase(it); | 105 streams_.erase(it); |
102 } | 106 } |
103 | 107 |
| 108 void MediaStreamDispatcherHost::OnEnumerateVideoDevices( |
| 109 int render_view_id, |
| 110 int page_request_id, |
| 111 const std::string& security_origin) { |
| 112 DVLOG(1) << "MediaStreamDispatcherHost::OnEnumerateVideoDevices(" |
| 113 << render_view_id << ", " |
| 114 << page_request_id << ", " |
| 115 << security_origin << ")"; |
| 116 |
| 117 std::string label; |
| 118 manager()->EnumerateVideoDevices(this, render_process_id_, render_view_id, |
| 119 security_origin, &label); |
| 120 DCHECK(!label.empty()); |
| 121 streams_[label] = StreamRequest(render_view_id, page_request_id); |
| 122 } |
| 123 |
| 124 void MediaStreamDispatcherHost::OnOpenVideoDevice( |
| 125 int render_view_id, |
| 126 int page_request_id, |
| 127 const std::string& device_id, |
| 128 const std::string& security_origin) { |
| 129 DVLOG(1) << "MediaStreamDispatcherHost::OnOpenVideoDevice(" |
| 130 << render_view_id << ", " |
| 131 << page_request_id << ", device_id: " |
| 132 << device_id.c_str() << ", " |
| 133 << security_origin << ")"; |
| 134 |
| 135 std::string label; |
| 136 manager()->OpenVideoDevice(this, render_process_id_, render_view_id, |
| 137 device_id, security_origin, &label); |
| 138 DCHECK(!label.empty()); |
| 139 streams_[label] = StreamRequest(render_view_id, page_request_id); |
| 140 } |
| 141 |
104 void MediaStreamDispatcherHost::StreamGenerated( | 142 void MediaStreamDispatcherHost::StreamGenerated( |
105 const std::string& label, | 143 const std::string& label, |
106 const StreamDeviceInfoArray& audio_devices, | 144 const StreamDeviceInfoArray& audio_devices, |
107 const StreamDeviceInfoArray& video_devices) { | 145 const StreamDeviceInfoArray& video_devices) { |
108 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 146 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
109 DVLOG(1) << "MediaStreamDispatcherHost::StreamGenerated(" | 147 DVLOG(1) << "MediaStreamDispatcherHost::StreamGenerated(" |
110 << ", {label = " << label << "})"; | 148 << ", {label = " << label << "})"; |
111 | 149 |
112 StreamMap::iterator it = streams_.find(label); | 150 StreamMap::iterator it = streams_.find(label); |
113 DCHECK(it != streams_.end()); | 151 DCHECK(it != streams_.end()); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 << ", {label = " << label << "})"; | 192 << ", {label = " << label << "})"; |
155 | 193 |
156 StreamMap::iterator it = streams_.find(label); | 194 StreamMap::iterator it = streams_.find(label); |
157 DCHECK(it != streams_.end()); | 195 DCHECK(it != streams_.end()); |
158 StreamRequest request = it->second; | 196 StreamRequest request = it->second; |
159 Send(new MediaStreamHostMsg_VideoDeviceFailed(request.render_view_id, | 197 Send(new MediaStreamHostMsg_VideoDeviceFailed(request.render_view_id, |
160 label, | 198 label, |
161 index)); | 199 index)); |
162 } | 200 } |
163 | 201 |
| 202 void MediaStreamDispatcherHost::VideoDevicesEnumerated( |
| 203 const std::string& label, |
| 204 const StreamDeviceInfoArray& devices) { |
| 205 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 206 DVLOG(1) << "MediaStreamDispatcherHost::VideoDevicesEnumerated(" |
| 207 << ", {label = " << label << "})"; |
| 208 |
| 209 StreamMap::iterator it = streams_.find(label); |
| 210 DCHECK(it != streams_.end()); |
| 211 StreamRequest request = it->second; |
| 212 streams_.erase(it); |
| 213 |
| 214 Send(new MediaStreamMsg_VideoDevicesEnumerated( |
| 215 request.render_view_id, request.page_request_id, devices)); |
| 216 } |
| 217 |
| 218 void MediaStreamDispatcherHost::VideoDevicesEnumerationFailed( |
| 219 const std::string& label) { |
| 220 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 221 DVLOG(1) << "MediaStreamDispatcherHost::VideoDevicesEnumerationFailed(" |
| 222 << ", {label = " << label << "})"; |
| 223 |
| 224 StreamMap::iterator it = streams_.find(label); |
| 225 DCHECK(it != streams_.end()); |
| 226 StreamRequest request = it->second; |
| 227 streams_.erase(it); |
| 228 |
| 229 Send(new MediaStreamMsg_VideoDevicesEnumerationFailed( |
| 230 request.render_view_id, request.page_request_id)); |
| 231 } |
| 232 |
| 233 void MediaStreamDispatcherHost::VideoDeviceOpened( |
| 234 const std::string& label, |
| 235 const StreamDeviceInfo& video_device) { |
| 236 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 237 DVLOG(1) << "MediaStreamDispatcherHost::VideoDeviceOpened(" |
| 238 << ", {label = " << label << "})"; |
| 239 |
| 240 StreamMap::iterator it = streams_.find(label); |
| 241 DCHECK(it != streams_.end()); |
| 242 StreamRequest request = it->second; |
| 243 |
| 244 Send(new MediaStreamMsg_VideoDeviceOpened( |
| 245 request.render_view_id, request.page_request_id, label, video_device)); |
| 246 } |
| 247 |
| 248 void MediaStreamDispatcherHost::VideoDeviceOpenFailed( |
| 249 const std::string& label) { |
| 250 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 251 DVLOG(1) << "MediaStreamDispatcherHost::VideoDeviceOpenFailed(" |
| 252 << ", {label = " << label << "})"; |
| 253 |
| 254 StreamMap::iterator it = streams_.find(label); |
| 255 DCHECK(it != streams_.end()); |
| 256 StreamRequest request = it->second; |
| 257 streams_.erase(it); |
| 258 |
| 259 Send(new MediaStreamMsg_VideoDeviceOpenFailed(request.render_view_id, |
| 260 request.page_request_id)); |
| 261 } |
| 262 |
164 } // namespace media_stream | 263 } // namespace media_stream |
OLD | NEW |