<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[192954] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/192954">192954</a></dd>
<dt>Author</dt> <dd>eric.carlson@apple.com</dd>
<dt>Date</dt> <dd>2015-12-02 12:20:37 -0800 (Wed, 02 Dec 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>[MediaStream] Implement MediaStreamTrack.getSettings()
https://bugs.webkit.org/show_bug.cgi?id=151727
Reviewed by Jer Noble.
Source/WebCore:
MediaStreamTrack.getStates has been replaced by MediaStreamTrack.getSettings.
Test: fast/mediastream/MediaStreamTrack-getSettings.html
* CMakeLists.txt: MediaSourceStates.* -> MediaSourceSettings.*.
* DerivedSources.make: No more MediaSourceStates.idl.
* Modules/mediastream/CapabilityRange.cpp: MediaSourceStates.* -> MediaSourceSettings.*.
* Modules/mediastream/MediaSourceSettings.cpp: Copied from Source/WebCore/Modules/mediastream/MediaSourceStates.cpp.
(WebCore::MediaSourceSettings::create):
(WebCore::MediaSourceSettings::MediaSourceSettings):
(WebCore::MediaSourceSettings::facingMode):
(WebCore::MediaSourceStates::create): Deleted.
(WebCore::MediaSourceStates::MediaSourceStates): Deleted.
(WebCore::MediaSourceStates::sourceType): Deleted.
(WebCore::MediaSourceStates::facingMode): Deleted.
* Modules/mediastream/MediaSourceSettings.h: Copied from Source/WebCore/Modules/mediastream/MediaSourceStates.h.
MediaSourceStates.* renamed to MediaSourceSettings.* and updated to new API.
* Modules/mediastream/MediaSourceStates.cpp: Removed.
* Modules/mediastream/MediaSourceStates.h: Removed.
* Modules/mediastream/MediaSourceStates.idl: Removed.
* Modules/mediastream/MediaStreamCapabilities.cpp:
(WebCore::MediaStreamCapabilities::sourceType): Return an empty vector for now, will be fixed
by the changes for https://bugs.webkit.org/show_bug.cgi?id=151728.
(WebCore::MediaStreamCapabilities::sourceId): RealtimeMediaSourceStates -> MediaSourceSettings.
(WebCore::MediaStreamCapabilities::facingMode): Ditto.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::getSettings): New.
(WebCore::MediaStreamTrack::getCapabilities): Don't modify states, just pass through whatever
private track returns.
(WebCore::MediaStreamTrack::trackSettingsChanged):
(WebCore::MediaStreamTrack::states): Deleted.
(WebCore::MediaStreamTrack::trackStatesChanged): Deleted.
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/MediaStreamTrack.idl: MediaSourceStates -> MediaSourceSettings.
* Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::settings):
(WebCore::MediaStreamAudioSource::states): Deleted.
* Modules/webaudio/MediaStreamAudioSource.h: MediaSourceStates -> MediaSourceSettings.
* WebCore.xcodeproj/project.pbxproj: MediaSourceStates.* -> MediaSourceSettings.*.
* bindings/js/JSMediaSourceStatesCustom.cpp: Removed.
* bindings/js/JSMediaStreamTrackCustom.cpp: Added.
(WebCore::JSMediaStreamTrack::getSettings): MediaSourceSettings is a generic dictionary so
it has to be generated manually.
* platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::intrinsicSize): states -> settings.
(WebCore::MediaStreamPrivate::trackStatesChanged): Deleted.
* platform/mediastream/MediaStreamPrivate.h:
* platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::settings):
(WebCore::MediaStreamTrackPrivate::sourceSettingsChanged):
(WebCore::MediaStreamTrackPrivate::states): Deleted.
(WebCore::MediaStreamTrackPrivate::sourceStatesChanged): Deleted.
* platform/mediastream/MediaStreamTrackPrivate.h:
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::settingsDidChanged):
(WebCore::RealtimeMediaSource::statesDidChanged): Deleted.
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/RealtimeMediaSourceCapabilities.h:
(WebCore::RealtimeMediaSourceCapabilities::facingModes): States -> Settings.
(WebCore::RealtimeMediaSourceCapabilities::addFacingMode): Ditto.
(WebCore::RealtimeMediaSourceCapabilities::sourceTypes): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::setSourceType): Deleted.
(WebCore::RealtimeMediaSourceCapabilities::addSourceType): Deleted.
* platform/mediastream/RealtimeMediaSourceCenter.h: States -> Settings.
* platform/mediastream/RealtimeMediaSourceSettings.cpp: Copied from Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp.
(WebCore::RealtimeMediaSourceSettings::facingMode):
(WebCore::RealtimeMediaSourceStates::facingMode): Deleted.
(WebCore::RealtimeMediaSourceStates::sourceType): Deleted.
* platform/mediastream/RealtimeMediaSourceSettings.h: Copied from Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.h.
* platform/mediastream/RealtimeMediaSourceStates.cpp: Removed.
* platform/mediastream/RealtimeMediaSourceStates.h: Removed.
* platform/mediastream/mac/AVAudioCaptureSource.h:
* platform/mediastream/mac/AVAudioCaptureSource.mm:
(WebCore::AVAudioCaptureSource::updateStates): Deleted.
* platform/mediastream/mac/AVCaptureDeviceManager.h:
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
* platform/mediastream/mac/AVMediaCaptureSource.h:
* platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::states): Deleted.
* platform/mediastream/mac/AVVideoCaptureSource.h:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::updateStates): Deleted.
* platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
* platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:
* platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::initializeSupportedConstraints):
(WebCore::MockRealtimeAudioSource::updateStates): Deleted.
* platform/mock/MockRealtimeAudioSource.h:
* platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::MockRealtimeMediaSource::capabilities): Minor cleanup.
(WebCore::MockRealtimeMediaSource::settings):
(WebCore::MockRealtimeMediaSource::supportedConstraints):
(WebCore::MockRealtimeMediaSource::states): Deleted.
* platform/mock/MockRealtimeMediaSource.h:
(WebCore::MockRealtimeMediaSource::constraints):
(WebCore::MockRealtimeMediaSource::currentStates): Deleted.
* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::updateSettings):
(WebCore::MockRealtimeVideoSource::initializeCapabilities):
(WebCore::MockRealtimeVideoSource::initializeSupportedConstraints):
(WebCore::MockRealtimeVideoSource::setFrameRate): states -> settings.
(WebCore::MockRealtimeVideoSource::setSize): Ditto.
(WebCore::MockRealtimeVideoSource::drawAnimation): Ditto.
(WebCore::MockRealtimeVideoSource::drawText): Ditto.
(WebCore::MockRealtimeVideoSource::updateStates): Deleted.
(WebCore::MockRealtimeVideoSource::setFacingMode): Deleted.
* platform/mock/MockRealtimeVideoSource.h:
LayoutTests:
* fast/mediastream/MediaStream-video-element-expected.txt:
* fast/mediastream/MediaStream-video-element-track-stop-expected.txt:
* fast/mediastream/MediaStream-video-element-track-stop.html:
* fast/mediastream/MediaStream-video-element.html:
* fast/mediastream/MediaStreamTrack-getSettings-expected.txt: Added.
* fast/mediastream/MediaStreamTrack-getSettings.html: Added.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamMediaStreamvideoelementexpectedtxt">trunk/LayoutTests/fast/mediastream/MediaStream-video-element-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamMediaStreamvideoelementtrackstopexpectedtxt">trunk/LayoutTests/fast/mediastream/MediaStream-video-element-track-stop-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamMediaStreamvideoelementtrackstophtml">trunk/LayoutTests/fast/mediastream/MediaStream-video-element-track-stop.html</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamMediaStreamvideoelementhtml">trunk/LayoutTests/fast/mediastream/MediaStream-video-element.html</a></li>
<li><a href="#trunkSourceWebCoreCMakeListstxt">trunk/Source/WebCore/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreDerivedSourcesmake">trunk/Source/WebCore/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamCapabilityRangecpp">trunk/Source/WebCore/Modules/mediastream/CapabilityRange.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamCaptureDeviceInfoh">trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamCaptureDeviceManagercpp">trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamCaptureDeviceManagerh">trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamCapabilitiescpp">trunk/Source/WebCore/Modules/mediastream/MediaStreamCapabilities.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackcpp">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackh">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaStreamTrackidl">trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioMediaStreamAudioSourcecpp">trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreModuleswebaudioMediaStreamAudioSourceh">trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.h</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaStreamPrivatecpp">trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaStreamPrivateh">trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaStreamTrackPrivatecpp">trunk/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaStreamTrackPrivateh">trunk/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourcecpp">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceh">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCapabilitiesh">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCenterh">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVAudioCaptureSourceh">trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVAudioCaptureSourcemm">trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagerh">trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagermm">trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVMediaCaptureSourceh">trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVMediaCaptureSourcemm">trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourceh">trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourcemm">trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacMockRealtimeVideoSourceMacmm">trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceOwrh">trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeAudioSourcecpp">trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeAudioSourceh">trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeMediaSourcecpp">trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeMediaSourceh">trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeVideoSourcecpp">trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockRealtimeVideoSourceh">trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastmediastreamMediaStreamTrackgetSettingsexpectedtxt">trunk/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastmediastreamMediaStreamTrackgetSettingshtml">trunk/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings.html</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaSourceSettingscpp">trunk/Source/WebCore/Modules/mediastream/MediaSourceSettings.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaSourceSettingsh">trunk/Source/WebCore/Modules/mediastream/MediaSourceSettings.h</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMediaStreamTrackCustomcpp">trunk/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceSettingscpp">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceSettingsh">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaSourceStatescpp">trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaSourceStatesh">trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaSourceStatesidl">trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.idl</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSMediaSourceStatesCustomcpp">trunk/Source/WebCore/bindings/js/JSMediaSourceStatesCustom.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceStatescpp">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceStatesh">trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/LayoutTests/ChangeLog        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2015-12-02 Eric Carlson <eric.carlson@apple.com>
+
+ [MediaStream] Implement MediaStreamTrack.getSettings()
+ https://bugs.webkit.org/show_bug.cgi?id=151727
+
+ Reviewed by Jer Noble.
+
+ * fast/mediastream/MediaStream-video-element-expected.txt:
+ * fast/mediastream/MediaStream-video-element-track-stop-expected.txt:
+ * fast/mediastream/MediaStream-video-element-track-stop.html:
+ * fast/mediastream/MediaStream-video-element.html:
+ * fast/mediastream/MediaStreamTrack-getSettings-expected.txt: Added.
+ * fast/mediastream/MediaStreamTrack-getSettings.html: Added.
+
</ins><span class="cx"> 2015-12-01 David Hyatt <hyatt@apple.com>
</span><span class="cx">
</span><span class="cx"> Implement the picture element.
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamMediaStreamvideoelementexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/MediaStream-video-element-expected.txt (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/MediaStream-video-element-expected.txt        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-video-element-expected.txt        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -21,8 +21,8 @@
</span><span class="cx"> video.pause()
</span><span class="cx">
</span><span class="cx"> **** check video element ****
</span><del>-PASS video.videoWidth is mediaStream.getVideoTracks()[0].states().width
-PASS video.videoHeight is mediaStream.getVideoTracks()[0].states().height
</del><ins>+PASS video.videoWidth is mediaStream.getVideoTracks()[0].getSettings().width
+PASS video.videoHeight is mediaStream.getVideoTracks()[0].getSettings().height
</ins><span class="cx"> PASS video.src.indexOf("blob:") is 0
</span><span class="cx"> PASS video.srcObject is mediaStream
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamMediaStreamvideoelementtrackstopexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/MediaStream-video-element-track-stop-expected.txt (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/MediaStream-video-element-track-stop-expected.txt        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-video-element-track-stop-expected.txt        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -22,8 +22,8 @@
</span><span class="cx">
</span><span class="cx"> **** check states with live video stream track ****
</span><span class="cx"> PASS video.ended is false
</span><del>-PASS video.videoWidth is mediaStream.getVideoTracks()[0].states().width
-PASS video.videoHeight is mediaStream.getVideoTracks()[0].states().height
</del><ins>+PASS video.videoWidth is mediaStream.getVideoTracks()[0].getSettings().width
+PASS video.videoHeight is mediaStream.getVideoTracks()[0].getSettings().height
</ins><span class="cx"> PASS video.src.indexOf("blob:") is 0
</span><span class="cx"> PASS video.srcObject is mediaStream
</span><span class="cx">
</span><span class="lines">@@ -41,8 +41,8 @@
</span><span class="cx">
</span><span class="cx"> **** re-check states now that the video stream has been disabled ****
</span><span class="cx"> PASS mediaStream.getVideoTracks()[0].enabled is false
</span><del>-PASS video.videoWidth is mediaStream.getVideoTracks()[0].states().width
-PASS video.videoHeight is mediaStream.getVideoTracks()[0].states().height
</del><ins>+PASS video.videoWidth is mediaStream.getVideoTracks()[0].getSettings().width
+PASS video.videoHeight is mediaStream.getVideoTracks()[0].getSettings().height
</ins><span class="cx">
</span><span class="cx"> **** stop MediaStream tracks ****
</span><span class="cx"> mediaStream.getVideoTracks()[0].enabled = true
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamMediaStreamvideoelementtrackstophtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/MediaStream-video-element-track-stop.html (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/MediaStream-video-element-track-stop.html        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-video-element-track-stop.html        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -44,8 +44,8 @@
</span><span class="cx"> {
</span><span class="cx"> debug("<br>**** re-check states now that the video stream has been disabled ****");
</span><span class="cx"> shouldBe('mediaStream.getVideoTracks()[0].enabled', 'false');
</span><del>- shouldBe('video.videoWidth', 'mediaStream.getVideoTracks()[0].states().width');
- shouldBe('video.videoHeight', 'mediaStream.getVideoTracks()[0].states().height');
</del><ins>+ shouldBe('video.videoWidth', 'mediaStream.getVideoTracks()[0].getSettings().width');
+ shouldBe('video.videoHeight', 'mediaStream.getVideoTracks()[0].getSettings().height');
</ins><span class="cx">
</span><span class="cx"> debug("<br>**** stop MediaStream tracks ****");
</span><span class="cx"> evalAndLog('mediaStream.getVideoTracks()[0].enabled = true');
</span><span class="lines">@@ -60,8 +60,8 @@
</span><span class="cx">
</span><span class="cx"> debug("<br>**** check states with live video stream track ****");
</span><span class="cx"> shouldBe('video.ended', 'false');
</span><del>- shouldBe('video.videoWidth', 'mediaStream.getVideoTracks()[0].states().width');
- shouldBe('video.videoHeight', 'mediaStream.getVideoTracks()[0].states().height');
</del><ins>+ shouldBe('video.videoWidth', 'mediaStream.getVideoTracks()[0].getSettings().width');
+ shouldBe('video.videoHeight', 'mediaStream.getVideoTracks()[0].getSettings().height');
</ins><span class="cx"> shouldBe('video.src.indexOf("blob:")', '0');
</span><span class="cx"> shouldBe('video.srcObject', 'mediaStream');
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamMediaStreamvideoelementhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/mediastream/MediaStream-video-element.html (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/MediaStream-video-element.html        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-video-element.html        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -30,9 +30,6 @@
</span><span class="cx"> function enumerateProperties(object, workFunc)
</span><span class="cx"> {
</span><span class="cx"> for (var property in object) {
</span><del>- // When https://webkit.org/b/129375 is fixed, we have to remove
- // states.hasOwnProperty(property), because all the attributes
- // will be in the prototype chain.
</del><span class="cx"> if (!object.hasOwnProperty(property) && !object.__proto__.hasOwnProperty(property))
</span><span class="cx"> continue;
</span><span class="cx"> if (object[property] === undefined)
</span><span class="lines">@@ -59,8 +56,8 @@
</span><span class="cx"> evalAndLog("video.pause()");
</span><span class="cx">
</span><span class="cx"> debug("<br>**** check video element ****");
</span><del>- shouldBe('video.videoWidth', 'mediaStream.getVideoTracks()[0].states().width');
- shouldBe('video.videoHeight', 'mediaStream.getVideoTracks()[0].states().height');
</del><ins>+ shouldBe('video.videoWidth', 'mediaStream.getVideoTracks()[0].getSettings().width');
+ shouldBe('video.videoHeight', 'mediaStream.getVideoTracks()[0].getSettings().height');
</ins><span class="cx"> shouldBe('video.src.indexOf("blob:")', '0');
</span><span class="cx"> shouldBe('video.srcObject', 'mediaStream');
</span><span class="cx">
</span></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamMediaStreamTrackgetSettingsexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings-expected.txt (0 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings-expected.txt         (rev 0)
+++ trunk/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings-expected.txt        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+Tests MediaStreamTrack.getSettings.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+video track:
+ settings.width = 640
+ settings.height = 480
+ settings.aspectRatio = 1.33
+ settings.frameRate = 30
+ settings.facingMode = user
+ settings.deviceId = <UUID>
+
+audio track:
+ settings.volume = 50
+ settings.deviceId = <UUID>
+
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastmediastreamMediaStreamTrackgetSettingshtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings.html (0 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings.html         (rev 0)
+++ trunk/LayoutTests/fast/mediastream/MediaStreamTrack-getSettings.html        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+<!DOCTYPE HTML>
+<html>
+ <head>
+ <script src="../../resources/js-test-pre.js"></script>
+ <script src="./resources/getUserMedia-helper.js"></script>
+ <script>
+ var mediaStream;
+
+ function limitPrecision(value, precision)
+ {
+ if (typeof value === "number" && value % 1 != 0)
+ return value.toFixed(precision);
+ return value;
+ }
+
+ function gotStream(stream)
+ {
+ mediaStream = stream;
+ mediaStream.getTracks().forEach(function(track) {
+ debug(`${track.kind} track:`);
+ settings = track.getSettings();
+ for (var property in settings) {
+ if (settings.hasOwnProperty(property) || settings.__proto__.hasOwnProperty(property))
+ if (property == "deviceId")
+ value = "&lt;UUID>";
+ else
+ value = limitPrecision(settings[property], 2);
+ debug(` settings.${property} = ${value}`);
+ }
+ debug("");
+ });
+ finishJSTest();
+ }
+
+ function start()
+ {
+ description("Tests MediaStreamTrack.getSettings.");
+ getUserMedia("allow", {audio:true, video:true}, gotStream);
+ }
+
+ window.jsTestIsAsync = true;
+ window.successfullyParsed = true;
+ </script>
+
+ </head>
+ <body onload="start()">
+ <p id="description"></p>
+ <div id="console"></div>
+ <script src="../../resources/js-test-post.js"></script>
+ </body>
+</html>
</ins></span></pre></div>
<a id="trunkSourceWebCoreCMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/CMakeLists.txt (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/CMakeLists.txt        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/CMakeLists.txt        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -228,7 +228,6 @@
</span><span class="cx"> Modules/mediastream/HTMLMediaElementMediaStream.idl
</span><span class="cx"> Modules/mediastream/MediaDeviceInfo.idl
</span><span class="cx"> Modules/mediastream/MediaDevices.idl
</span><del>- Modules/mediastream/MediaSourceStates.idl
</del><span class="cx"> Modules/mediastream/MediaStream.idl
</span><span class="cx"> Modules/mediastream/MediaStreamCapabilities.idl
</span><span class="cx"> Modules/mediastream/MediaStreamEvent.idl
</span><span class="lines">@@ -952,7 +951,7 @@
</span><span class="cx"> Modules/mediastream/MediaDevices.cpp
</span><span class="cx"> Modules/mediastream/MediaDevicesRequest.cpp
</span><span class="cx"> Modules/mediastream/MediaEndpointPeerConnection.cpp
</span><del>- Modules/mediastream/MediaSourceStates.cpp
</del><ins>+ Modules/mediastream/MediaSourceSettings.cpp
</ins><span class="cx"> Modules/mediastream/MediaStream.cpp
</span><span class="cx"> Modules/mediastream/MediaStreamCapabilities.cpp
</span><span class="cx"> Modules/mediastream/MediaStreamEvent.cpp
</span><span class="lines">@@ -1207,8 +1206,8 @@
</span><span class="cx"> bindings/js/JSLazyEventListener.cpp
</span><span class="cx"> bindings/js/JSLocationCustom.cpp
</span><span class="cx"> bindings/js/JSMainThreadExecState.cpp
</span><del>- bindings/js/JSMediaSourceStatesCustom.cpp
</del><span class="cx"> bindings/js/JSMediaStreamCapabilitiesCustom.cpp
</span><ins>+ bindings/js/JSMediaStreamTrackCustom.cpp
</ins><span class="cx"> bindings/js/JSMediaTrackSupportedConstraintsCustom.cpp
</span><span class="cx"> bindings/js/JSMessageChannelCustom.cpp
</span><span class="cx"> bindings/js/JSMessageEventCustom.cpp
</span><span class="lines">@@ -2310,7 +2309,7 @@
</span><span class="cx"> platform/mediastream/RTCSessionDescriptionDescriptor.cpp
</span><span class="cx"> platform/mediastream/RealtimeMediaSource.cpp
</span><span class="cx"> platform/mediastream/RealtimeMediaSourceCenter.cpp
</span><del>- platform/mediastream/RealtimeMediaSourceStates.cpp
</del><ins>+ platform/mediastream/RealtimeMediaSourceSettings.cpp
</ins><span class="cx">
</span><span class="cx"> platform/mock/DeviceMotionClientMock.cpp
</span><span class="cx"> platform/mock/DeviceOrientationClientMock.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/ChangeLog        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -1,3 +1,139 @@
</span><ins>+2015-12-02 Eric Carlson <eric.carlson@apple.com>
+
+ [MediaStream] Implement MediaStreamTrack.getSettings()
+ https://bugs.webkit.org/show_bug.cgi?id=151727
+
+ Reviewed by Jer Noble.
+
+ MediaStreamTrack.getStates has been replaced by MediaStreamTrack.getSettings.
+
+ Test: fast/mediastream/MediaStreamTrack-getSettings.html
+
+ * CMakeLists.txt: MediaSourceStates.* -> MediaSourceSettings.*.
+ * DerivedSources.make: No more MediaSourceStates.idl.
+ * Modules/mediastream/CapabilityRange.cpp: MediaSourceStates.* -> MediaSourceSettings.*.
+ * Modules/mediastream/MediaSourceSettings.cpp: Copied from Source/WebCore/Modules/mediastream/MediaSourceStates.cpp.
+ (WebCore::MediaSourceSettings::create):
+ (WebCore::MediaSourceSettings::MediaSourceSettings):
+ (WebCore::MediaSourceSettings::facingMode):
+ (WebCore::MediaSourceStates::create): Deleted.
+ (WebCore::MediaSourceStates::MediaSourceStates): Deleted.
+ (WebCore::MediaSourceStates::sourceType): Deleted.
+ (WebCore::MediaSourceStates::facingMode): Deleted.
+ * Modules/mediastream/MediaSourceSettings.h: Copied from Source/WebCore/Modules/mediastream/MediaSourceStates.h.
+
+ MediaSourceStates.* renamed to MediaSourceSettings.* and updated to new API.
+ * Modules/mediastream/MediaSourceStates.cpp: Removed.
+ * Modules/mediastream/MediaSourceStates.h: Removed.
+ * Modules/mediastream/MediaSourceStates.idl: Removed.
+
+ * Modules/mediastream/MediaStreamCapabilities.cpp:
+ (WebCore::MediaStreamCapabilities::sourceType): Return an empty vector for now, will be fixed
+ by the changes for https://bugs.webkit.org/show_bug.cgi?id=151728.
+ (WebCore::MediaStreamCapabilities::sourceId): RealtimeMediaSourceStates -> MediaSourceSettings.
+ (WebCore::MediaStreamCapabilities::facingMode): Ditto.
+
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::MediaStreamTrack::getSettings): New.
+ (WebCore::MediaStreamTrack::getCapabilities): Don't modify states, just pass through whatever
+ private track returns.
+ (WebCore::MediaStreamTrack::trackSettingsChanged):
+ (WebCore::MediaStreamTrack::states): Deleted.
+ (WebCore::MediaStreamTrack::trackStatesChanged): Deleted.
+ * Modules/mediastream/MediaStreamTrack.h:
+ * Modules/mediastream/MediaStreamTrack.idl: MediaSourceStates -> MediaSourceSettings.
+
+ * Modules/webaudio/MediaStreamAudioSource.cpp:
+ (WebCore::MediaStreamAudioSource::settings):
+ (WebCore::MediaStreamAudioSource::states): Deleted.
+ * Modules/webaudio/MediaStreamAudioSource.h: MediaSourceStates -> MediaSourceSettings.
+
+ * WebCore.xcodeproj/project.pbxproj: MediaSourceStates.* -> MediaSourceSettings.*.
+
+ * bindings/js/JSMediaSourceStatesCustom.cpp: Removed.
+ * bindings/js/JSMediaStreamTrackCustom.cpp: Added.
+ (WebCore::JSMediaStreamTrack::getSettings): MediaSourceSettings is a generic dictionary so
+ it has to be generated manually.
+
+ * platform/mediastream/MediaStreamPrivate.cpp:
+ (WebCore::MediaStreamPrivate::intrinsicSize): states -> settings.
+ (WebCore::MediaStreamPrivate::trackStatesChanged): Deleted.
+ * platform/mediastream/MediaStreamPrivate.h:
+
+ * platform/mediastream/MediaStreamTrackPrivate.cpp:
+ (WebCore::MediaStreamTrackPrivate::settings):
+ (WebCore::MediaStreamTrackPrivate::sourceSettingsChanged):
+ (WebCore::MediaStreamTrackPrivate::states): Deleted.
+ (WebCore::MediaStreamTrackPrivate::sourceStatesChanged): Deleted.
+ * platform/mediastream/MediaStreamTrackPrivate.h:
+
+ * platform/mediastream/RealtimeMediaSource.cpp:
+ (WebCore::RealtimeMediaSource::settingsDidChanged):
+ (WebCore::RealtimeMediaSource::statesDidChanged): Deleted.
+ * platform/mediastream/RealtimeMediaSource.h:
+
+ * platform/mediastream/RealtimeMediaSourceCapabilities.h:
+ (WebCore::RealtimeMediaSourceCapabilities::facingModes): States -> Settings.
+ (WebCore::RealtimeMediaSourceCapabilities::addFacingMode): Ditto.
+ (WebCore::RealtimeMediaSourceCapabilities::sourceTypes): Deleted.
+ (WebCore::RealtimeMediaSourceCapabilities::setSourceType): Deleted.
+ (WebCore::RealtimeMediaSourceCapabilities::addSourceType): Deleted.
+
+ * platform/mediastream/RealtimeMediaSourceCenter.h: States -> Settings.
+ * platform/mediastream/RealtimeMediaSourceSettings.cpp: Copied from Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp.
+ (WebCore::RealtimeMediaSourceSettings::facingMode):
+ (WebCore::RealtimeMediaSourceStates::facingMode): Deleted.
+ (WebCore::RealtimeMediaSourceStates::sourceType): Deleted.
+
+ * platform/mediastream/RealtimeMediaSourceSettings.h: Copied from Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.h.
+ * platform/mediastream/RealtimeMediaSourceStates.cpp: Removed.
+
+ * platform/mediastream/RealtimeMediaSourceStates.h: Removed.
+ * platform/mediastream/mac/AVAudioCaptureSource.h:
+ * platform/mediastream/mac/AVAudioCaptureSource.mm:
+ (WebCore::AVAudioCaptureSource::updateStates): Deleted.
+
+ * platform/mediastream/mac/AVCaptureDeviceManager.h:
+ * platform/mediastream/mac/AVCaptureDeviceManager.mm:
+
+ * platform/mediastream/mac/AVMediaCaptureSource.h:
+ * platform/mediastream/mac/AVMediaCaptureSource.mm:
+ (WebCore::AVMediaCaptureSource::states): Deleted.
+
+ * platform/mediastream/mac/AVVideoCaptureSource.h:
+ * platform/mediastream/mac/AVVideoCaptureSource.mm:
+ (WebCore::AVVideoCaptureSource::updateStates): Deleted.
+
+ * platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
+
+ * platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:
+
+ * platform/mock/MockRealtimeAudioSource.cpp:
+ (WebCore::MockRealtimeAudioSource::initializeSupportedConstraints):
+ (WebCore::MockRealtimeAudioSource::updateStates): Deleted.
+ * platform/mock/MockRealtimeAudioSource.h:
+
+ * platform/mock/MockRealtimeMediaSource.cpp:
+ (WebCore::MockRealtimeMediaSource::capabilities): Minor cleanup.
+ (WebCore::MockRealtimeMediaSource::settings):
+ (WebCore::MockRealtimeMediaSource::supportedConstraints):
+ (WebCore::MockRealtimeMediaSource::states): Deleted.
+ * platform/mock/MockRealtimeMediaSource.h:
+ (WebCore::MockRealtimeMediaSource::constraints):
+ (WebCore::MockRealtimeMediaSource::currentStates): Deleted.
+
+ * platform/mock/MockRealtimeVideoSource.cpp:
+ (WebCore::MockRealtimeVideoSource::updateSettings):
+ (WebCore::MockRealtimeVideoSource::initializeCapabilities):
+ (WebCore::MockRealtimeVideoSource::initializeSupportedConstraints):
+ (WebCore::MockRealtimeVideoSource::setFrameRate): states -> settings.
+ (WebCore::MockRealtimeVideoSource::setSize): Ditto.
+ (WebCore::MockRealtimeVideoSource::drawAnimation): Ditto.
+ (WebCore::MockRealtimeVideoSource::drawText): Ditto.
+ (WebCore::MockRealtimeVideoSource::updateStates): Deleted.
+ (WebCore::MockRealtimeVideoSource::setFacingMode): Deleted.
+ * platform/mock/MockRealtimeVideoSource.h:
+
</ins><span class="cx"> 2015-11-30 David Hyatt <hyatt@apple.com>
</span><span class="cx">
</span><span class="cx"> Implement the picture element.
</span></span></pre></div>
<a id="trunkSourceWebCoreDerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/DerivedSources.make (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/DerivedSources.make        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/DerivedSources.make        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -122,7 +122,6 @@
</span><span class="cx"> $(WebCore)/Modules/mediastream/CapabilityRange.idl \
</span><span class="cx">         $(WebCore)/Modules/mediastream/DOMURLMediaStream.idl \
</span><span class="cx"> $(WebCore)/Modules/mediastream/HTMLMediaElementMediaStream.idl \
</span><del>- $(WebCore)/Modules/mediastream/MediaSourceStates.idl \
</del><span class="cx"> $(WebCore)/Modules/mediastream/MediaDeviceInfo.idl \
</span><span class="cx"> $(WebCore)/Modules/mediastream/MediaDevices.idl \
</span><span class="cx">         $(WebCore)/Modules/mediastream/MediaStream.idl \
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamCapabilityRangecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/CapabilityRange.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/CapabilityRange.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/CapabilityRange.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> #include "CapabilityRange.h"
</span><span class="cx">
</span><span class="cx"> #include "JSDOMBinding.h"
</span><del>-#include "MediaSourceStates.h"
</del><ins>+#include "MediaSourceSettings.h"
</ins><span class="cx"> #include <bindings/ScriptValue.h>
</span><span class="cx"> #include <interpreter/CallFrame.h>
</span><span class="cx"> #include <runtime/JSCJSValue.h>
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamCaptureDeviceInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/CaptureDeviceInfo.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx">
</span><span class="cx"> bool m_enabled { false };
</span><span class="cx"> RealtimeMediaSource::Type m_sourceType { RealtimeMediaSource::None };
</span><del>- RealtimeMediaSourceStates::VideoFacingMode m_position { RealtimeMediaSourceStates::Unknown };
</del><ins>+ RealtimeMediaSourceSettings::VideoFacingMode m_position { RealtimeMediaSourceSettings::Unknown };
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> class CaptureSessionInfo {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamCaptureDeviceManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> #import "MediaConstraints.h"
</span><span class="cx"> #import "RealtimeMediaSource.h"
</span><span class="cx"> #import "RealtimeMediaSourceCenter.h"
</span><del>-#import "RealtimeMediaSourceStates.h"
</del><ins>+#import "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #import "UUID.h"
</span><span class="cx"> #import <wtf/MainThread.h>
</span><span class="cx"> #import <wtf/NeverDestroyed.h>
</span><span class="lines">@@ -125,9 +125,9 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-CaptureDeviceInfo* CaptureDeviceManager::bestDeviceForFacingMode(RealtimeMediaSourceStates::VideoFacingMode facingMode)
</del><ins>+CaptureDeviceInfo* CaptureDeviceManager::bestDeviceForFacingMode(RealtimeMediaSourceSettings::VideoFacingMode facingMode)
</ins><span class="cx"> {
</span><del>- if (facingMode == RealtimeMediaSourceStates::Unknown)
</del><ins>+ if (facingMode == RealtimeMediaSourceSettings::Unknown)
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> for (auto& device : captureDeviceList()) {
</span><span class="lines">@@ -137,21 +137,21 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static inline RealtimeMediaSourceStates::VideoFacingMode facingModeFromString(const String& facingModeString)
</del><ins>+static inline RealtimeMediaSourceSettings::VideoFacingMode facingModeFromString(const String& facingModeString)
</ins><span class="cx"> {
</span><span class="cx"> static NeverDestroyed<AtomicString> userFacingModeString("user", AtomicString::ConstructFromLiteral);
</span><span class="cx"> static NeverDestroyed<AtomicString> environmentFacingModeString("environment", AtomicString::ConstructFromLiteral);
</span><span class="cx"> static NeverDestroyed<AtomicString> leftFacingModeString("left", AtomicString::ConstructFromLiteral);
</span><span class="cx"> static NeverDestroyed<AtomicString> rightFacingModeString("right", AtomicString::ConstructFromLiteral);
</span><span class="cx"> if (facingModeString == userFacingModeString)
</span><del>- return RealtimeMediaSourceStates::User;
</del><ins>+ return RealtimeMediaSourceSettings::User;
</ins><span class="cx"> if (facingModeString == environmentFacingModeString)
</span><del>- return RealtimeMediaSourceStates::Environment;
</del><ins>+ return RealtimeMediaSourceSettings::Environment;
</ins><span class="cx"> if (facingModeString == leftFacingModeString)
</span><del>- return RealtimeMediaSourceStates::Left;
</del><ins>+ return RealtimeMediaSourceSettings::Left;
</ins><span class="cx"> if (facingModeString == rightFacingModeString)
</span><del>- return RealtimeMediaSourceStates::Right;
- return RealtimeMediaSourceStates::Unknown;
</del><ins>+ return RealtimeMediaSourceSettings::Right;
+ return RealtimeMediaSourceSettings::Unknown;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool CaptureDeviceManager::sessionSupportsConstraint(const CaptureSessionInfo*, RealtimeMediaSource::Type type, const String& name, const String& value)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamCaptureDeviceManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/CaptureDeviceManager.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> virtual bool isSupportedFrameRate(float frameRate) const;
</span><span class="cx">
</span><span class="cx"> bool captureDeviceFromDeviceID(const String& captureDeviceID, CaptureDeviceInfo& source);
</span><del>- CaptureDeviceInfo* bestDeviceForFacingMode(RealtimeMediaSourceStates::VideoFacingMode);
</del><ins>+ CaptureDeviceInfo* bestDeviceForFacingMode(RealtimeMediaSourceSettings::VideoFacingMode);
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaSourceSettingscppfromrev192930trunkSourceWebCoreModulesmediastreamMediaSourceStatescpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/Modules/mediastream/MediaSourceSettings.cpp (from rev 192930, trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.cpp) (0 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaSourceSettings.cpp         (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/MediaSourceSettings.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -0,0 +1,52 @@
</span><ins>+/*
+ * Copyright (C) 2013-2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "MediaSourceSettings.h"
+
+#if ENABLE(MEDIA_STREAM)
+
+#include <wtf/NeverDestroyed.h>
+
+namespace WebCore {
+
+Ref<MediaSourceSettings> MediaSourceSettings::create(const RealtimeMediaSourceSettings& settings)
+{
+ return adoptRef(*new MediaSourceSettings(settings));
+}
+
+MediaSourceSettings::MediaSourceSettings(const RealtimeMediaSourceSettings& settings)
+ : m_sourceSettings(settings)
+{
+}
+
+const AtomicString& MediaSourceSettings::facingMode() const
+{
+ return RealtimeMediaSourceSettings::facingMode(m_sourceSettings.facingMode());
+}
+
+} // namespace WebCore
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaSourceSettingshfromrev192930trunkSourceWebCoreModulesmediastreamMediaSourceStatesh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/Modules/mediastream/MediaSourceSettings.h (from rev 192930, trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.h) (0 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaSourceSettings.h         (rev 0)
+++ trunk/Source/WebCore/Modules/mediastream/MediaSourceSettings.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -0,0 +1,85 @@
</span><ins>+/*
+ * Copyright (C) 2013-2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef MediaSourceSettings_h
+#define MediaSourceSettings_h
+
+#if ENABLE(MEDIA_STREAM)
+
+#include "RealtimeMediaSourceCapabilities.h"
+#include "ScriptWrappable.h"
+#include <wtf/Forward.h>
+#include <wtf/RefCounted.h>
+
+namespace WebCore {
+
+class MediaSourceSettings : public RefCounted<MediaSourceSettings>, public ScriptWrappable {
+public:
+ static Ref<MediaSourceSettings> create(const RealtimeMediaSourceSettings&);
+
+ bool supportsWidth() const { return m_sourceSettings.supportsWidth(); }
+ unsigned long width() const { return m_sourceSettings.width(); }
+
+ bool supportsHeight() const { return m_sourceSettings.supportsHeight(); }
+ unsigned long height() const { return m_sourceSettings.height(); }
+
+ bool supportsAspectRatio() const { return m_sourceSettings.supportsAspectRatio(); }
+ float aspectRatio() const { return m_sourceSettings.aspectRatio(); }
+
+ bool supportsFrameRate() const { return m_sourceSettings.supportsFrameRate(); }
+ float frameRate() const { return m_sourceSettings.frameRate(); }
+
+ bool supportsFacingMode() const { return m_sourceSettings.supportsFacingMode(); }
+ const AtomicString& facingMode() const;
+
+ bool supportsVolume() const { return m_sourceSettings.supportsVolume(); }
+ unsigned long volume() const { return m_sourceSettings.volume(); }
+
+ bool supportsSampleRate() const { return m_sourceSettings.supportsSampleRate(); }
+ unsigned long sampleRate() const { return m_sourceSettings.sampleRate(); }
+
+ bool supportsSampleSize() const { return m_sourceSettings.supportsSampleSize(); }
+ unsigned long sampleSize() const { return m_sourceSettings.sampleSize(); }
+
+ bool supportsEchoCancellation() const { return m_sourceSettings.supportsEchoCancellation(); }
+ bool echoCancellation() const { return m_sourceSettings.echoCancellation(); }
+
+ bool supportsDeviceId() const { return m_sourceSettings.supportsDeviceId(); }
+ const AtomicString& deviceId() const { return m_sourceSettings.deviceId(); }
+
+ bool supportsGroupId() const { return m_sourceSettings.supportsGroupId(); }
+ const AtomicString& groupId() const { return m_sourceSettings.groupId(); }
+
+private:
+ explicit MediaSourceSettings(const RealtimeMediaSourceSettings&);
+
+ RealtimeMediaSourceSettings m_sourceSettings;
+};
+
+} // namespace WebCore
+
+#endif // MediaSourceSettings_h
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaSourceStatescpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -1,59 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MEDIA_STREAM)
-
-#include "MediaSourceStates.h"
-
-#include <wtf/NeverDestroyed.h>
-
-namespace WebCore {
-
-Ref<MediaSourceStates> MediaSourceStates::create(const RealtimeMediaSourceStates& states)
-{
- return adoptRef(*new MediaSourceStates(states));
-}
-
-MediaSourceStates::MediaSourceStates(const RealtimeMediaSourceStates& states)
- : m_sourceStates(states)
-{
-}
-
-const AtomicString& MediaSourceStates::sourceType() const
-{
- return RealtimeMediaSourceStates::sourceType(m_sourceStates.sourceType());
-}
-
-const AtomicString& MediaSourceStates::facingMode() const
-{
- return RealtimeMediaSourceStates::facingMode(m_sourceStates.facingMode());
-}
-
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaSourceStatesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -1,63 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef MediaSourceStates_h
-#define MediaSourceStates_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include "RealtimeMediaSourceCapabilities.h"
-#include "ScriptWrappable.h"
-#include <wtf/Forward.h>
-#include <wtf/RefCounted.h>
-
-namespace WebCore {
-
-class MediaSourceStates : public RefCounted<MediaSourceStates>, public ScriptWrappable {
-public:
- static Ref<MediaSourceStates> create(const RealtimeMediaSourceStates&);
-
- const AtomicString& sourceType() const;
- const AtomicString& sourceId() const { return m_sourceStates.sourceId(); }
- unsigned long width() const { return m_sourceStates.width(); }
- unsigned long height() const { return m_sourceStates.height(); }
- float frameRate() const { return m_sourceStates.frameRate(); }
- float aspectRatio() const { return m_sourceStates.aspectRatio(); }
- const AtomicString& facingMode() const;
- unsigned long volume() const { return m_sourceStates.volume(); }
-
- bool hasVideoSource() const { return m_sourceStates.sourceType() == RealtimeMediaSourceStates::Camera; }
-
-private:
- explicit MediaSourceStates(const RealtimeMediaSourceStates&);
-
- RealtimeMediaSourceStates m_sourceStates;
-};
-
-} // namespace WebCore
-
-#endif // MediaSourceStates_h
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaSourceStatesidl"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.idl (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.idl        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/MediaSourceStates.idl        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -1,44 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-enum SourceTypeEnum { "none", "camera", "microphone" };
-enum VideoFacingModeEnum { "user", "environment", "left", "right" };
-
-[
- Conditional=MEDIA_STREAM,
- ImplementationLacksVTable,
- NoInterfaceObject,
-] interface MediaSourceStates {
- readonly attribute SourceTypeEnum sourceType;
- readonly attribute DOMString sourceId;
-
- [CustomGetter] readonly attribute unsigned long? width;
- [CustomGetter] readonly attribute unsigned long? height;
- [CustomGetter] readonly attribute unrestricted float? frameRate;
- [CustomGetter] readonly attribute unrestricted float? aspectRatio;
- [CustomGetter] readonly attribute VideoFacingModeEnum? facingMode;
- [CustomGetter] readonly attribute unsigned long? volume;
-};
-
</del></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamCapabilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamCapabilities.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamCapabilities.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamCapabilities.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> #include "AllAudioCapabilities.h"
</span><span class="cx"> #include "AllVideoCapabilities.h"
</span><span class="cx"> #include "CapabilityRange.h"
</span><del>-#include "MediaSourceStates.h"
</del><ins>+#include "MediaSourceSettings.h"
</ins><span class="cx"> #include "RealtimeMediaSourceCapabilities.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -52,19 +52,8 @@
</span><span class="cx">
</span><span class="cx"> Vector<String> MediaStreamCapabilities::sourceType() const
</span><span class="cx"> {
</span><del>- ASSERT(m_SourceCapabilities->hasVideoSource());
-
- size_t count = m_SourceCapabilities->sourceTypes().size();
- if (!count)
- return Vector<String>();
-
- Vector<String> capabilities;
- capabilities.reserveCapacity(count);
-
- for (auto& type : m_SourceCapabilities->sourceTypes())
- capabilities.append(RealtimeMediaSourceStates::sourceType(type));
-
- return capabilities;
</del><ins>+ // This will be fixed by https://bugs.webkit.org/show_bug.cgi?id=151728.
+ return Vector<String>();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Vector<String> MediaStreamCapabilities::sourceId() const
</span><span class="lines">@@ -94,7 +83,7 @@
</span><span class="cx"> capabilities.reserveCapacity(count);
</span><span class="cx">
</span><span class="cx"> for (auto& mode : m_SourceCapabilities->facingModes())
</span><del>- capabilities.append(RealtimeMediaSourceStates::facingMode(mode));
</del><ins>+ capabilities.append(RealtimeMediaSourceSettings::facingMode(mode));
</ins><span class="cx">
</span><span class="cx"> return capabilities;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> #include "ExceptionCode.h"
</span><span class="cx"> #include "ExceptionCodePlaceholder.h"
</span><span class="cx"> #include "MediaConstraintsImpl.h"
</span><del>-#include "MediaSourceStates.h"
</del><ins>+#include "MediaSourceSettings.h"
</ins><span class="cx"> #include "MediaStream.h"
</span><span class="cx"> #include "MediaStreamPrivate.h"
</span><span class="cx"> #include "MediaTrackConstraints.h"
</span><span class="lines">@@ -162,21 +162,14 @@
</span><span class="cx"> return 0;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-RefPtr<MediaSourceStates> MediaStreamTrack::states() const
</del><ins>+RefPtr<MediaSourceSettings> MediaStreamTrack::getSettings() const
</ins><span class="cx"> {
</span><del>- return MediaSourceStates::create(m_private->states());
</del><ins>+ return MediaSourceSettings::create(m_private->settings());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RefPtr<MediaStreamCapabilities> MediaStreamTrack::getCapabilities() const
</span><span class="cx"> {
</span><del>- // The source may be shared by multiple tracks, so its states is not necessarily
- // in sync with the track state. A track that has ended always has a source
- // type of "none".
- RefPtr<RealtimeMediaSourceCapabilities> sourceCapabilities = m_private->capabilities();
- if (ended())
- sourceCapabilities->setSourceType(RealtimeMediaSourceStates::None);
-
- return MediaStreamCapabilities::create(sourceCapabilities.release());
</del><ins>+ return MediaStreamCapabilities::create(m_private->capabilities());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void MediaStreamTrack::applyConstraints(const Dictionary& constraints)
</span><span class="lines">@@ -238,7 +231,7 @@
</span><span class="cx"> configureTrackRendering();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MediaStreamTrack::trackStatesChanged(MediaStreamTrackPrivate&)
</del><ins>+void MediaStreamTrack::trackSettingsChanged(MediaStreamTrackPrivate&)
</ins><span class="cx"> {
</span><span class="cx"> configureTrackRendering();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> class AudioSourceProvider;
</span><span class="cx"> class Dictionary;
</span><span class="cx"> class MediaConstraintsImpl;
</span><del>-class MediaSourceStates;
</del><ins>+class MediaSourceSettings;
</ins><span class="cx"> class MediaStreamCapabilities;
</span><span class="cx"> class MediaTrackConstraints;
</span><span class="cx">
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx"> void stopProducingData();
</span><span class="cx">
</span><span class="cx"> RefPtr<MediaTrackConstraints> getConstraints() const;
</span><del>- RefPtr<MediaSourceStates> states() const;
</del><ins>+ RefPtr<MediaSourceSettings> getSettings() const;
</ins><span class="cx"> RefPtr<MediaStreamCapabilities> getCapabilities() const;
</span><span class="cx"> void applyConstraints(const Dictionary&);
</span><span class="cx"> void applyConstraints(const MediaConstraints&);
</span><span class="lines">@@ -117,7 +117,7 @@
</span><span class="cx"> // MediaStreamTrackPrivate::Observer
</span><span class="cx"> void trackEnded(MediaStreamTrackPrivate&) override;
</span><span class="cx"> void trackMutedChanged(MediaStreamTrackPrivate&) override;
</span><del>- void trackStatesChanged(MediaStreamTrackPrivate&) override;
</del><ins>+ void trackSettingsChanged(MediaStreamTrackPrivate&) override;
</ins><span class="cx"> void trackEnabledChanged(MediaStreamTrackPrivate&) override;
</span><span class="cx">
</span><span class="cx"> Vector<Observer*> m_observers;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaStreamTrackidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> [ImplementedAs=stopProducingData] void stop();
</span><span class="cx">
</span><span class="cx"> MediaTrackConstraints getConstraints();
</span><del>- MediaSourceStates states();
</del><ins>+ [Custom] MediaSourceSettings getSettings();
</ins><span class="cx"> MediaStreamCapabilities getCapabilities(); // returns either AllVideoCapabilities or AllAudioCapabilities
</span><span class="cx"> void applyConstraints(Dictionary constraints);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioMediaStreamAudioSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -52,12 +52,12 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-const RealtimeMediaSourceStates& MediaStreamAudioSource::states()
</del><ins>+const RealtimeMediaSourceSettings& MediaStreamAudioSource::settings()
</ins><span class="cx"> {
</span><span class="cx"> // FIXME: implement this.
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=122430
</span><span class="cx"> notImplemented();
</span><del>- return m_currentStates;
</del><ins>+ return m_currentSettings;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> AudioSourceProvider* MediaStreamAudioSource::audioSourceProvider()
</span></span></pre></div>
<a id="trunkSourceWebCoreModuleswebaudioMediaStreamAudioSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/Modules/webaudio/MediaStreamAudioSource.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> ~MediaStreamAudioSource() { }
</span><span class="cx">
</span><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> capabilities() override;
</span><del>- const RealtimeMediaSourceStates& states() override;
</del><ins>+ const RealtimeMediaSourceSettings& settings() override;
</ins><span class="cx">
</span><span class="cx"> const String& deviceId() const { return m_deviceId; }
</span><span class="cx"> void setDeviceId(const String& deviceId) { m_deviceId = deviceId; }
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> String m_deviceId;
</span><span class="cx"> Lock m_audioConsumersLock;
</span><span class="cx"> Vector<RefPtr<AudioDestinationConsumer>> m_audioConsumers;
</span><del>- RealtimeMediaSourceStates m_currentStates;
</del><ins>+ RealtimeMediaSourceSettings m_currentSettings;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -319,11 +319,9 @@
</span><span class="cx">                 07BDD6EC1469B4C2009C9F85 /* JSTrackEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */; };
</span><span class="cx">                 07C1C0E21BFB600100BD2256 /* MediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C1C0E01BFB600100BD2256 /* MediaTrackSupportedConstraints.h */; };
</span><span class="cx">                 07C1C0E51BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C1C0E41BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                07C59B6817F784BA000FBCBB /* MediaSourceStates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6517F784BA000FBCBB /* MediaSourceStates.cpp */; };
-                07C59B6917F784BA000FBCBB /* MediaSourceStates.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B6617F784BA000FBCBB /* MediaSourceStates.h */; };
-                07C59B6E17F794F6000FBCBB /* JSMediaSourceStatesCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6D17F794F6000FBCBB /* JSMediaSourceStatesCustom.cpp */; };
-                07C59B7117F79C7C000FBCBB /* JSMediaSourceStates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6F17F79C7C000FBCBB /* JSMediaSourceStates.cpp */; };
-                07C59B7217F79C7C000FBCBB /* JSMediaSourceStates.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B7017F79C7C000FBCBB /* JSMediaSourceStates.h */; };
</del><ins>+                07C59B6817F784BA000FBCBB /* MediaSourceSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6517F784BA000FBCBB /* MediaSourceSettings.cpp */; };
+                07C59B6917F784BA000FBCBB /* MediaSourceSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B6617F784BA000FBCBB /* MediaSourceSettings.h */; };
+                07C59B6E17F794F6000FBCBB /* JSMediaStreamTrackCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6D17F794F6000FBCBB /* JSMediaStreamTrackCustom.cpp */; };
</ins><span class="cx">                 07C59B7617F7D0DB000FBCBB /* CapabilityRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B7417F7D09D000FBCBB /* CapabilityRange.h */; };
</span><span class="cx">                 07CA120E182D67D800D12197 /* JSRTCPeerConnectionCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07CA120D182D67D800D12197 /* JSRTCPeerConnectionCustom.cpp */; };
</span><span class="cx">                 07CE77D516712A6A00C55A47 /* InbandTextTrackPrivateClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 07CE77D416712A6A00C55A47 /* InbandTextTrackPrivateClient.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -1857,8 +1855,8 @@
</span><span class="cx">                 4A4F65701AA997F100E38CDD /* RealtimeMediaSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A4F656B1AA997F100E38CDD /* RealtimeMediaSource.cpp */; };
</span><span class="cx">                 4A4F65711AA997F100E38CDD /* RealtimeMediaSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A4F656C1AA997F100E38CDD /* RealtimeMediaSource.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 4A4F65721AA997F100E38CDD /* RealtimeMediaSourceCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A4F656D1AA997F100E38CDD /* RealtimeMediaSourceCapabilities.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                4A4F65731AA997F100E38CDD /* RealtimeMediaSourceStates.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A4F656E1AA997F100E38CDD /* RealtimeMediaSourceStates.cpp */; };
-                4A4F65741AA997F100E38CDD /* RealtimeMediaSourceStates.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceStates.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><ins>+                4A4F65731AA997F100E38CDD /* RealtimeMediaSourceSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A4F656E1AA997F100E38CDD /* RealtimeMediaSourceSettings.cpp */; };
+                4A4F65741AA997F100E38CDD /* RealtimeMediaSourceSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceSettings.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 4A5A2ADB161E7E00005889DD /* WebSocketExtensionParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A5A2AD9161E7E00005889DD /* WebSocketExtensionParser.cpp */; };
</span><span class="cx">                 4A5A2ADC161E7E00005889DD /* WebSocketExtensionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A5A2ADA161E7E00005889DD /* WebSocketExtensionParser.h */; };
</span><span class="cx">                 4A6E9FC313C17D1D0046A7F8 /* CSSFontFeatureValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4A6E9FC113C17D1D0046A7F8 /* CSSFontFeatureValue.cpp */; };
</span><span class="lines">@@ -7617,12 +7615,9 @@
</span><span class="cx">                 07C1C0E11BFB600100BD2256 /* MediaTrackSupportedConstraints.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaTrackSupportedConstraints.idl; sourceTree = "<group>"; };
</span><span class="cx">                 07C1C0E41BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceSupportedConstraints.h; sourceTree = "<group>"; };
</span><span class="cx">                 07C1C0E61BFB90A700BD2256 /* JSMediaTrackSupportedConstraintsCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaTrackSupportedConstraintsCustom.cpp; sourceTree = "<group>"; };
</span><del>-                07C59B6517F784BA000FBCBB /* MediaSourceStates.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaSourceStates.cpp; sourceTree = "<group>"; };
-                07C59B6617F784BA000FBCBB /* MediaSourceStates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSourceStates.h; sourceTree = "<group>"; };
-                07C59B6717F784BA000FBCBB /* MediaSourceStates.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaSourceStates.idl; sourceTree = "<group>"; };
-                07C59B6D17F794F6000FBCBB /* JSMediaSourceStatesCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaSourceStatesCustom.cpp; sourceTree = "<group>"; };
-                07C59B6F17F79C7C000FBCBB /* JSMediaSourceStates.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaSourceStates.cpp; sourceTree = "<group>"; };
-                07C59B7017F79C7C000FBCBB /* JSMediaSourceStates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaSourceStates.h; sourceTree = "<group>"; };
</del><ins>+                07C59B6517F784BA000FBCBB /* MediaSourceSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaSourceSettings.cpp; sourceTree = "<group>"; };
+                07C59B6617F784BA000FBCBB /* MediaSourceSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSourceSettings.h; sourceTree = "<group>"; };
+                07C59B6D17F794F6000FBCBB /* JSMediaStreamTrackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamTrackCustom.cpp; sourceTree = "<group>"; };
</ins><span class="cx">                 07C59B7317F7D09D000FBCBB /* AllVideoCapabilities.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AllVideoCapabilities.idl; sourceTree = "<group>"; };
</span><span class="cx">                 07C59B7417F7D09D000FBCBB /* CapabilityRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CapabilityRange.h; sourceTree = "<group>"; };
</span><span class="cx">                 07C59B7517F7D09D000FBCBB /* CapabilityRange.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CapabilityRange.idl; sourceTree = "<group>"; };
</span><span class="lines">@@ -9293,8 +9288,8 @@
</span><span class="cx">                 4A4F656B1AA997F100E38CDD /* RealtimeMediaSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RealtimeMediaSource.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 4A4F656C1AA997F100E38CDD /* RealtimeMediaSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSource.h; sourceTree = "<group>"; };
</span><span class="cx">                 4A4F656D1AA997F100E38CDD /* RealtimeMediaSourceCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceCapabilities.h; sourceTree = "<group>"; };
</span><del>-                4A4F656E1AA997F100E38CDD /* RealtimeMediaSourceStates.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RealtimeMediaSourceStates.cpp; sourceTree = "<group>"; };
-                4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceStates.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceStates.h; sourceTree = "<group>"; };
</del><ins>+                4A4F656E1AA997F100E38CDD /* RealtimeMediaSourceSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RealtimeMediaSourceSettings.cpp; sourceTree = "<group>"; };
+                4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceSettings.h; sourceTree = "<group>"; };
</ins><span class="cx">                 4A5A2AD9161E7E00005889DD /* WebSocketExtensionParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebSocketExtensionParser.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 4A5A2ADA161E7E00005889DD /* WebSocketExtensionParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSocketExtensionParser.h; sourceTree = "<group>"; };
</span><span class="cx">                 4A6E9FC113C17D1D0046A7F8 /* CSSFontFeatureValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSFontFeatureValue.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -15177,9 +15172,8 @@
</span><span class="cx">                                 07394EC91BAB2CD700BE99CD /* MediaDevicesRequest.h */,
</span><span class="cx">                                 5E16A2E21BFA64FB0029A21E /* MediaEndpointPeerConnection.cpp */,
</span><span class="cx">                                 5E16A2E31BFA64FB0029A21E /* MediaEndpointPeerConnection.h */,
</span><del>-                                07C59B6517F784BA000FBCBB /* MediaSourceStates.cpp */,
-                                07C59B6617F784BA000FBCBB /* MediaSourceStates.h */,
-                                07C59B6717F784BA000FBCBB /* MediaSourceStates.idl */,
</del><ins>+                                07C59B6517F784BA000FBCBB /* MediaSourceSettings.cpp */,
+                                07C59B6617F784BA000FBCBB /* MediaSourceSettings.h */,
</ins><span class="cx">                                 07221B4C17CEC32700848E51 /* MediaStream.cpp */,
</span><span class="cx">                                 07221B4D17CEC32700848E51 /* MediaStream.h */,
</span><span class="cx">                                 07221B4E17CEC32700848E51 /* MediaStream.idl */,
</span><span class="lines">@@ -15303,8 +15297,8 @@
</span><span class="cx">                                 4A4F656D1AA997F100E38CDD /* RealtimeMediaSourceCapabilities.h */,
</span><span class="cx">                                 4A0FFA9F1AAF5EA20062803B /* RealtimeMediaSourceCenter.cpp */,
</span><span class="cx">                                 4A0FFAA01AAF5EA20062803B /* RealtimeMediaSourceCenter.h */,
</span><del>-                                4A4F656E1AA997F100E38CDD /* RealtimeMediaSourceStates.cpp */,
-                                4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceStates.h */,
</del><ins>+                                4A4F656E1AA997F100E38CDD /* RealtimeMediaSourceSettings.cpp */,
+                                4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceSettings.h */,
</ins><span class="cx">                                 07AB996D18DA3C740018771E /* RTCConfigurationPrivate.h */,
</span><span class="cx">                                 07221BA217CF0AD400848E51 /* RTCDataChannelHandler.h */,
</span><span class="cx">                                 07221BA317CF0AD400848E51 /* RTCDataChannelHandlerClient.h */,
</span><span class="lines">@@ -15400,8 +15394,6 @@
</span><span class="cx">                                 157CC2621B7C1CA400D8D075 /* JSMediaDeviceInfo.h */,
</span><span class="cx">                                 15739BB81B42012200D258C1 /* JSMediaDevices.cpp */,
</span><span class="cx">                                 15739BB91B42012200D258C1 /* JSMediaDevices.h */,
</span><del>-                                07C59B6F17F79C7C000FBCBB /* JSMediaSourceStates.cpp */,
-                                07C59B7017F79C7C000FBCBB /* JSMediaSourceStates.h */,
</del><span class="cx">                                 07277E4017D018CC0015534D /* JSMediaStream.cpp */,
</span><span class="cx">                                 07277E4117D018CC0015534D /* JSMediaStream.h */,
</span><span class="cx">                                 07277E4217D018CC0015534D /* JSMediaStreamAudioDestinationNode.cpp */,
</span><span class="lines">@@ -22182,7 +22174,7 @@
</span><span class="cx">                                 BCE1C43F0D9830F4003B02F2 /* JSLocationCustom.cpp */,
</span><span class="cx">                                 AD726FE716D9F204003A4E6D /* JSMediaListCustom.h */,
</span><span class="cx">                                 077B640E1B8F5375003E9AD5 /* JSMediaSessionCustom.cpp */,
</span><del>-                                07C59B6D17F794F6000FBCBB /* JSMediaSourceStatesCustom.cpp */,
</del><ins>+                                07C59B6D17F794F6000FBCBB /* JSMediaStreamTrackCustom.cpp */,
</ins><span class="cx">                                 0705851617FB40E9005F2BCB /* JSMediaStreamCapabilitiesCustom.cpp */,
</span><span class="cx">                                 E1A5F99A0E7EAA2500AF85EA /* JSMessageChannelCustom.cpp */,
</span><span class="cx">                                 07C1C0E61BFB90A700BD2256 /* JSMediaTrackSupportedConstraintsCustom.cpp */,
</span><span class="lines">@@ -26305,7 +26297,6 @@
</span><span class="cx">                                 D3A94A47122DC40F00A37BBC /* JSMediaQueryList.h in Headers */,
</span><span class="cx">                                 7C5343FD17B74B63004232F0 /* JSMediaQueryListListener.h in Headers */,
</span><span class="cx">                                 CD9DE17517AAC74C00EA386D /* JSMediaSource.h in Headers */,
</span><del>-                                07C59B7217F79C7C000FBCBB /* JSMediaSourceStates.h in Headers */,
</del><span class="cx">                                 07277E4D17D018CC0015534D /* JSMediaStream.h in Headers */,
</span><span class="cx">                                 07277E4F17D018CC0015534D /* JSMediaStreamAudioDestinationNode.h in Headers */,
</span><span class="cx">                                 FDBD480D159BC6870093EB4F /* JSMediaStreamAudioSourceNode.h in Headers */,
</span><span class="lines">@@ -26796,7 +26787,7 @@
</span><span class="cx">                                 CDC8B5A7180474F70016E685 /* MediaSourcePrivateAVFObjC.h in Headers */,
</span><span class="cx">                                 CDDC1E7A18A952F30027A9D4 /* MediaSourcePrivateClient.h in Headers */,
</span><span class="cx">                                 CD61FE681794AADB004101EB /* MediaSourceRegistry.h in Headers */,
</span><del>-                                07C59B6917F784BA000FBCBB /* MediaSourceStates.h in Headers */,
</del><ins>+                                07C59B6917F784BA000FBCBB /* MediaSourceSettings.h in Headers */,
</ins><span class="cx">                                 078E091517D14D1C00420AA1 /* MediaStream.h in Headers */,
</span><span class="cx">                                 078E094C17D1709600420AA1 /* MediaStreamAudioDestinationNode.h in Headers */,
</span><span class="cx">                                 0783228518013ED800999E0C /* MediaStreamAudioSource.h in Headers */,
</span><span class="lines">@@ -27121,7 +27112,7 @@
</span><span class="cx">                                 4A4F65721AA997F100E38CDD /* RealtimeMediaSourceCapabilities.h in Headers */,
</span><span class="cx">                                 4A0FFAA21AAF5EA20062803B /* RealtimeMediaSourceCenter.h in Headers */,
</span><span class="cx">                                 4A0FFAA61AAF5EF60062803B /* RealtimeMediaSourceCenterMac.h in Headers */,
</span><del>-                                4A4F65741AA997F100E38CDD /* RealtimeMediaSourceStates.h in Headers */,
</del><ins>+                                4A4F65741AA997F100E38CDD /* RealtimeMediaSourceSettings.h in Headers */,
</ins><span class="cx">                                 07C1C0E51BFB60ED00BD2256 /* RealtimeMediaSourceSupportedConstraints.h in Headers */,
</span><span class="cx">                                 BC4368E80C226E32005EFB5F /* Rect.h in Headers */,
</span><span class="cx">                                 FD45A958175D414C00C21EC8 /* RectangleShape.h in Headers */,
</span><span class="lines">@@ -29990,8 +29981,7 @@
</span><span class="cx">                                 C9DADBCB1B1D3B97001F17D8 /* JSMediaSession.cpp in Sources */,
</span><span class="cx">                                 077B640F1B8F5D6B003E9AD5 /* JSMediaSessionCustom.cpp in Sources */,
</span><span class="cx">                                 CD9DE17417AAC74C00EA386D /* JSMediaSource.cpp in Sources */,
</span><del>-                                07C59B7117F79C7C000FBCBB /* JSMediaSourceStates.cpp in Sources */,
-                                07C59B6E17F794F6000FBCBB /* JSMediaSourceStatesCustom.cpp in Sources */,
</del><ins>+                                07C59B6E17F794F6000FBCBB /* JSMediaStreamTrackCustom.cpp in Sources */,
</ins><span class="cx">                                 07277E4C17D018CC0015534D /* JSMediaStream.cpp in Sources */,
</span><span class="cx">                                 07277E4E17D018CC0015534D /* JSMediaStreamAudioDestinationNode.cpp in Sources */,
</span><span class="cx">                                 FDBD480C159BC6870093EB4F /* JSMediaStreamAudioSourceNode.cpp in Sources */,
</span><span class="lines">@@ -30505,7 +30495,7 @@
</span><span class="cx">                                 CD3A495E17A9D01B00274E42 /* MediaSource.cpp in Sources */,
</span><span class="cx">                                 CDC8B5A6180474F70016E685 /* MediaSourcePrivateAVFObjC.mm in Sources */,
</span><span class="cx">                                 CD61FE671794AADB004101EB /* MediaSourceRegistry.cpp in Sources */,
</span><del>-                                07C59B6817F784BA000FBCBB /* MediaSourceStates.cpp in Sources */,
</del><ins>+                                07C59B6817F784BA000FBCBB /* MediaSourceSettings.cpp in Sources */,
</ins><span class="cx">                                 078E08FF17D14CEE00420AA1 /* MediaStream.cpp in Sources */,
</span><span class="cx">                                 078E094B17D1709600420AA1 /* MediaStreamAudioDestinationNode.cpp in Sources */,
</span><span class="cx">                                 0783228418013ED800999E0C /* MediaStreamAudioSource.cpp in Sources */,
</span><span class="lines">@@ -30735,7 +30725,7 @@
</span><span class="cx">                                 4A4F65701AA997F100E38CDD /* RealtimeMediaSource.cpp in Sources */,
</span><span class="cx">                                 4A0FFAA11AAF5EA20062803B /* RealtimeMediaSourceCenter.cpp in Sources */,
</span><span class="cx">                                 4A0FFAA51AAF5EF60062803B /* RealtimeMediaSourceCenterMac.cpp in Sources */,
</span><del>-                                4A4F65731AA997F100E38CDD /* RealtimeMediaSourceStates.cpp in Sources */,
</del><ins>+                                4A4F65731AA997F100E38CDD /* RealtimeMediaSourceSettings.cpp in Sources */,
</ins><span class="cx">                                 FD45A95A175D417100C21EC8 /* RectangleShape.cpp in Sources */,
</span><span class="cx">                                 BCAB418113E356E800D8AAF3 /* Region.cpp in Sources */,
</span><span class="cx">                                 85031B4B0A44EFC700F992E0 /* RegisteredEventListener.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMediaSourceStatesCustomcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/bindings/js/JSMediaSourceStatesCustom.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMediaSourceStatesCustom.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/bindings/js/JSMediaSourceStatesCustom.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -1,92 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MEDIA_STREAM)
-
-#include "JSMediaSourceStates.h"
-
-#include "JSDOMBinding.h"
-
-using namespace JSC;
-
-namespace WebCore {
-
-JSValue JSMediaSourceStates::width(ExecState&) const
-{
- if (!wrapped().hasVideoSource())
- return jsUndefined();
-
- return jsNumber(wrapped().width());
-}
-
-JSValue JSMediaSourceStates::height(ExecState&) const
-{
- if (!wrapped().hasVideoSource())
- return jsUndefined();
-
- return jsNumber(wrapped().height());
-}
-
-JSValue JSMediaSourceStates::frameRate(ExecState&) const
-{
- if (!wrapped().hasVideoSource())
- return jsUndefined();
-
- return jsNumber(wrapped().frameRate());
-}
-
-JSValue JSMediaSourceStates::aspectRatio(ExecState&) const
-{
- if (!wrapped().hasVideoSource())
- return jsUndefined();
-
- return jsNumber(wrapped().aspectRatio());
-}
-
-JSValue JSMediaSourceStates::facingMode(ExecState& state) const
-{
- if (!wrapped().hasVideoSource())
- return jsUndefined();
-
- const AtomicString& mode = wrapped().facingMode();
- if (mode.isEmpty())
- return jsUndefined();
-
- return jsStringWithCache(&state, wrapped().facingMode());
-}
-
-JSValue JSMediaSourceStates::volume(ExecState&) const
-{
- if (wrapped().hasVideoSource())
- return jsUndefined();
-
- return jsNumber(wrapped().volume());
-}
-
-} // namespace WebCore
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSMediaStreamTrackCustomcpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp (0 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp         (rev 0)
+++ trunk/Source/WebCore/bindings/js/JSMediaStreamTrackCustom.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -0,0 +1,80 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "JSMediaStreamTrack.h"
+
+#if ENABLE(MEDIA_STREAM)
+
+#include "ExceptionCode.h"
+#include "JSDOMBinding.h"
+#include "MediaSourceSettings.h"
+#include <runtime/JSObject.h>
+#include <runtime/ObjectConstructor.h>
+
+using namespace JSC;
+
+namespace WebCore {
+
+JSC::JSValue JSMediaStreamTrack::getSettings(ExecState& state)
+{
+ JSValue thisValue = state.thisValue();
+ JSMediaStreamTrack* castedThis = jsDynamicCast<JSMediaStreamTrack*>(thisValue);
+ if (UNLIKELY(!castedThis))
+ return JSValue::decode(throwThisTypeError(state, "MediaStreamTrack", "getSettings"));
+
+ JSObject* object = constructEmptyObject(&state);
+ auto& impl = castedThis->wrapped();
+ RefPtr<MediaSourceSettings> settings = WTF::getPtr(impl.getSettings());
+
+ if (settings->supportsWidth())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "width"), jsNumber(settings->width()), DontDelete | ReadOnly);
+ if (settings->supportsHeight())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "height"), jsNumber(settings->height()), DontDelete | ReadOnly);
+ if (settings->supportsAspectRatio())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "aspectRatio"), jsDoubleNumber(settings->aspectRatio()), DontDelete | ReadOnly);
+ if (settings->supportsFrameRate())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "frameRate"), jsDoubleNumber(settings->frameRate()), DontDelete | ReadOnly);
+ if (settings->supportsFacingMode())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "facingMode"), jsStringWithCache(&state, settings->facingMode()), DontDelete | ReadOnly);
+ if (settings->supportsVolume())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "volume"), jsDoubleNumber(settings->volume()), DontDelete | ReadOnly);
+ if (settings->supportsSampleRate())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "sampleRate"), jsNumber(settings->sampleRate()), DontDelete | ReadOnly);
+ if (settings->supportsSampleSize())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "sampleSize"), jsNumber(settings->sampleSize()), DontDelete | ReadOnly);
+ if (settings->supportsEchoCancellation())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "echoCancellation"), jsBoolean(settings->echoCancellation()), DontDelete | ReadOnly);
+ if (settings->supportsDeviceId())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "deviceId"), jsStringWithCache(&state, settings->deviceId()), DontDelete | ReadOnly);
+ if (settings->supportsGroupId())
+ object->putDirect(state.vm(), Identifier::fromString(&state, "groupId"), jsStringWithCache(&state, settings->groupId()), DontDelete | ReadOnly);
+
+ return object;
+}
+
+} // namespace WebCore
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaStreamPrivatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -204,9 +204,9 @@
</span><span class="cx"> FloatSize size;
</span><span class="cx">
</span><span class="cx"> if (m_activeVideoTrack) {
</span><del>- const RealtimeMediaSourceStates& states = m_activeVideoTrack->source()->states();
- size.setWidth(states.width());
- size.setHeight(states.height());
</del><ins>+ const RealtimeMediaSourceSettings& setting = m_activeVideoTrack->settings();
+ size.setWidth(setting.width());
+ size.setHeight(setting.height());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return size;
</span><span class="lines">@@ -268,7 +268,7 @@
</span><span class="cx"> });
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MediaStreamPrivate::trackStatesChanged(MediaStreamTrackPrivate&)
</del><ins>+void MediaStreamPrivate::trackSettingsChanged(MediaStreamTrackPrivate&)
</ins><span class="cx"> {
</span><span class="cx"> characteristicsChanged();
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaStreamPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamPrivate.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> // MediaStreamTrackPrivate::Observer
</span><span class="cx"> void trackEnded(MediaStreamTrackPrivate&) override;
</span><span class="cx"> void trackMutedChanged(MediaStreamTrackPrivate&) override;
</span><del>- void trackStatesChanged(MediaStreamTrackPrivate&) override;
</del><ins>+ void trackSettingsChanged(MediaStreamTrackPrivate&) override;
</ins><span class="cx"> void trackEnabledChanged(MediaStreamTrackPrivate&) override;
</span><span class="cx">
</span><span class="cx"> void characteristicsChanged();
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaStreamTrackPrivatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -32,8 +32,7 @@
</span><span class="cx"> #include "AudioSourceProvider.h"
</span><span class="cx"> #include "GraphicsContext.h"
</span><span class="cx"> #include "IntRect.h"
</span><del>-#include "MediaSourceStates.h"
-#include "MediaStreamCapabilities.h"
</del><ins>+#include "MediaSourceSettings.h"
</ins><span class="cx"> #include "UUID.h"
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx">
</span><span class="lines">@@ -149,9 +148,9 @@
</span><span class="cx"> return m_constraints;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-const RealtimeMediaSourceStates& MediaStreamTrackPrivate::states() const
</del><ins>+const RealtimeMediaSourceSettings& MediaStreamTrackPrivate::settings() const
</ins><span class="cx"> {
</span><del>- return m_source->states();
</del><ins>+ return m_source->settings();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> MediaStreamTrackPrivate::capabilities() const
</span><span class="lines">@@ -202,10 +201,10 @@
</span><span class="cx"> observer->trackMutedChanged(*this);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MediaStreamTrackPrivate::sourceStatesChanged()
</del><ins>+void MediaStreamTrackPrivate::sourceSettingsChanged()
</ins><span class="cx"> {
</span><span class="cx"> for (auto& observer : m_observers)
</span><del>- observer->trackStatesChanged(*this);
</del><ins>+ observer->trackSettingsChanged(*this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool MediaStreamTrackPrivate::preventSourceFromStopping()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaStreamTrackPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx">
</span><span class="cx"> class AudioSourceProvider;
</span><span class="cx"> class GraphicsContext;
</span><del>-class MediaSourceStates;
</del><ins>+class MediaSourceSettings;
</ins><span class="cx"> class RealtimeMediaSourceCapabilities;
</span><span class="cx">
</span><span class="cx"> class MediaStreamTrackPrivate : public RefCounted<MediaStreamTrackPrivate>, public RealtimeMediaSource::Observer {
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">
</span><span class="cx"> virtual void trackEnded(MediaStreamTrackPrivate&) = 0;
</span><span class="cx"> virtual void trackMutedChanged(MediaStreamTrackPrivate&) = 0;
</span><del>- virtual void trackStatesChanged(MediaStreamTrackPrivate&) = 0;
</del><ins>+ virtual void trackSettingsChanged(MediaStreamTrackPrivate&) = 0;
</ins><span class="cx"> virtual void trackEnabledChanged(MediaStreamTrackPrivate&) = 0;
</span><span class="cx"> };
</span><span class="cx">
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> void addObserver(Observer&);
</span><span class="cx"> void removeObserver(Observer&);
</span><span class="cx">
</span><del>- const RealtimeMediaSourceStates& states() const;
</del><ins>+ const RealtimeMediaSourceSettings& settings() const;
</ins><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> capabilities() const;
</span><span class="cx">
</span><span class="cx"> RefPtr<MediaConstraints> constraints() const;
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> // RealtimeMediaSourceObserver
</span><span class="cx"> void sourceStopped() override final;
</span><span class="cx"> void sourceMutedChanged() override final;
</span><del>- void sourceStatesChanged() override final;
</del><ins>+ void sourceSettingsChanged() override final;
</ins><span class="cx"> bool preventSourceFromStopping() override final;
</span><span class="cx">
</span><span class="cx"> Vector<Observer*> m_observers;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -95,10 +95,10 @@
</span><span class="cx"> observer->sourceMutedChanged();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RealtimeMediaSource::statesDidChanged()
</del><ins>+void RealtimeMediaSource::settingsDidChanged()
</ins><span class="cx"> {
</span><span class="cx"> for (auto& observer : m_observers)
</span><del>- observer->sourceStatesChanged();
</del><ins>+ observer->sourceSettingsChanged();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool RealtimeMediaSource::readonly() const
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSource.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> class GraphicsContext;
</span><span class="cx"> class MediaConstraints;
</span><span class="cx"> class MediaStreamPrivate;
</span><del>-class RealtimeMediaSourceStates;
</del><ins>+class RealtimeMediaSourceSettings;
</ins><span class="cx">
</span><span class="cx"> class RealtimeMediaSource : public RefCounted<RealtimeMediaSource> {
</span><span class="cx"> public:
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> // Source state changes.
</span><span class="cx"> virtual void sourceStopped() = 0;
</span><span class="cx"> virtual void sourceMutedChanged() = 0;
</span><del>- virtual void sourceStatesChanged() = 0;
</del><ins>+ virtual void sourceSettingsChanged() = 0;
</ins><span class="cx">
</span><span class="cx"> // Observer state queries.
</span><span class="cx"> virtual bool preventSourceFromStopping() = 0;
</span><span class="lines">@@ -85,8 +85,8 @@
</span><span class="cx"> virtual void setFitnessScore(const unsigned fitnessScore) { m_fitnessScore = fitnessScore; }
</span><span class="cx">
</span><span class="cx"> virtual RefPtr<RealtimeMediaSourceCapabilities> capabilities() = 0;
</span><del>- virtual const RealtimeMediaSourceStates& states() = 0;
- void statesDidChanged();
</del><ins>+ virtual const RealtimeMediaSourceSettings& settings() = 0;
+ void settingsDidChanged();
</ins><span class="cx">
</span><span class="cx"> bool stopped() const { return m_stopped; }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCapabilitiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><span class="cx">
</span><del>-#include "RealtimeMediaSourceStates.h"
</del><ins>+#include "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #include <wtf/RefCounted.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx"> #include <wtf/text/AtomicString.h>
</span><span class="lines">@@ -90,20 +90,11 @@
</span><span class="cx">
</span><span class="cx"> ~RealtimeMediaSourceCapabilities() { }
</span><span class="cx">
</span><del>- const Vector<RealtimeMediaSourceStates::SourceType>& sourceTypes() { return m_sourceType; }
- void setSourceType(RealtimeMediaSourceStates::SourceType sourceType) { m_sourceType.resizeToFit(1); addSourceType(sourceType); }
- void addSourceType(RealtimeMediaSourceStates::SourceType sourceType)
- {
- if (sourceType == RealtimeMediaSourceStates::Camera)
- m_videoSource = true;
- m_sourceType.append(sourceType);
- }
-
</del><span class="cx"> const Vector<AtomicString>& sourceId() { return m_sourceId; }
</span><span class="cx"> void setSourceId(const AtomicString& id) { m_sourceId.reserveCapacity(1); m_sourceId.insert(0, id); }
</span><span class="cx">
</span><del>- const Vector<RealtimeMediaSourceStates::VideoFacingMode>& facingModes() { return m_facingMode; }
- void addFacingMode(RealtimeMediaSourceStates::VideoFacingMode mode) { m_facingMode.append(mode); }
</del><ins>+ const Vector<RealtimeMediaSourceSettings::VideoFacingMode>& facingModes() { return m_facingMode; }
+ void addFacingMode(RealtimeMediaSourceSettings::VideoFacingMode mode) { m_facingMode.append(mode); }
</ins><span class="cx">
</span><span class="cx"> const RealtimeMediaSourceCapabilityRange& width() { return m_width; }
</span><span class="cx"> void setWidthRange(const RealtimeMediaSourceCapabilityRange& width) { m_width = width; }
</span><span class="lines">@@ -130,8 +121,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Vector<AtomicString> m_sourceId;
</span><del>- Vector<RealtimeMediaSourceStates::SourceType> m_sourceType;
- Vector<RealtimeMediaSourceStates::VideoFacingMode> m_facingMode;
</del><ins>+ Vector<RealtimeMediaSourceSettings::VideoFacingMode> m_facingMode;
</ins><span class="cx">
</span><span class="cx"> RealtimeMediaSourceCapabilityRange m_width;
</span><span class="cx"> RealtimeMediaSourceCapabilityRange m_height;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceCenterh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx"> class MediaConstraints;
</span><span class="cx"> class MediaStreamCreationClient;
</span><span class="cx"> class MediaStreamTrackSourcesRequestClient;
</span><del>-class RealtimeMediaSourceStates;
</del><ins>+class RealtimeMediaSourceSettings;
</ins><span class="cx"> class RealtimeMediaSourceSupportedConstraints;
</span><span class="cx"> class TrackSourceInfo;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceSettingscppfromrev192930trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceStatescpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.cpp (from rev 192930, trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp) (0 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.cpp         (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -0,0 +1,66 @@
</span><ins>+/*
+ * Copyright (C) 2013-2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name of Google Inc. nor the names of its contributors
+ * may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#if ENABLE(MEDIA_STREAM)
+#include "RealtimeMediaSourceSettings.h"
+
+#include <wtf/NeverDestroyed.h>
+
+namespace WebCore {
+
+const AtomicString& RealtimeMediaSourceSettings::facingMode(RealtimeMediaSourceSettings::VideoFacingMode mode)
+{
+ static NeverDestroyed<AtomicString> userFacing("user", AtomicString::ConstructFromLiteral);
+ static NeverDestroyed<AtomicString> environmentFacing("environment", AtomicString::ConstructFromLiteral);
+ static NeverDestroyed<AtomicString> leftFacing("left", AtomicString::ConstructFromLiteral);
+ static NeverDestroyed<AtomicString> rightFacing("right", AtomicString::ConstructFromLiteral);
+
+ switch (mode) {
+ case RealtimeMediaSourceSettings::User:
+ return userFacing;
+ case RealtimeMediaSourceSettings::Environment:
+ return environmentFacing;
+ case RealtimeMediaSourceSettings::Left:
+ return leftFacing;
+ case RealtimeMediaSourceSettings::Right:
+ return rightFacing;
+ case RealtimeMediaSourceSettings::Unknown:
+ return emptyAtom;
+ }
+
+ ASSERT_NOT_REACHED();
+ return emptyAtom;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(MEDIA_STREAM)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceSettingshfromrev192930trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceStatesh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h (from rev 192930, trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.h) (0 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h         (rev 0)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -0,0 +1,116 @@
</span><ins>+/*
+ * Copyright (C) 2013-2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef RealtimeMediaSourceSettings_h
+#define RealtimeMediaSourceSettings_h
+
+#if ENABLE(MEDIA_STREAM)
+
+#include "RealtimeMediaSourceSupportedConstraints.h"
+#include <wtf/RefCounted.h>
+#include <wtf/Vector.h>
+#include <wtf/text/AtomicString.h>
+
+namespace WebCore {
+
+class RealtimeMediaSourceSettings {
+public:
+ enum SourceType { None, Camera, Microphone };
+ enum VideoFacingMode { Unknown, User, Environment, Left, Right };
+
+ static const AtomicString& facingMode(RealtimeMediaSourceSettings::VideoFacingMode);
+
+ explicit RealtimeMediaSourceSettings()
+ {
+ }
+
+ bool supportsWidth() const { return m_supportedConstraints.supportsWidth(); }
+ unsigned long width() const { return m_width; }
+ void setWidth(unsigned long width) { m_width = width; }
+
+ bool supportsHeight() const { return m_supportedConstraints.supportsHeight(); }
+ unsigned long height() const { return m_height; }
+ void setHeight(unsigned long height) { m_height = height; }
+
+ bool supportsAspectRatio() const { return m_supportedConstraints.supportsAspectRatio(); }
+ float aspectRatio() const { return m_aspectRatio; }
+ void setAspectRatio(float aspectRatio) { m_aspectRatio = aspectRatio; }
+
+ bool supportsFrameRate() const { return m_supportedConstraints.supportsFrameRate(); }
+ float frameRate() const { return m_frameRate; }
+ void setFrameRate(float frameRate) { m_frameRate = frameRate; }
+
+ bool supportsFacingMode() const { return m_supportedConstraints.supportsFacingMode(); }
+ VideoFacingMode facingMode() const { return m_facingMode; }
+ void setFacingMode(VideoFacingMode facingMode) { m_facingMode = facingMode; }
+
+ bool supportsVolume() const { return m_supportedConstraints.supportsVolume(); }
+ unsigned long volume() const { return m_volume; }
+ void setVolume(unsigned long volume) { m_volume = volume; }
+
+ bool supportsSampleRate() const { return m_supportedConstraints.supportsSampleRate(); }
+ unsigned long sampleRate() const { return m_sampleRate; }
+ void setSampleRate(unsigned long sampleRate) { m_sampleRate = sampleRate; }
+
+ bool supportsSampleSize() const { return m_supportedConstraints.supportsSampleSize(); }
+ unsigned long sampleSize() const { return m_sampleSize; }
+ void setSampleSize(unsigned long sampleSize) { m_sampleSize = sampleSize; }
+
+ bool supportsEchoCancellation() const { return m_supportedConstraints.supportsEchoCancellation(); }
+ bool echoCancellation() const { return m_echoCancellation; }
+ void setEchoCancellation(bool echoCancellation) { m_echoCancellation = echoCancellation; }
+
+ bool supportsDeviceId() const { return m_supportedConstraints.supportsDeviceId(); }
+ const AtomicString& deviceId() const { return m_deviceId; }
+ void setDeviceId(const AtomicString& deviceId) { m_deviceId = deviceId; }
+
+ bool supportsGroupId() const { return m_supportedConstraints.supportsGroupId(); }
+ const AtomicString& groupId() const { return m_groupId; }
+ void setGroupId(const AtomicString& groupId) { m_groupId = groupId; }
+
+ void setSupportedConstraits(const RealtimeMediaSourceSupportedConstraints& supportedConstraints) { m_supportedConstraints = supportedConstraints; }
+
+private:
+ unsigned long m_width { 0 };
+ unsigned long m_height { 0 };
+ float m_aspectRatio { 0 };
+ float m_frameRate { 0 };
+ VideoFacingMode m_facingMode { Unknown };
+ unsigned long m_volume { 0 };
+ unsigned long m_sampleRate { 0 };
+ unsigned long m_sampleSize { 0 };
+ bool m_echoCancellation { 0 };
+
+ AtomicString m_deviceId;
+ AtomicString m_groupId;
+
+ RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
+};
+
+} // namespace WebCore
+
+#endif // RealtimeMediaSourceSettings_h
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceStatescpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -1,85 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name of Google Inc. nor the names of its contributors
- * may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#if ENABLE(MEDIA_STREAM)
-#include "RealtimeMediaSourceStates.h"
-
-#include <wtf/NeverDestroyed.h>
-
-namespace WebCore {
-
-const AtomicString& RealtimeMediaSourceStates::facingMode(RealtimeMediaSourceStates::VideoFacingMode mode)
-{
- static NeverDestroyed<AtomicString> userFacing("user", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> environmentFacing("environment", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> leftFacing("left", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> rightFacing("right", AtomicString::ConstructFromLiteral);
-
- switch (mode) {
- case RealtimeMediaSourceStates::User:
- return userFacing;
- case RealtimeMediaSourceStates::Environment:
- return environmentFacing;
- case RealtimeMediaSourceStates::Left:
- return leftFacing;
- case RealtimeMediaSourceStates::Right:
- return rightFacing;
- case RealtimeMediaSourceStates::Unknown:
- return emptyAtom;
- }
-
- ASSERT_NOT_REACHED();
- return emptyAtom;
-}
-
-const AtomicString& RealtimeMediaSourceStates::sourceType(RealtimeMediaSourceStates::SourceType sourceType)
-{
- static NeverDestroyed<AtomicString> none("none", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> camera("camera", AtomicString::ConstructFromLiteral);
- static NeverDestroyed<AtomicString> microphone("microphone", AtomicString::ConstructFromLiteral);
-
- switch (sourceType) {
- case RealtimeMediaSourceStates::None:
- return none;
- case RealtimeMediaSourceStates::Camera:
- return camera;
- case RealtimeMediaSourceStates::Microphone:
- return microphone;
- }
-
- ASSERT_NOT_REACHED();
- return emptyAtom;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamRealtimeMediaSourceStatesh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/RealtimeMediaSourceStates.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -1,95 +0,0 @@
</span><del>-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef RealtimeMediaSourceStates_h
-#define RealtimeMediaSourceStates_h
-
-#if ENABLE(MEDIA_STREAM)
-
-#include <wtf/RefCounted.h>
-#include <wtf/Vector.h>
-#include <wtf/text/AtomicString.h>
-
-namespace WebCore {
-
-class RealtimeMediaSourceStates {
-public:
- enum SourceType { None, Camera, Microphone };
- enum VideoFacingMode { Unknown, User, Environment, Left, Right };
-
- RealtimeMediaSourceStates()
- : m_sourceType(None)
- , m_facingMode(Unknown)
- , m_width(0)
- , m_height(0)
- , m_frameRate(0)
- , m_aspectRatio(0)
- , m_volume(0)
- {
- }
-
- static const AtomicString& sourceType(RealtimeMediaSourceStates::SourceType);
- static const AtomicString& facingMode(RealtimeMediaSourceStates::VideoFacingMode);
-
- SourceType sourceType() const { return m_sourceType; }
- void setSourceType(SourceType type) { m_sourceType = type; }
-
- const AtomicString& sourceId() const { return m_sourceId; }
- void setSourceId(const AtomicString& sourceId) { m_sourceId = sourceId; }
-
- VideoFacingMode facingMode() const { return m_facingMode; }
- void setFacingMode(VideoFacingMode facingMode) { m_facingMode = facingMode; }
-
- unsigned long width() const { return m_width; }
- void setWidth(unsigned long width) { m_width = width; }
-
- unsigned long height() const { return m_height; }
- void setHeight(unsigned long height) { m_height = height; }
-
- float frameRate() const { return m_frameRate; }
- void setFrameRate(float frameRate) { m_frameRate = frameRate; }
-
- float aspectRatio() const { return m_aspectRatio; }
- void setAspectRatio(float aspectRatio) { m_aspectRatio = aspectRatio; }
-
- unsigned long volume() const { return m_volume; }
- void setVolume(unsigned long volume) { m_volume = volume; }
-
-private:
- SourceType m_sourceType;
- AtomicString m_sourceId;
- VideoFacingMode m_facingMode;
- unsigned long m_width;
- unsigned long m_height;
- float m_frameRate;
- float m_aspectRatio;
- unsigned long m_volume;
-};
-
-} // namespace WebCore
-
-#endif // RealtimeMediaSourceStates_h
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVAudioCaptureSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -59,12 +59,13 @@
</span><span class="cx"> virtual ~AVAudioCaptureSource();
</span><span class="cx">
</span><span class="cx"> void initializeCapabilities(RealtimeMediaSourceCapabilities&) override;
</span><ins>+ void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&) override;
</ins><span class="cx">
</span><span class="cx"> void captureOutputDidOutputSampleBufferFromConnection(AVCaptureOutput*, CMSampleBufferRef, AVCaptureConnection*) override;
</span><span class="cx">
</span><span class="cx"> void setupCaptureSession() override;
</span><span class="cx"> void shutdownCaptureSession() override;
</span><del>- void updateStates() override;
</del><ins>+ void updateSettings(RealtimeMediaSourceSettings&) override;
</ins><span class="cx"> AudioSourceProvider* audioSourceProvider() override;
</span><span class="cx">
</span><span class="cx"> RetainPtr<AVCaptureConnection> m_audioConnection;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVAudioCaptureSourcemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> #import "Logging.h"
</span><span class="cx"> #import "MediaConstraints.h"
</span><span class="cx"> #import "NotImplemented.h"
</span><del>-#import "RealtimeMediaSourceStates.h"
</del><ins>+#import "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #import "SoftLinking.h"
</span><span class="cx"> #import "WebAudioSourceProviderAVFObjC.h"
</span><span class="cx"> #import <AVFoundation/AVFoundation.h>
</span><span class="lines">@@ -70,8 +70,6 @@
</span><span class="cx"> AVAudioCaptureSource::AVAudioCaptureSource(AVCaptureDeviceType* device, const AtomicString& id, PassRefPtr<MediaConstraints> constraints)
</span><span class="cx"> : AVMediaCaptureSource(device, id, RealtimeMediaSource::Audio, constraints)
</span><span class="cx"> {
</span><del>- currentStates()->setSourceId(id);
- currentStates()->setSourceType(RealtimeMediaSourceStates::Microphone);
</del><span class="cx"> m_inputDescription = std::make_unique<AudioStreamBasicDescription>();
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -79,19 +77,21 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void AVAudioCaptureSource::initializeCapabilities(RealtimeMediaSourceCapabilities&capabilities)
</del><ins>+void AVAudioCaptureSource::initializeCapabilities(RealtimeMediaSourceCapabilities&)
</ins><span class="cx"> {
</span><span class="cx"> // FIXME: finish this implementation - https://webkit.org/b/122430
</span><del>- capabilities.addSourceType(RealtimeMediaSourceStates::Microphone);
</del><span class="cx"> }
</span><span class="cx">
</span><del>-void AVAudioCaptureSource::updateStates()
</del><ins>+void AVAudioCaptureSource::initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints& supportedConstraints)
</ins><span class="cx"> {
</span><ins>+ supportedConstraints.setSupportsVolume(true);
+}
+
+void AVAudioCaptureSource::updateSettings(RealtimeMediaSourceSettings& settings)
+{
</ins><span class="cx"> // FIXME: use [AVCaptureAudioPreviewOutput volume] for volume
</span><span class="cx">
</span><del>- RealtimeMediaSourceStates* states = currentStates();
- states->setSourceId(id());
- states->setSourceType(RealtimeMediaSourceStates::Microphone);
</del><ins>+ settings.setDeviceId(id());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void AVAudioCaptureSource::addObserver(AVAudioCaptureSource::Observer* observer)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx"> #include "CaptureDeviceManager.h"
</span><span class="cx"> #include "MediaStreamTrackSourcesRequestClient.h"
</span><span class="cx"> #include "RealtimeMediaSource.h"
</span><ins>+#include "RealtimeMediaSourceSupportedConstraints.h"
</ins><span class="cx"> #include <wtf/RetainPtr.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx">
</span><span class="lines">@@ -65,6 +66,8 @@
</span><span class="cx">
</span><span class="cx"> void deviceConnected();
</span><span class="cx"> void deviceDisconnected(AVCaptureDevice*);
</span><ins>+
+ const RealtimeMediaSourceSupportedConstraints& supportedConstraints();
</ins><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> static bool isAvailable();
</span><span class="lines">@@ -80,6 +83,7 @@
</span><span class="cx"> void registerForDeviceNotifications();
</span><span class="cx">
</span><span class="cx"> RetainPtr<WebCoreAVCaptureDeviceManagerObserver> m_objcObserver;
</span><ins>+ RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
</ins><span class="cx"> Vector<CaptureDeviceInfo> m_devices;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVCaptureDeviceManagermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> #import "MediaConstraints.h"
</span><span class="cx"> #import "RealtimeMediaSource.h"
</span><span class="cx"> #import "RealtimeMediaSourceCenter.h"
</span><del>-#import "RealtimeMediaSourceStates.h"
</del><ins>+#import "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #import "RealtimeMediaSourceSupportedConstraints.h"
</span><span class="cx"> #import "SoftLinking.h"
</span><span class="cx"> #import "UUID.h"
</span><span class="lines">@@ -177,9 +177,9 @@
</span><span class="cx"> captureDevice.m_groupID = createCanonicalUUIDString();
</span><span class="cx"> captureDevice.m_localizedName = platformDevice.localizedName;
</span><span class="cx"> if ([platformDevice position] == AVCaptureDevicePositionFront)
</span><del>- captureDevice.m_position = RealtimeMediaSourceStates::User;
</del><ins>+ captureDevice.m_position = RealtimeMediaSourceSettings::User;
</ins><span class="cx"> if ([platformDevice position] == AVCaptureDevicePositionBack)
</span><del>- captureDevice.m_position = RealtimeMediaSourceStates::Environment;
</del><ins>+ captureDevice.m_position = RealtimeMediaSourceSettings::Environment;
</ins><span class="cx">
</span><span class="cx"> bool hasAudio = [platformDevice hasMediaType:AVMediaTypeAudio] || [platformDevice hasMediaType:AVMediaTypeMuxed];
</span><span class="cx"> bool hasVideo = [platformDevice hasMediaType:AVMediaTypeVideo] || [platformDevice hasMediaType:AVMediaTypeMuxed];
</span><span class="lines">@@ -344,6 +344,31 @@
</span><span class="cx"> return CaptureDeviceManager::isSupportedFrameRate(frameRate);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+const RealtimeMediaSourceSupportedConstraints& AVCaptureDeviceManager::supportedConstraints()
+{
+ if (m_supportedConstraints.supportsDeviceId())
+ return m_supportedConstraints;
+
+ m_supportedConstraints.setSupportsDeviceId(true);
+
+ Vector<CaptureDeviceInfo>& devices = captureDeviceList();
+
+ for (auto& captureDevice : devices) {
+ if (captureDevice.m_sourceType == RealtimeMediaSource::Audio)
+ m_supportedConstraints.setSupportsVolume(true);
+
+ if (captureDevice.m_sourceType == RealtimeMediaSource::Video) {
+ m_supportedConstraints.setSupportsWidth(true);
+ m_supportedConstraints.setSupportsHeight(true);
+ m_supportedConstraints.setSupportsAspectRatio(true);
+ m_supportedConstraints.setSupportsFrameRate(true);
+ m_supportedConstraints.setSupportsFacingMode(true);
+ }
+ }
+
+ return m_supportedConstraints;
+}
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><span class="cx"> @implementation WebCoreAVCaptureDeviceManagerObserver
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVMediaCaptureSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx">
</span><span class="cx"> AVCaptureSession *session() const { return m_session.get(); }
</span><span class="cx">
</span><del>- const RealtimeMediaSourceStates& states() override;
</del><ins>+ const RealtimeMediaSourceSettings& settings() override;
</ins><span class="cx">
</span><span class="cx"> void startProducingData() override;
</span><span class="cx"> void stopProducingData() override;
</span><span class="lines">@@ -71,14 +71,15 @@
</span><span class="cx">
</span><span class="cx"> virtual void setupCaptureSession() = 0;
</span><span class="cx"> virtual void shutdownCaptureSession() = 0;
</span><del>- virtual void updateStates() = 0;
</del><ins>+ virtual void updateSettings(RealtimeMediaSourceSettings&) = 0;
</ins><span class="cx"> virtual void initializeCapabilities(RealtimeMediaSourceCapabilities&) = 0;
</span><ins>+ virtual void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&) = 0;
</ins><span class="cx">
</span><span class="cx"> AVCaptureDevice *device() const { return m_device.get(); }
</span><span class="cx">
</span><del>- RealtimeMediaSourceStates* currentStates() { return &m_currentStates; }
</del><span class="cx"> MediaConstraints* constraints() { return m_constraints.get(); }
</span><span class="cx">
</span><ins>+ RealtimeMediaSourceSupportedConstraints& supportedConstraints();
</ins><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> capabilities() override;
</span><span class="cx">
</span><span class="cx"> void setVideoSampleBufferDelegate(AVCaptureVideoDataOutput*);
</span><span class="lines">@@ -90,11 +91,12 @@
</span><span class="cx"> void setupSession();
</span><span class="cx"> void reset() override;
</span><span class="cx">
</span><ins>+ RealtimeMediaSourceSettings m_currentSettings;
+ RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
</ins><span class="cx"> WeakPtrFactory<AVMediaCaptureSource> m_weakPtrFactory;
</span><span class="cx"> RetainPtr<WebCoreAVMediaCaptureSourceObserver> m_objcObserver;
</span><span class="cx"> RefPtr<MediaConstraints> m_constraints;
</span><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> m_capabilities;
</span><del>- RealtimeMediaSourceStates m_currentStates;
</del><span class="cx"> RetainPtr<AVCaptureSession> m_session;
</span><span class="cx"> RetainPtr<AVCaptureDevice> m_device;
</span><span class="cx"> bool m_isRunning { false};
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVMediaCaptureSourcemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVMediaCaptureSource.mm        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -31,7 +31,7 @@
</span><span class="cx"> #import "AudioSourceProvider.h"
</span><span class="cx"> #import "Logging.h"
</span><span class="cx"> #import "MediaConstraints.h"
</span><del>-#import "RealtimeMediaSourceStates.h"
</del><ins>+#import "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #import "SoftLinking.h"
</span><span class="cx"> #import "UUID.h"
</span><span class="cx"> #import <AVFoundation/AVFoundation.h>
</span><span class="lines">@@ -132,7 +132,6 @@
</span><span class="cx"> {
</span><span class="cx"> setName(device.localizedName);
</span><span class="cx"> setPersistentID(device.uniqueID);
</span><del>- m_currentStates.setSourceType(type == RealtimeMediaSource::Video ? RealtimeMediaSourceStates::Camera : RealtimeMediaSourceStates::Microphone);
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> AVMediaCaptureSource::~AVMediaCaptureSource()
</span><span class="lines">@@ -165,13 +164,27 @@
</span><span class="cx"> [m_session.get() stopRunning];
</span><span class="cx"> }
</span><span class="cx">
</span><del>-const RealtimeMediaSourceStates& AVMediaCaptureSource::states()
</del><ins>+const RealtimeMediaSourceSettings& AVMediaCaptureSource::settings()
</ins><span class="cx"> {
</span><del>- m_currentStates.setSourceId(id());
- updateStates();
- return m_currentStates;
</del><ins>+ if (m_currentSettings.deviceId().isEmpty())
+ m_currentSettings.setSupportedConstraits(supportedConstraints());
+
+ m_currentSettings.setDeviceId(id());
+ updateSettings(m_currentSettings);
+ return m_currentSettings;
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+RealtimeMediaSourceSupportedConstraints& AVMediaCaptureSource::supportedConstraints()
+{
+ if (m_supportedConstraints.supportsDeviceId())
+ return m_supportedConstraints;
+
+ m_supportedConstraints.setSupportsDeviceId(true);
+ initializeSupportedConstraints(m_supportedConstraints);
+
+ return m_supportedConstraints;
+}
+
</ins><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> AVMediaCaptureSource::capabilities()
</span><span class="cx"> {
</span><span class="cx"> if (!m_capabilities) {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -55,9 +55,10 @@
</span><span class="cx"> void setupCaptureSession() override;
</span><span class="cx"> void shutdownCaptureSession() override;
</span><span class="cx">
</span><del>- void updateStates() override;
</del><ins>+ void updateSettings(RealtimeMediaSourceSettings&) override;
</ins><span class="cx">
</span><span class="cx"> void initializeCapabilities(RealtimeMediaSourceCapabilities&) override;
</span><ins>+ void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&) override;
</ins><span class="cx">
</span><span class="cx"> bool applyConstraints(MediaConstraints*);
</span><span class="cx"> bool setFrameRateConstraint(float minFrameRate, float maxFrameRate);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourcemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> #import "NotImplemented.h"
</span><span class="cx"> #import "PlatformLayer.h"
</span><span class="cx"> #import "RealtimeMediaSourceCenter.h"
</span><del>-#import "RealtimeMediaSourceStates.h"
</del><ins>+#import "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #import <AVFoundation/AVFoundation.h>
</span><span class="cx"> #import <objc/runtime.h>
</span><span class="cx">
</span><span class="lines">@@ -111,28 +111,33 @@
</span><span class="cx"> void AVVideoCaptureSource::initializeCapabilities(RealtimeMediaSourceCapabilities& capabilities)
</span><span class="cx"> {
</span><span class="cx"> // FIXME: finish this implementation
</span><del>- capabilities.setSourceId(currentStates()->sourceId());
- capabilities.addSourceType(RealtimeMediaSourceStates::Camera);
</del><ins>+ capabilities.setSourceId(id());
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-void AVVideoCaptureSource::updateStates()
</del><ins>+void AVVideoCaptureSource::initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints& supportedConstraints)
</ins><span class="cx"> {
</span><del>- RealtimeMediaSourceStates* states = currentStates();
</del><ins>+ supportedConstraints.setSupportsWidth(true);
+ supportedConstraints.setSupportsHeight(true);
+ supportedConstraints.setSupportsAspectRatio(true);
+ supportedConstraints.setSupportsFrameRate(true);
+ supportedConstraints.setSupportsFacingMode(true);
+}
</ins><span class="cx">
</span><del>- states->setSourceId(id());
- states->setSourceType(RealtimeMediaSourceStates::Camera);
</del><ins>+void AVVideoCaptureSource::updateSettings(RealtimeMediaSourceSettings& settings)
+{
+ settings.setDeviceId(id());
</ins><span class="cx">
</span><span class="cx"> if ([device() position] == AVCaptureDevicePositionFront)
</span><del>- states->setFacingMode(RealtimeMediaSourceStates::User);
</del><ins>+ settings.setFacingMode(RealtimeMediaSourceSettings::User);
</ins><span class="cx"> else if ([device() position] == AVCaptureDevicePositionBack)
</span><del>- states->setFacingMode(RealtimeMediaSourceStates::Environment);
</del><ins>+ settings.setFacingMode(RealtimeMediaSourceSettings::Environment);
</ins><span class="cx"> else
</span><del>- states->setFacingMode(RealtimeMediaSourceStates::Unknown);
</del><ins>+ settings.setFacingMode(RealtimeMediaSourceSettings::Unknown);
</ins><span class="cx">
</span><del>- states->setFrameRate(m_frameRate);
- states->setWidth(m_width);
- states->setHeight(m_height);
- states->setAspectRatio(static_cast<float>(m_width) / m_height);
</del><ins>+ settings.setFrameRate(m_frameRate);
+ settings.setWidth(m_width);
+ settings.setHeight(m_height);
+ settings.setAspectRatio(static_cast<float>(m_width) / m_height);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool AVVideoCaptureSource::setFrameRateConstraint(float minFrameRate, float maxFrameRate)
</span><span class="lines">@@ -292,7 +297,7 @@
</span><span class="cx">
</span><span class="cx"> updateFramerate(sampleBuffer.get());
</span><span class="cx">
</span><del>- bool statesChanged = false;
</del><ins>+ bool settingsChanged = false;
</ins><span class="cx">
</span><span class="cx"> m_buffer = sampleBuffer;
</span><span class="cx"> m_lastImage = nullptr;
</span><span class="lines">@@ -301,11 +306,11 @@
</span><span class="cx"> if (dimensions.width != m_width || dimensions.height != m_height) {
</span><span class="cx"> m_width = dimensions.width;
</span><span class="cx"> m_height = dimensions.height;
</span><del>- statesChanged = true;
</del><ins>+ settingsChanged = true;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if (statesChanged)
- this->statesDidChanged();
</del><ins>+ if (settingsChanged)
+ this->settingsDidChanged();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection(AVCaptureOutputType*, CMSampleBufferRef sampleBuffer, AVCaptureConnectionType*)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacMockRealtimeVideoSourceMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> #import "MediaConstraints.h"
</span><span class="cx"> #import "NotImplemented.h"
</span><span class="cx"> #import "PlatformLayer.h"
</span><del>-#import "RealtimeMediaSourceStates.h"
</del><ins>+#import "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #import <QuartzCore/CALayer.h>
</span><span class="cx"> #import <QuartzCore/CATransaction.h>
</span><span class="cx"> #import <objc/runtime.h>
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceOwrh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -59,13 +59,13 @@
</span><span class="cx"> virtual ~RealtimeMediaSourceOwr() { }
</span><span class="cx">
</span><span class="cx"> virtual RefPtr<RealtimeMediaSourceCapabilities> capabilities() { return m_capabilities; }
</span><del>- virtual const RealtimeMediaSourceStates& states() { return m_currentStates; }
</del><ins>+ virtual const RealtimeMediaSourceSettings& settings() { return m_currentSettings; }
</ins><span class="cx">
</span><span class="cx"> OwrMediaSource* mediaSource() const { return m_mediaSource; }
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> m_capabilities;
</span><del>- RealtimeMediaSourceStates m_currentStates;
</del><ins>+ RealtimeMediaSourceSettings m_currentSettings;
</ins><span class="cx"> OwrMediaSource* m_mediaSource;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeAudioSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx"> #include "Logging.h"
</span><span class="cx"> #include "MediaConstraints.h"
</span><span class="cx"> #include "NotImplemented.h"
</span><del>-#include "RealtimeMediaSourceStates.h"
</del><ins>+#include "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #include "UUID.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -50,11 +50,9 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MockRealtimeAudioSource::updateStates()
</del><ins>+void MockRealtimeAudioSource::updateSettings(RealtimeMediaSourceSettings& settings)
</ins><span class="cx"> {
</span><del>- RealtimeMediaSourceStates* states = currentStates();
- states->setSourceType(RealtimeMediaSourceStates::Microphone);
- states->setVolume(50);
</del><ins>+ settings.setVolume(50);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void MockRealtimeAudioSource::initializeCapabilities(RealtimeMediaSourceCapabilities& capabilities)
</span><span class="lines">@@ -62,6 +60,11 @@
</span><span class="cx"> capabilities.setVolumeRange(RealtimeMediaSourceCapabilityRange(0UL, 100UL, true));
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void MockRealtimeAudioSource::initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints& supportedConstraints)
+{
+ supportedConstraints.setSupportsVolume(true);
+}
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(MEDIA_STREAM)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeAudioSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeAudioSource.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -51,8 +51,9 @@
</span><span class="cx"> MockRealtimeAudioSource();
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- void updateStates() override;
</del><ins>+ void updateSettings(RealtimeMediaSourceSettings&) override;
</ins><span class="cx"> void initializeCapabilities(RealtimeMediaSourceCapabilities&) override;
</span><ins>+ void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&) override;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeMediaSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> #include "MediaConstraints.h"
</span><span class="cx"> #include "MediaStreamTrackSourcesRequestClient.h"
</span><span class="cx"> #include "NotImplemented.h"
</span><del>-#include "RealtimeMediaSourceStates.h"
</del><ins>+#include "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #include <math.h>
</span><span class="cx"> #include <wtf/CurrentTime.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="lines">@@ -92,22 +92,39 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> MockRealtimeMediaSource::capabilities()
</span><span class="cx"> {
</span><del>- if (!m_capabilities) {
- m_capabilities = RealtimeMediaSourceCapabilities::create();
- m_capabilities->setSourceId(id());
- initializeCapabilities(*m_capabilities.get());
- }
</del><ins>+ if (m_capabilities)
+ return m_capabilities;
+
+ m_capabilities = RealtimeMediaSourceCapabilities::create();
+ m_capabilities->setSourceId(id());
+ initializeCapabilities(*m_capabilities.get());
+
</ins><span class="cx"> return m_capabilities;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-const RealtimeMediaSourceStates& MockRealtimeMediaSource::states()
</del><ins>+const RealtimeMediaSourceSettings& MockRealtimeMediaSource::settings()
</ins><span class="cx"> {
</span><del>- m_currentStates.setSourceId(id());
- updateStates();
</del><ins>+ if (m_currentSettings.deviceId().isEmpty()) {
+ m_currentSettings.setSupportedConstraits(supportedConstraints());
+ m_currentSettings.setDeviceId(id());
+ }
</ins><span class="cx">
</span><del>- return m_currentStates;
</del><ins>+ updateSettings(m_currentSettings);
+ return m_currentSettings;
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+RealtimeMediaSourceSupportedConstraints& MockRealtimeMediaSource::supportedConstraints()
+{
+ if (m_supportedConstraints.supportsDeviceId())
+ return m_supportedConstraints;
+
+ m_supportedConstraints.setSupportsDeviceId(true);
+ initializeSupportedConstraints(m_supportedConstraints);
+
+ return m_supportedConstraints;
+}
+
+
</ins><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(MEDIA_STREAM)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeMediaSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeMediaSource.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -57,23 +57,25 @@
</span><span class="cx"> protected:
</span><span class="cx"> MockRealtimeMediaSource(const String& id, Type, const String& name);
</span><span class="cx">
</span><del>- virtual void updateStates() = 0;
</del><ins>+ virtual void updateSettings(RealtimeMediaSourceSettings&) = 0;
</ins><span class="cx"> virtual void initializeCapabilities(RealtimeMediaSourceCapabilities&) = 0;
</span><ins>+ virtual void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&) = 0;
</ins><span class="cx">
</span><span class="cx"> void startProducingData() override { m_isProducingData = true; }
</span><span class="cx"> void stopProducingData() override { m_isProducingData = false; }
</span><span class="cx">
</span><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> capabilities() override;
</span><del>- const RealtimeMediaSourceStates& states() override;
</del><ins>+ const RealtimeMediaSourceSettings& settings() override;
</ins><span class="cx">
</span><del>- RealtimeMediaSourceStates* currentStates() { return &m_currentStates; }
- MediaConstraints* constraints() { return m_constraints.get(); }
</del><ins>+ MediaConstraints& constraints() { return *m_constraints.get(); }
+ RealtimeMediaSourceSupportedConstraints& supportedConstraints();
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx">
</span><span class="cx"> bool isProducingData() const override { return m_isProducingData; }
</span><span class="cx">
</span><del>- RealtimeMediaSourceStates m_currentStates;
</del><ins>+ RealtimeMediaSourceSettings m_currentSettings;
+ RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
</ins><span class="cx"> RefPtr<RealtimeMediaSourceCapabilities> m_capabilities;
</span><span class="cx"> RefPtr<MediaConstraints> m_constraints;
</span><span class="cx"> bool m_isProducingData { false };
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeVideoSourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> #include "MediaConstraints.h"
</span><span class="cx"> #include "NotImplemented.h"
</span><span class="cx"> #include "PlatformLayer.h"
</span><del>-#include "RealtimeMediaSourceStates.h"
</del><ins>+#include "RealtimeMediaSourceSettings.h"
</ins><span class="cx"> #include "UUID.h"
</span><span class="cx"> #include <math.h>
</span><span class="cx"> #include <wtf/CurrentTime.h>
</span><span class="lines">@@ -90,39 +90,32 @@
</span><span class="cx"> return m_elapsedTime + (monotonicallyIncreasingTime() - m_startTime);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MockRealtimeVideoSource::updateStates()
</del><ins>+void MockRealtimeVideoSource::updateSettings(RealtimeMediaSourceSettings& settings)
</ins><span class="cx"> {
</span><del>- RealtimeMediaSourceStates* states = currentStates();
-
- states->setSourceType(RealtimeMediaSourceStates::Camera);
- states->setFacingMode(RealtimeMediaSourceStates::User);
- states->setFrameRate(m_frameRate);
- states->setWidth(m_size.width());
- states->setHeight(m_size.height());
- states->setAspectRatio(static_cast<float>(m_size.width()) / m_size.height());
</del><ins>+ settings.setFacingMode(RealtimeMediaSourceSettings::User);
+ settings.setFrameRate(m_frameRate);
+ settings.setWidth(m_size.width());
+ settings.setHeight(m_size.height());
+ settings.setAspectRatio(static_cast<float>(m_size.width()) / m_size.height());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void MockRealtimeVideoSource::initializeCapabilities(RealtimeMediaSourceCapabilities& capabilities)
</span><span class="cx"> {
</span><del>- capabilities.addSourceType(RealtimeMediaSourceStates::Camera);
- capabilities.addFacingMode(RealtimeMediaSourceStates::User);
- capabilities.addFacingMode(RealtimeMediaSourceStates::Environment);
</del><ins>+ capabilities.addFacingMode(RealtimeMediaSourceSettings::User);
+ capabilities.addFacingMode(RealtimeMediaSourceSettings::Environment);
</ins><span class="cx"> capabilities.setWidthRange(RealtimeMediaSourceCapabilityRange(320UL, 1920UL, true));
</span><span class="cx"> capabilities.setHeightRange(RealtimeMediaSourceCapabilityRange(240UL, 1080UL, true));
</span><span class="cx"> capabilities.setFrameRateRange(RealtimeMediaSourceCapabilityRange(15.0f, 60.0f, true));
</span><span class="cx"> capabilities.setAspectRatioRange(RealtimeMediaSourceCapabilityRange(4 / 3.0f, 16 / 9.0f, true));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void MockRealtimeVideoSource::setFacingMode(RealtimeMediaSourceStates::VideoFacingMode mode)
</del><ins>+void MockRealtimeVideoSource::initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints& supportedConstraints)
</ins><span class="cx"> {
</span><del>- RealtimeMediaSourceStates* states = currentStates();
-
- if (states->facingMode() == mode)
- return;
-
- states->setFacingMode(mode);
-
- statesDidChanged();
</del><ins>+ supportedConstraints.setSupportsWidth(true);
+ supportedConstraints.setSupportsHeight(true);
+ supportedConstraints.setSupportsAspectRatio(true);
+ supportedConstraints.setSupportsFrameRate(true);
+ supportedConstraints.setSupportsFacingMode(true);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void MockRealtimeVideoSource::setFrameRate(float rate)
</span><span class="lines">@@ -134,7 +127,7 @@
</span><span class="cx"> if (m_timer.isActive())
</span><span class="cx"> m_timer.startRepeating(std::chrono::milliseconds(lround(1000 / m_frameRate)));
</span><span class="cx">
</span><del>- statesDidChanged();
</del><ins>+ settingsDidChanged();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void MockRealtimeVideoSource::setSize(const IntSize& size)
</span><span class="lines">@@ -169,7 +162,7 @@
</span><span class="cx"> m_imageBuffer = nullptr;
</span><span class="cx"> updatePlatformLayer();
</span><span class="cx">
</span><del>- statesDidChanged();
</del><ins>+ settingsDidChanged();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void MockRealtimeVideoSource::drawAnimation(GraphicsContext& context)
</span><span class="lines">@@ -284,20 +277,20 @@
</span><span class="cx"> context.drawText(m_statsFont, TextRun((StringView(string))), statsLocation, 0, -1);
</span><span class="cx">
</span><span class="cx"> const char* camera;
</span><del>- switch (states().facingMode()) {
- case RealtimeMediaSourceStates::User:
</del><ins>+ switch (settings().facingMode()) {
+ case RealtimeMediaSourceSettings::User:
</ins><span class="cx"> camera = "User facing";
</span><span class="cx"> break;
</span><del>- case RealtimeMediaSourceStates::Environment:
</del><ins>+ case RealtimeMediaSourceSettings::Environment:
</ins><span class="cx"> camera = "Environment facing";
</span><span class="cx"> break;
</span><del>- case RealtimeMediaSourceStates::Left:
</del><ins>+ case RealtimeMediaSourceSettings::Left:
</ins><span class="cx"> camera = "Left facing";
</span><span class="cx"> break;
</span><del>- case RealtimeMediaSourceStates::Right:
</del><ins>+ case RealtimeMediaSourceSettings::Right:
</ins><span class="cx"> camera = "Right facing";
</span><span class="cx"> break;
</span><del>- case RealtimeMediaSourceStates::Unknown:
</del><ins>+ case RealtimeMediaSourceSettings::Unknown:
</ins><span class="cx"> camera = "Unknown";
</span><span class="cx"> break;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockRealtimeVideoSourceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h (192953 => 192954)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h        2015-12-02 20:13:50 UTC (rev 192953)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h        2015-12-02 20:20:37 UTC (rev 192954)
</span><span class="lines">@@ -53,7 +53,6 @@
</span><span class="cx"> void setSize(const IntSize&);
</span><span class="cx"> const IntSize& size() const { return m_size; }
</span><span class="cx">
</span><del>- void setFacingMode(RealtimeMediaSourceStates::VideoFacingMode);
</del><span class="cx"> void setFrameRate(float);
</span><span class="cx">
</span><span class="cx"> protected:
</span><span class="lines">@@ -63,8 +62,9 @@
</span><span class="cx"> ImageBuffer* imageBuffer() const;
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- void updateStates() override;
</del><ins>+ void updateSettings(RealtimeMediaSourceSettings&) override;
</ins><span class="cx"> void initializeCapabilities(RealtimeMediaSourceCapabilities&) override;
</span><ins>+ void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&) override;
</ins><span class="cx">
</span><span class="cx"> void startProducingData() override;
</span><span class="cx"> void stopProducingData() override;
</span></span></pre>
</div>
</div>
</body>
</html>