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

Unified Diff: content/browser/renderer_host/media/media_stream_manager.cc

Issue 2664673002: Media Capture Depth Stream Extensions API: videoKind settings and constraint. (Closed)
Patch Set: Created 3 years, 10 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/browser/renderer_host/media/media_stream_manager.cc
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
index 029b0638c4e3ced5da47532ccb1c32e5b6504b51..f69ea75ace0173281c57161328cd94745a13e741 100644
--- a/content/browser/renderer_host/media/media_stream_manager.cc
+++ b/content/browser/renderer_host/media/media_stream_manager.cc
@@ -218,6 +218,27 @@ MediaStreamDevices ConvertToMediaStreamDevices(
return devices;
}
+bool FindFirstDeviceIdForVideoKind(const MediaDeviceInfoArray& devices,
+ VideoKind video_kind,
+ VideoCaptureManager* video_capture_manager,
+ std::string* device_id) {
+ for (const auto& device : devices) {
+ media::VideoCaptureFormats formats;
+ video_capture_manager->GetDeviceSupportedFormats(device.device_id,
+ &formats);
+ for (const auto& format : formats) {
+ if ((video_kind == VIDEO_KIND_DEPTH &&
+ format.pixel_format == media::PIXEL_FORMAT_Y16) ||
+ (video_kind == VIDEO_KIND_COLOR &&
+ format.pixel_format != media::PIXEL_FORMAT_Y16)) {
+ *device_id = device.device_id;
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
} // namespace
@@ -808,11 +829,17 @@ bool MediaStreamManager::GetRequestedDeviceCaptureId(
const DeviceRequest* request,
MediaStreamType type,
const MediaDeviceInfoArray& devices,
- std::string* device_id) const {
+ std::string* device_id) {
if (type == MEDIA_DEVICE_AUDIO_CAPTURE) {
return PickDeviceId(request->salt, request->security_origin,
request->controls.audio, devices, device_id);
} else if (type == MEDIA_DEVICE_VIDEO_CAPTURE) {
+ if (request->controls.video.device_id.empty() &&
Guido Urdaneta 2017/02/07 10:26:03 There is a CL (http://crrev.com/2669243004/) close
aleksandar.stojiljkovic 2017/02/07 11:33:49 Thanks. Looks good.
+ request->controls.video_kind != VIDEO_KIND_NO_CONSTRAINT) {
+ return FindFirstDeviceIdForVideoKind(devices,
+ request->controls.video_kind,
+ video_capture_manager(), device_id);
+ }
return PickDeviceId(request->salt, request->security_origin,
request->controls.video, devices, device_id);
} else {

Powered by Google App Engine
This is Rietveld 408576698