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

Unified Diff: content/renderer/media/media_stream_dispatcher.cc

Issue 10912004: Begin adding support for tab mirroring via the MediaStream audio/video capturing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Renamed MEDIA_USER_*_CAPTURE to MEDIA_*_DEVICE_CAPTURE, as suggested by wjia@. Created 8 years, 3 months 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/media_stream_dispatcher.cc
diff --git a/content/renderer/media/media_stream_dispatcher.cc b/content/renderer/media/media_stream_dispatcher.cc
index 5d97ca0135a04ff79a8b149e1662bca9321c0b68..866d68c504229a4f10c7f6994160d2745ddfc673 100644
--- a/content/renderer/media/media_stream_dispatcher.cc
+++ b/content/renderer/media/media_stream_dispatcher.cc
@@ -117,26 +117,23 @@ void MediaStreamDispatcher::EnumerateDevices(
media_stream::MediaStreamType type,
const GURL& security_origin) {
DCHECK(main_loop_->BelongsToCurrentThread());
- DCHECK(type == content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE ||
- type == content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE);
+ DCHECK_LT(content::MEDIA_NO_SERVICE, type);
+ DCHECK_GT(content::NUM_MEDIA_TYPES, type);
DVLOG(1) << "MediaStreamDispatcher::EnumerateDevices("
<< request_id << ")";
- EnumerationState* state =
- (type == content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE ?
- &audio_enumeration_state_ : &video_enumeration_state_);
- state->requests.push_back(
- EnumerationRequest(event_handler, request_id));
+ EnumerationState& state = enumeration_state_[type];
+ state.requests.push_back(EnumerationRequest(event_handler, request_id));
- if (state->cached_devices.get()) {
+ if (state.cached_devices.get()) {
event_handler->OnDevicesEnumerated(
- request_id, state->cached_devices->devices);
- } else if (state->ipc_id < 0) {
+ request_id, state.cached_devices->devices);
+ } else if (state.ipc_id < 0) {
Send(new MediaStreamHostMsg_EnumerateDevices(routing_id(),
next_ipc_id_,
type,
security_origin));
- state->ipc_id = next_ipc_id_++;
+ state.ipc_id = next_ipc_id_++;
}
}
@@ -148,10 +145,10 @@ void MediaStreamDispatcher::StopEnumerateDevices(
<< request_id << ")";
// Remove the request.
- RemoveEnumerationRequest(
- request_id, event_handler, &audio_enumeration_state_);
- RemoveEnumerationRequest(
- request_id, event_handler, &video_enumeration_state_);
+ for (int i = content::MEDIA_NO_SERVICE + 1; i < content::NUM_MEDIA_TYPES;
+ ++i) {
+ RemoveEnumerationRequest(request_id, event_handler, &enumeration_state_[i]);
+ }
}
void MediaStreamDispatcher::RemoveEnumerationRequest(
@@ -309,12 +306,15 @@ void MediaStreamDispatcher::OnDevicesEnumerated(
DCHECK(main_loop_->BelongsToCurrentThread());
DCHECK_GE(request_id, 0);
- EnumerationState* state;
- if (request_id == audio_enumeration_state_.ipc_id) {
- state = &audio_enumeration_state_;
- } else if (request_id == video_enumeration_state_.ipc_id) {
- state = &video_enumeration_state_;
- } else {
+ EnumerationState* state = NULL;
+ for (int i = content::MEDIA_NO_SERVICE + 1; i < content::NUM_MEDIA_TYPES;
+ ++i) {
+ if (request_id == enumeration_state_[i].ipc_id) {
+ state = &enumeration_state_[i];
+ break;
+ }
+ }
+ if (state == NULL) {
// This could happen when requester has stopped enumeration while some
// enumerated response is on the way. Have to stop the |label| because
// this might be the first enumerated device list is received. This also
@@ -365,11 +365,12 @@ void MediaStreamDispatcher::OnDeviceOpened(
if (request.ipc_request == request_id) {
Stream new_stream;
new_stream.handler = request.handler;
- if (device_info.stream_type ==
- content::MEDIA_STREAM_DEVICE_TYPE_VIDEO_CAPTURE) {
+ if (content::IsAudioMediaType(device_info.stream_type)) {
+ new_stream.audio_array.push_back(device_info);
+ } else if (content::IsVideoMediaType(device_info.stream_type)) {
new_stream.video_array.push_back(device_info);
} else {
- new_stream.audio_array.push_back(device_info);
+ NOTREACHED();
}
label_stream_map_[label] = new_stream;
if (request.handler) {

Powered by Google App Engine
This is Rietveld 408576698