summaryrefslogtreecommitdiffstats
path: root/content/browser
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser')
-rw-r--r--content/browser/renderer_host/media/media_stream_manager.cc11
-rw-r--r--content/browser/renderer_host/media/video_capture_manager.cc18
2 files changed, 17 insertions, 12 deletions
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc
index b5151bc..db7581d 100644
--- a/content/browser/renderer_host/media/media_stream_manager.cc
+++ b/content/browser/renderer_host/media/media_stream_manager.cc
@@ -263,18 +263,19 @@ std::string MediaStreamManager::GenerateStream(
DCHECK(found_match || translated_video_device_id.empty());
}
- if (options.video_type == MEDIA_SCREEN_VIDEO_CAPTURE ||
+ if (options.video_type == MEDIA_DESKTOP_VIDEO_CAPTURE ||
options.audio_type == MEDIA_SYSTEM_AUDIO_CAPTURE) {
// For screen capture we only support two valid combinations:
// (1) screen video capture only, or
// (2) screen video capture with system audio capture.
- if (options.video_type != MEDIA_SCREEN_VIDEO_CAPTURE ||
+ if (options.video_type != MEDIA_DESKTOP_VIDEO_CAPTURE ||
(options.audio_type != MEDIA_NO_SERVICE &&
options.audio_type != MEDIA_SYSTEM_AUDIO_CAPTURE)) {
// TODO(sergeyu): Surface error message to the calling JS code.
LOG(ERROR) << "Invalid screen capture request.";
return std::string();
}
+ translated_video_device_id = options.video_device_id;
}
// Create a new request based on options.
@@ -624,11 +625,11 @@ void MediaStreamManager::HandleRequest(const std::string& label) {
audio_type == MEDIA_TAB_AUDIO_CAPTURE ||
video_type == MEDIA_TAB_VIDEO_CAPTURE;
- bool is_screen_capure =
- video_type == MEDIA_SCREEN_VIDEO_CAPTURE;
+ bool is_screen_capture =
+ video_type == MEDIA_DESKTOP_VIDEO_CAPTURE;
if (!is_web_contents_capture &&
- !is_screen_capure &&
+ !is_screen_capture &&
((IsAudioMediaType(audio_type) && !audio_enumeration_cache_.valid) ||
(IsVideoMediaType(video_type) && !video_enumeration_cache_.valid))) {
// Enumerate the devices if there is no valid device lists to be used.
diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/content/browser/renderer_host/media/video_capture_manager.cc
index aa27e12..d96f08d 100644
--- a/content/browser/renderer_host/media/video_capture_manager.cc
+++ b/content/browser/renderer_host/media/video_capture_manager.cc
@@ -16,6 +16,7 @@
#include "content/browser/renderer_host/media/web_contents_video_capture_device.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/common/content_switches.h"
+#include "content/public/common/desktop_media_id.h"
#include "content/public/common/media_stream_request.h"
#include "media/base/scoped_histogram_timer.h"
#include "media/video/capture/fake_video_capture_device.h"
@@ -187,13 +188,16 @@ void VideoCaptureManager::OnOpen(int capture_session_id,
device.device.id);
break;
}
- case MEDIA_SCREEN_VIDEO_CAPTURE: {
+ case MEDIA_DESKTOP_VIDEO_CAPTURE: {
#if defined(ENABLE_SCREEN_CAPTURE)
- scoped_refptr<base::SequencedWorkerPool> blocking_pool =
- BrowserThread::GetBlockingPool();
- video_capture_device = new ScreenCaptureDevice(
- blocking_pool->GetSequencedTaskRunner(
- blocking_pool->GetSequenceToken()));
+ DesktopMediaID id = DesktopMediaID::Parse(device.device.id);
+ if (id.type == DesktopMediaID::TYPE_SCREEN) {
+ scoped_refptr<base::SequencedWorkerPool> blocking_pool =
+ BrowserThread::GetBlockingPool();
+ video_capture_device = new ScreenCaptureDevice(
+ blocking_pool->GetSequencedTaskRunner(
+ blocking_pool->GetSequenceToken()));
+ }
#endif // defined(ENABLE_SCREEN_CAPTURE)
break;
}
@@ -434,7 +438,7 @@ void VideoCaptureManager::GetAvailableDevices(
*device_names = video_capture_devices_;
break;
- case MEDIA_SCREEN_VIDEO_CAPTURE:
+ case MEDIA_DESKTOP_VIDEO_CAPTURE:
device_names->clear();
break;