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

Unified Diff: third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp

Issue 2747573002: Image Capture: MediaStreamTrack::getCapabilities() (Closed)
Patch Set: haraken@ and reillyg@s comments Created 3 years, 9 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: third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
diff --git a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
index 0777b00274a9d9189e86bdec4b1e94808a7666ee..9c077a357f0561216582bd91aee69e73f1510c8f 100644
--- a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
+++ b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp
@@ -25,21 +25,23 @@
#include "modules/mediastream/MediaStreamTrack.h"
+#include <memory>
#include "bindings/core/v8/ExceptionMessages.h"
#include "core/dom/Document.h"
#include "core/dom/ExceptionCode.h"
#include "core/dom/ExecutionContext.h"
#include "core/events/Event.h"
#include "core/frame/Deprecation.h"
+#include "modules/imagecapture/ImageCapture.h"
#include "modules/mediastream/MediaConstraintsImpl.h"
#include "modules/mediastream/MediaStream.h"
+#include "modules/mediastream/MediaTrackCapabilities.h"
#include "modules/mediastream/MediaTrackSettings.h"
#include "modules/mediastream/UserMediaController.h"
#include "platform/mediastream/MediaStreamCenter.h"
#include "platform/mediastream/MediaStreamComponent.h"
#include "public/platform/WebMediaStreamTrack.h"
#include "wtf/Assertions.h"
-#include <memory>
namespace blink {
@@ -66,6 +68,13 @@ MediaStreamTrack::MediaStreamTrack(ExecutionContext* context,
// The source's constraints aren't yet initialized at creation time.
m_constraints() {
m_component->source()->addObserver(this);
+
+ if (m_component->source() &&
+ m_component->source()->type() == MediaStreamSource::TypeVideo) {
+ // ImageCapture::create() only throws if |this| track is not of video type.
+ NonThrowableExceptionState exceptionState;
+ m_imageCapture = ImageCapture::create(context, this, exceptionState);
+ }
}
MediaStreamTrack::~MediaStreamTrack() {}
@@ -212,6 +221,11 @@ void MediaStreamTrack::setConstraints(const WebMediaConstraints& constraints) {
m_constraints = constraints;
}
+void MediaStreamTrack::getCapabilities(MediaTrackCapabilities& capabilities) {
+ if (m_imageCapture)
+ capabilities = m_imageCapture->getMediaTrackCapabilities();
+}
+
void MediaStreamTrack::getSettings(MediaTrackSettings& settings) {
WebMediaStreamTrack::Settings platformSettings;
m_component->getSettings(platformSettings);
@@ -344,6 +358,7 @@ ExecutionContext* MediaStreamTrack::getExecutionContext() const {
DEFINE_TRACE(MediaStreamTrack) {
visitor->trace(m_registeredMediaStreams);
visitor->trace(m_component);
+ visitor->trace(m_imageCapture);
EventTargetWithInlineData::trace(visitor);
ContextLifecycleObserver::trace(visitor);
}

Powered by Google App Engine
This is Rietveld 408576698