| Index: content/renderer/media/media_stream_impl.cc
|
| ===================================================================
|
| --- content/renderer/media/media_stream_impl.cc (revision 278170)
|
| +++ content/renderer/media/media_stream_impl.cc (working copy)
|
| @@ -6,9 +6,7 @@
|
|
|
| #include <utility>
|
|
|
| -#include "base/hash.h"
|
| #include "base/logging.h"
|
| -#include "base/strings/string_number_conversions.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| @@ -59,26 +57,20 @@
|
| struct MediaStreamImpl::MediaDevicesRequestInfo {
|
| MediaDevicesRequestInfo(const blink::WebMediaDevicesRequest& request,
|
| int audio_input_request_id,
|
| - int video_input_request_id,
|
| - int audio_output_request_id)
|
| + int video_input_request_id)
|
| : request(request),
|
| audio_input_request_id(audio_input_request_id),
|
| video_input_request_id(video_input_request_id),
|
| - audio_output_request_id(audio_output_request_id),
|
| has_audio_input_returned(false),
|
| - has_video_input_returned(false),
|
| - has_audio_output_returned(false) {}
|
| + has_video_input_returned(false) {}
|
|
|
| blink::WebMediaDevicesRequest request;
|
| int audio_input_request_id;
|
| int video_input_request_id;
|
| - int audio_output_request_id;
|
| bool has_audio_input_returned;
|
| bool has_video_input_returned;
|
| - bool has_audio_output_returned;
|
| StreamDeviceInfoArray audio_input_devices;
|
| StreamDeviceInfoArray video_input_devices;
|
| - StreamDeviceInfoArray audio_output_devices;
|
| };
|
|
|
| MediaStreamImpl::MediaStreamImpl(
|
| @@ -205,7 +197,6 @@
|
|
|
| int audio_input_request_id = g_next_request_id++;
|
| int video_input_request_id = g_next_request_id++;
|
| - int audio_output_request_id = g_next_request_id++;
|
|
|
| // |media_devices_request| can't be mocked, so in tests it will be empty (the
|
| // underlying pointer is null). In order to use this function in a test we
|
| @@ -215,14 +206,11 @@
|
| security_origin = GURL(media_devices_request.securityOrigin().toString());
|
|
|
| DVLOG(1) << "MediaStreamImpl::requestMediaDevices(" << audio_input_request_id
|
| - << ", " << video_input_request_id << ", " << audio_output_request_id
|
| - << ", " << security_origin.spec() << ")";
|
| + << ", " << video_input_request_id << ", "
|
| + << security_origin.spec() << ")";
|
|
|
| media_devices_requests_.push_back(new MediaDevicesRequestInfo(
|
| - media_devices_request,
|
| - audio_input_request_id,
|
| - video_input_request_id,
|
| - audio_output_request_id));
|
| + media_devices_request, audio_input_request_id, video_input_request_id));
|
|
|
| media_stream_dispatcher_->EnumerateDevices(
|
| audio_input_request_id,
|
| @@ -235,12 +223,6 @@
|
| AsWeakPtr(),
|
| MEDIA_DEVICE_VIDEO_CAPTURE,
|
| security_origin);
|
| -
|
| - media_stream_dispatcher_->EnumerateDevices(
|
| - audio_output_request_id,
|
| - AsWeakPtr(),
|
| - MEDIA_DEVICE_AUDIO_OUTPUT,
|
| - security_origin);
|
| }
|
|
|
| void MediaStreamImpl::cancelMediaDevicesRequest(
|
| @@ -258,9 +240,6 @@
|
| media_stream_dispatcher_->StopEnumerateDevices(
|
| request->video_input_request_id,
|
| AsWeakPtr());
|
| - media_stream_dispatcher_->StopEnumerateDevices(
|
| - request->audio_output_request_id,
|
| - AsWeakPtr());
|
| DeleteMediaDevicesRequestInfo(request);
|
| }
|
|
|
| @@ -521,65 +500,42 @@
|
| request->has_audio_input_returned = true;
|
| DCHECK(request->audio_input_devices.empty());
|
| request->audio_input_devices = device_array;
|
| - } else if (request_id == request->video_input_request_id) {
|
| + } else {
|
| + DCHECK(request_id == request->video_input_request_id);
|
| request->has_video_input_returned = true;
|
| DCHECK(request->video_input_devices.empty());
|
| request->video_input_devices = device_array;
|
| - } else {
|
| - DCHECK_EQ(request->audio_output_request_id, request_id);
|
| - request->has_audio_output_returned = true;
|
| - DCHECK(request->audio_output_devices.empty());
|
| - request->audio_output_devices = device_array;
|
| }
|
|
|
| if (!request->has_audio_input_returned ||
|
| - !request->has_video_input_returned ||
|
| - !request->has_audio_output_returned) {
|
| + !request->has_video_input_returned) {
|
| // Wait for the rest of the devices to complete.
|
| return;
|
| }
|
|
|
| - // All devices are ready for copying. We use a hashed audio output device id
|
| - // as the group id for input and output audio devices. If an input device
|
| - // doesn't have an associated output device, we use the input device's own id.
|
| - // We don't support group id for video devices, that's left empty.
|
| + // Both audio and video devices are ready for copying.
|
| + // TODO(grunell): Add support for output devices and group id.
|
| blink::WebVector<blink::WebMediaDeviceInfo>
|
| devices(request->audio_input_devices.size() +
|
| - request->video_input_devices.size() +
|
| - request->audio_output_devices.size());
|
| + request->video_input_devices.size());
|
| for (size_t i = 0; i < request->audio_input_devices.size(); ++i) {
|
| const MediaStreamDevice& device = request->audio_input_devices[i].device;
|
| DCHECK_EQ(device.type, MEDIA_DEVICE_AUDIO_CAPTURE);
|
| - std::string group_id = base::UintToString(base::Hash(
|
| - !device.matched_output_device_id.empty() ?
|
| - device.matched_output_device_id :
|
| - device.id));
|
| - devices[i].initialize(
|
| - blink::WebString::fromUTF8(device.id),
|
| - blink::WebMediaDeviceInfo::MediaDeviceKindAudioInput,
|
| - blink::WebString::fromUTF8(device.name),
|
| - blink::WebString::fromUTF8(group_id));
|
| + devices[i].initialize(blink::WebString::fromUTF8(device.id),
|
| + blink::WebMediaDeviceInfo::MediaDeviceKindAudioInput,
|
| + blink::WebString::fromUTF8(device.name),
|
| + blink::WebString());
|
| }
|
| - size_t offset = request->audio_input_devices.size();
|
| + size_t audio_size = request->audio_input_devices.size();
|
| for (size_t i = 0; i < request->video_input_devices.size(); ++i) {
|
| const MediaStreamDevice& device = request->video_input_devices[i].device;
|
| DCHECK_EQ(device.type, MEDIA_DEVICE_VIDEO_CAPTURE);
|
| - devices[offset + i].initialize(
|
| + devices[audio_size + i].initialize(
|
| blink::WebString::fromUTF8(device.id),
|
| blink::WebMediaDeviceInfo::MediaDeviceKindVideoInput,
|
| blink::WebString::fromUTF8(device.name),
|
| blink::WebString());
|
| }
|
| - offset += request->video_input_devices.size();
|
| - for (size_t i = 0; i < request->audio_output_devices.size(); ++i) {
|
| - const MediaStreamDevice& device = request->audio_output_devices[i].device;
|
| - DCHECK_EQ(device.type, MEDIA_DEVICE_AUDIO_OUTPUT);
|
| - devices[offset + i].initialize(
|
| - blink::WebString::fromUTF8(device.id),
|
| - blink::WebMediaDeviceInfo::MediaDeviceKindAudioOutput,
|
| - blink::WebString::fromUTF8(device.name),
|
| - blink::WebString::fromUTF8(base::UintToString(base::Hash(device.id))));
|
| - }
|
|
|
| EnumerateDevicesSucceded(&request->request, devices);
|
|
|
| @@ -590,9 +546,6 @@
|
| media_stream_dispatcher_->StopEnumerateDevices(
|
| request->video_input_request_id,
|
| AsWeakPtr());
|
| - media_stream_dispatcher_->StopEnumerateDevices(
|
| - request->audio_output_request_id,
|
| - AsWeakPtr());
|
|
|
| DeleteMediaDevicesRequestInfo(request);
|
| }
|
| @@ -720,8 +673,7 @@
|
| MediaDevicesRequests::iterator it = media_devices_requests_.begin();
|
| for (; it != media_devices_requests_.end(); ++it) {
|
| if ((*it)->audio_input_request_id == request_id ||
|
| - (*it)->video_input_request_id == request_id ||
|
| - (*it)->audio_output_request_id == request_id) {
|
| + (*it)->video_input_request_id == request_id) {
|
| return (*it);
|
| }
|
| }
|
|
|