Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: content/renderer/media/media_stream_dispatcher.cc

Issue 11339014: Move content\browser\renderer_host\media to content namespace. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/renderer/media/media_stream_dispatcher.h" 5 #include "content/renderer/media/media_stream_dispatcher.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/common/media/media_stream_messages.h" 8 #include "content/common/media/media_stream_messages.h"
9 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" 9 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h"
10 #include "content/renderer/render_view_impl.h" 10 #include "content/renderer/render_view_impl.h"
(...skipping 11 matching lines...) Expand all
22 } 22 }
23 base::WeakPtr<MediaStreamDispatcherEventHandler> handler; 23 base::WeakPtr<MediaStreamDispatcherEventHandler> handler;
24 int request_id; 24 int request_id;
25 int ipc_request; 25 int ipc_request;
26 }; 26 };
27 27
28 struct MediaStreamDispatcher::Stream { 28 struct MediaStreamDispatcher::Stream {
29 Stream() {} 29 Stream() {}
30 ~Stream() {} 30 ~Stream() {}
31 base::WeakPtr<MediaStreamDispatcherEventHandler> handler; 31 base::WeakPtr<MediaStreamDispatcherEventHandler> handler;
32 media_stream::StreamDeviceInfoArray audio_array; 32 StreamDeviceInfoArray audio_array;
33 media_stream::StreamDeviceInfoArray video_array; 33 StreamDeviceInfoArray video_array;
34 }; 34 };
35 35
36 MediaStreamDispatcher::EnumerationRequest::EnumerationRequest( 36 MediaStreamDispatcher::EnumerationRequest::EnumerationRequest(
37 const base::WeakPtr<MediaStreamDispatcherEventHandler>& handler, 37 const base::WeakPtr<MediaStreamDispatcherEventHandler>& handler,
38 int request_id) 38 int request_id)
39 : handler(handler), 39 : handler(handler),
40 request_id(request_id) { 40 request_id(request_id) {
41 } 41 }
42 42
43 MediaStreamDispatcher::EnumerationRequest::~EnumerationRequest() {} 43 MediaStreamDispatcher::EnumerationRequest::~EnumerationRequest() {}
44 44
45 MediaStreamDispatcher::EnumerationState::EnumerationState() 45 MediaStreamDispatcher::EnumerationState::EnumerationState()
46 : ipc_id(-1) { 46 : ipc_id(-1) {
47 } 47 }
48 48
49 MediaStreamDispatcher::EnumerationState::~EnumerationState() {} 49 MediaStreamDispatcher::EnumerationState::~EnumerationState() {}
50 50
51 struct MediaStreamDispatcher::EnumerationState::CachedDevices { 51 struct MediaStreamDispatcher::EnumerationState::CachedDevices {
52 CachedDevices(const std::string& label, 52 CachedDevices(const std::string& label,
53 const media_stream::StreamDeviceInfoArray& device_array) 53 const StreamDeviceInfoArray& device_array)
54 : label(label), 54 : label(label),
55 devices(device_array) { 55 devices(device_array) {
56 } 56 }
57 ~CachedDevices() {} 57 ~CachedDevices() {}
58 58
59 std::string label; 59 std::string label;
60 media_stream::StreamDeviceInfoArray devices; 60 StreamDeviceInfoArray devices;
61 }; 61 };
62 62
63 MediaStreamDispatcher::MediaStreamDispatcher(RenderViewImpl* render_view) 63 MediaStreamDispatcher::MediaStreamDispatcher(RenderViewImpl* render_view)
64 : RenderViewObserver(render_view), 64 : RenderViewObserver(render_view),
65 main_loop_(base::MessageLoopProxy::current()), 65 main_loop_(base::MessageLoopProxy::current()),
66 next_ipc_id_(0) { 66 next_ipc_id_(0) {
67 } 67 }
68 68
69 MediaStreamDispatcher::~MediaStreamDispatcher() {} 69 MediaStreamDispatcher::~MediaStreamDispatcher() {}
70 70
71 void MediaStreamDispatcher::GenerateStream( 71 void MediaStreamDispatcher::GenerateStream(
72 int request_id, 72 int request_id,
73 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler, 73 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler,
74 const media_stream::StreamOptions& components, 74 const StreamOptions& components,
75 const GURL& security_origin) { 75 const GURL& security_origin) {
76 DCHECK(main_loop_->BelongsToCurrentThread()); 76 DCHECK(main_loop_->BelongsToCurrentThread());
77 DVLOG(1) << "MediaStreamDispatcher::GenerateStream(" << request_id << ")"; 77 DVLOG(1) << "MediaStreamDispatcher::GenerateStream(" << request_id << ")";
78 78
79 requests_.push_back(Request(event_handler, request_id, next_ipc_id_)); 79 requests_.push_back(Request(event_handler, request_id, next_ipc_id_));
80 Send(new MediaStreamHostMsg_GenerateStream(routing_id(), 80 Send(new MediaStreamHostMsg_GenerateStream(routing_id(),
81 next_ipc_id_++, 81 next_ipc_id_++,
82 components, 82 components,
83 security_origin)); 83 security_origin));
84 } 84 }
(...skipping 24 matching lines...) Expand all
109 if (it == label_stream_map_.end()) 109 if (it == label_stream_map_.end())
110 return; 110 return;
111 111
112 Send(new MediaStreamHostMsg_StopGeneratedStream(routing_id(), label)); 112 Send(new MediaStreamHostMsg_StopGeneratedStream(routing_id(), label));
113 label_stream_map_.erase(it); 113 label_stream_map_.erase(it);
114 } 114 }
115 115
116 void MediaStreamDispatcher::EnumerateDevices( 116 void MediaStreamDispatcher::EnumerateDevices(
117 int request_id, 117 int request_id,
118 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler, 118 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler,
119 media_stream::MediaStreamType type, 119 MediaStreamType type,
120 const GURL& security_origin) { 120 const GURL& security_origin) {
121 DCHECK(main_loop_->BelongsToCurrentThread()); 121 DCHECK(main_loop_->BelongsToCurrentThread());
122 DCHECK(type == MEDIA_DEVICE_AUDIO_CAPTURE || 122 DCHECK(type == MEDIA_DEVICE_AUDIO_CAPTURE ||
123 type == MEDIA_DEVICE_VIDEO_CAPTURE); 123 type == MEDIA_DEVICE_VIDEO_CAPTURE);
124 DVLOG(1) << "MediaStreamDispatcher::EnumerateDevices(" 124 DVLOG(1) << "MediaStreamDispatcher::EnumerateDevices("
125 << request_id << ")"; 125 << request_id << ")";
126 126
127 EnumerationState* state = 127 EnumerationState* state =
128 (type == MEDIA_DEVICE_AUDIO_CAPTURE ? 128 (type == MEDIA_DEVICE_AUDIO_CAPTURE ?
129 &audio_enumeration_state_ : &video_enumeration_state_); 129 &audio_enumeration_state_ : &video_enumeration_state_);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 } 174 }
175 return; 175 return;
176 } 176 }
177 } 177 }
178 } 178 }
179 179
180 void MediaStreamDispatcher::OpenDevice( 180 void MediaStreamDispatcher::OpenDevice(
181 int request_id, 181 int request_id,
182 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler, 182 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler,
183 const std::string& device_id, 183 const std::string& device_id,
184 media_stream::MediaStreamType type, 184 MediaStreamType type,
185 const GURL& security_origin) { 185 const GURL& security_origin) {
186 DCHECK(main_loop_->BelongsToCurrentThread()); 186 DCHECK(main_loop_->BelongsToCurrentThread());
187 DVLOG(1) << "MediaStreamDispatcher::OpenDevice(" << request_id << ")"; 187 DVLOG(1) << "MediaStreamDispatcher::OpenDevice(" << request_id << ")";
188 188
189 requests_.push_back(Request(event_handler, request_id, next_ipc_id_)); 189 requests_.push_back(Request(event_handler, request_id, next_ipc_id_));
190 Send(new MediaStreamHostMsg_OpenDevice(routing_id(), 190 Send(new MediaStreamHostMsg_OpenDevice(routing_id(),
191 next_ipc_id_++, 191 next_ipc_id_++,
192 device_id, 192 device_id,
193 type, 193 type,
194 security_origin)); 194 security_origin));
(...skipping 23 matching lines...) Expand all
218 IPC_MESSAGE_HANDLER(MediaStreamMsg_DeviceOpenFailed, 218 IPC_MESSAGE_HANDLER(MediaStreamMsg_DeviceOpenFailed,
219 OnDeviceOpenFailed) 219 OnDeviceOpenFailed)
220 IPC_MESSAGE_UNHANDLED(handled = false) 220 IPC_MESSAGE_UNHANDLED(handled = false)
221 IPC_END_MESSAGE_MAP() 221 IPC_END_MESSAGE_MAP()
222 return handled; 222 return handled;
223 } 223 }
224 224
225 void MediaStreamDispatcher::OnStreamGenerated( 225 void MediaStreamDispatcher::OnStreamGenerated(
226 int request_id, 226 int request_id,
227 const std::string& label, 227 const std::string& label,
228 const media_stream::StreamDeviceInfoArray& audio_array, 228 const StreamDeviceInfoArray& audio_array,
229 const media_stream::StreamDeviceInfoArray& video_array) { 229 const StreamDeviceInfoArray& video_array) {
230 DCHECK(main_loop_->BelongsToCurrentThread()); 230 DCHECK(main_loop_->BelongsToCurrentThread());
231 231
232 for (RequestList::iterator it = requests_.begin(); 232 for (RequestList::iterator it = requests_.begin();
233 it != requests_.end(); ++it) { 233 it != requests_.end(); ++it) {
234 Request& request = *it; 234 Request& request = *it;
235 if (request.ipc_request == request_id) { 235 if (request.ipc_request == request_id) {
236 Stream new_stream; 236 Stream new_stream;
237 new_stream.handler = request.handler; 237 new_stream.handler = request.handler;
238 new_stream.audio_array = audio_array; 238 new_stream.audio_array = audio_array;
239 new_stream.video_array = video_array; 239 new_stream.video_array = video_array;
(...skipping 23 matching lines...) Expand all
263 } 263 }
264 requests_.erase(it); 264 requests_.erase(it);
265 break; 265 break;
266 } 266 }
267 } 267 }
268 } 268 }
269 269
270 void MediaStreamDispatcher::OnDevicesEnumerated( 270 void MediaStreamDispatcher::OnDevicesEnumerated(
271 int request_id, 271 int request_id,
272 const std::string& label, 272 const std::string& label,
273 const media_stream::StreamDeviceInfoArray& device_array) { 273 const StreamDeviceInfoArray& device_array) {
274 DCHECK(main_loop_->BelongsToCurrentThread()); 274 DCHECK(main_loop_->BelongsToCurrentThread());
275 DCHECK_GE(request_id, 0); 275 DCHECK_GE(request_id, 0);
276 276
277 EnumerationState* state; 277 EnumerationState* state;
278 if (request_id == audio_enumeration_state_.ipc_id) { 278 if (request_id == audio_enumeration_state_.ipc_id) {
279 state = &audio_enumeration_state_; 279 state = &audio_enumeration_state_;
280 } else if (request_id == video_enumeration_state_.ipc_id) { 280 } else if (request_id == video_enumeration_state_.ipc_id) {
281 state = &video_enumeration_state_; 281 state = &video_enumeration_state_;
282 } else { 282 } else {
283 // This could happen when requester has stopped enumeration while some 283 // This could happen when requester has stopped enumeration while some
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 } 315 }
316 requests_.erase(it); 316 requests_.erase(it);
317 break; 317 break;
318 } 318 }
319 } 319 }
320 } 320 }
321 321
322 void MediaStreamDispatcher::OnDeviceOpened( 322 void MediaStreamDispatcher::OnDeviceOpened(
323 int request_id, 323 int request_id,
324 const std::string& label, 324 const std::string& label,
325 const media_stream::StreamDeviceInfo& device_info) { 325 const StreamDeviceInfo& device_info) {
326 DCHECK(main_loop_->BelongsToCurrentThread()); 326 DCHECK(main_loop_->BelongsToCurrentThread());
327 for (RequestList::iterator it = requests_.begin(); 327 for (RequestList::iterator it = requests_.begin();
328 it != requests_.end(); ++it) { 328 it != requests_.end(); ++it) {
329 Request& request = *it; 329 Request& request = *it;
330 if (request.ipc_request == request_id) { 330 if (request.ipc_request == request_id) {
331 Stream new_stream; 331 Stream new_stream;
332 new_stream.handler = request.handler; 332 new_stream.handler = request.handler;
333 if (IsAudioMediaType(device_info.stream_type)) { 333 if (IsAudioMediaType(device_info.stream_type)) {
334 new_stream.audio_array.push_back(device_info); 334 new_stream.audio_array.push_back(device_info);
335 } else if (IsVideoMediaType(device_info.stream_type)) { 335 } else if (IsVideoMediaType(device_info.stream_type)) {
(...skipping 28 matching lines...) Expand all
364 requests_.erase(it); 364 requests_.erase(it);
365 break; 365 break;
366 } 366 }
367 } 367 }
368 } 368 }
369 369
370 int MediaStreamDispatcher::audio_session_id(const std::string& label, 370 int MediaStreamDispatcher::audio_session_id(const std::string& label,
371 int index) { 371 int index) {
372 LabelStreamMap::iterator it = label_stream_map_.find(label); 372 LabelStreamMap::iterator it = label_stream_map_.find(label);
373 if (it == label_stream_map_.end()) 373 if (it == label_stream_map_.end())
374 return media_stream::StreamDeviceInfo::kNoId; 374 return StreamDeviceInfo::kNoId;
375 375
376 DCHECK_GT(it->second.audio_array.size(), static_cast<size_t>(index)); 376 DCHECK_GT(it->second.audio_array.size(), static_cast<size_t>(index));
377 return it->second.audio_array[index].session_id; 377 return it->second.audio_array[index].session_id;
378 } 378 }
379 379
380 bool MediaStreamDispatcher::IsStream(const std::string& label) { 380 bool MediaStreamDispatcher::IsStream(const std::string& label) {
381 return label_stream_map_.find(label) != label_stream_map_.end(); 381 return label_stream_map_.find(label) != label_stream_map_.end();
382 } 382 }
383 383
384 int MediaStreamDispatcher::video_session_id(const std::string& label, 384 int MediaStreamDispatcher::video_session_id(const std::string& label,
385 int index) { 385 int index) {
386 LabelStreamMap::iterator it = label_stream_map_.find(label); 386 LabelStreamMap::iterator it = label_stream_map_.find(label);
387 if (it == label_stream_map_.end()) 387 if (it == label_stream_map_.end())
388 return media_stream::StreamDeviceInfo::kNoId; 388 return StreamDeviceInfo::kNoId;
389 389
390 DCHECK_GT(it->second.video_array.size(), static_cast<size_t>(index)); 390 DCHECK_GT(it->second.video_array.size(), static_cast<size_t>(index));
391 return it->second.video_array[index].session_id; 391 return it->second.video_array[index].session_id;
392 } 392 }
393 393
394 } // namespace content 394 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698