<!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>[209968] 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/209968">209968</a></dd>
<dt>Author</dt> <dd>philn@webkit.org</dd>
<dt>Date</dt> <dd>2016-12-17 11:32:45 -0800 (Sat, 17 Dec 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Unreviewed, rollout <a href="http://trac.webkit.org/projects/webkit/changeset/209860">r209860</a> OWR player shouldn't be selected for
normal video playback

Source/WebCore:

* platform/GStreamer.cmake:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
(WebCore::MediaPlayerPrivateGStreamerOwr::~MediaPlayerPrivateGStreamerOwr):
(WebCore::MediaPlayerPrivateGStreamerOwr::play):
(WebCore::MediaPlayerPrivateGStreamerOwr::pause):
(WebCore::MediaPlayerPrivateGStreamerOwr::load):
(WebCore::MediaPlayerPrivateGStreamerOwr::stop):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnded):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnabledChanged):
(WebCore::MediaPlayerPrivateGStreamerOwr::setSize):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h:
* platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
(WebCore::MediaEndpointOwr::createMutedRemoteSource):
* platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h: Removed.
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable):
* platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp: Removed.
* platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:
* platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h: Removed.

LayoutTests:

* platform/gtk/TestExpectations:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformgtkTestExpectations">trunk/LayoutTests/platform/gtk/TestExpectations</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformGStreamercmake">trunk/Source/WebCore/platform/GStreamer.cmake</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerOwrcpp">trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerOwrh">trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcMediaEndpointOwrcpp">trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceCenterOwrcpp">trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceOwrh">trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeAudioSourceOwrh">trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceOwrcpp">trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeVideoSourceOwrh">trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/LayoutTests/ChangeLog        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -1,3 +1,9 @@
</span><ins>+2016-12-17  Philippe Normand  &lt;pnormand@igalia.com&gt;
+
+        Unreviewed, rollout r209860 OWR player shouldn't be selected for normal video playback
+
+        * platform/gtk/TestExpectations:
+
</ins><span class="cx"> 2016-12-17  Wenson Hsieh  &lt;wenson_hsieh@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Visual viewports: bottom fixed elements disappear behind the keyboard
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/TestExpectations (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/TestExpectations        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/LayoutTests/platform/gtk/TestExpectations        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -314,6 +314,7 @@
</span><span class="cx"> webkit.org/b/79203 webaudio/mediastreamaudiodestinationnode.html [ Skip ]
</span><span class="cx"> webkit.org/b/79203 webaudio/mediastreamaudiosourcenode.html [ Skip ]
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/MediaStream-video-element.html [ Skip ]
</span><ins>+webkit.org/b/79203 fast/mediastream/MediaStream-video-element-track-stop.html [ Skip ]
</ins><span class="cx"> webkit.org/b/151344 fast/mediastream/MediaStream-add-ended-tracks.html [ Skip ]
</span><span class="cx"> webkit.org/b/151344 fast/mediastream/MediaStream-add-remove-tracks.html [ Skip ]
</span><span class="cx"> webkit.org/b/79203 fast/mediastream/mock-media-source.html [ Skip ]
</span><span class="lines">@@ -322,7 +323,6 @@
</span><span class="cx"> webkit.org/b/160996 fast/mediastream/apply-constraints-advanced.html [ Skip ]
</span><span class="cx"> webkit.org/b/160996 fast/mediastream/apply-constraints-audio.html [ Skip ]
</span><span class="cx"> webkit.org/b/160996 fast/mediastream/apply-constraints-video.html [ Skip ]
</span><del>-webkit.org/b/161956 fast/mediastream/MediaStream-video-element-displays-buffer.html [ Skip ]
</del><span class="cx"> 
</span><span class="cx"> # Proximity Events is not supported.
</span><span class="cx"> webkit.org/b/99060 proximity [ Failure ]
</span><span class="lines">@@ -821,6 +821,8 @@
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/153937 http/tests/misc/detach-during-notifyDone.html [ Crash Pass ]
</span><span class="cx"> 
</span><ins>+webkit.org/b/161956 fast/mediastream/MediaStream-video-element-displays-buffer.html [ Timeout ]
+
</ins><span class="cx"> webkit.org/b/131546 media/track/track-in-band.html [ Crash Timeout Failure ]
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/163782 media/video-played-ranges-1.html [ Crash Pass ]
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/ChangeLog        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -1,3 +1,27 @@
</span><ins>+2016-12-17  Philippe Normand  &lt;pnormand@igalia.com&gt;
+
+        Unreviewed, rollout r209860 OWR player shouldn't be selected for normal video playback
+
+        * platform/GStreamer.cmake:
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerOwr::~MediaPlayerPrivateGStreamerOwr):
+        (WebCore::MediaPlayerPrivateGStreamerOwr::play):
+        (WebCore::MediaPlayerPrivateGStreamerOwr::pause):
+        (WebCore::MediaPlayerPrivateGStreamerOwr::load):
+        (WebCore::MediaPlayerPrivateGStreamerOwr::stop):
+        (WebCore::MediaPlayerPrivateGStreamerOwr::trackEnded):
+        (WebCore::MediaPlayerPrivateGStreamerOwr::trackEnabledChanged):
+        (WebCore::MediaPlayerPrivateGStreamerOwr::setSize):
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h:
+        * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
+        (WebCore::MediaEndpointOwr::createMutedRemoteSource):
+        * platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h: Removed.
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
+        (WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable):
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp: Removed.
+        * platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h:
+        * platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h: Removed.
+
</ins><span class="cx"> 2016-12-17  Michael Catanzaro  &lt;mcatanzaro@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         warning: the compiler can assume that the address of 'thisObject' will always evaluate to 'true' [-Waddress] in WebCore::JSHTMLDocument::getOwnPropertySlot
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformGStreamercmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/GStreamer.cmake (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/GStreamer.cmake        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/GStreamer.cmake        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -16,7 +16,6 @@
</span><span class="cx"> 
</span><span class="cx">         platform/mediastream/openwebrtc/MediaEndpointOwr.cpp
</span><span class="cx">         platform/mediastream/openwebrtc/OpenWebRTCUtilities.cpp
</span><del>-        platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp
</del><span class="cx">         platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp
</span><span class="cx">     )
</span><span class="cx"> endif ()
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerOwrcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -56,9 +56,6 @@
</span><span class="cx">     if (hasVideo())
</span><span class="cx">         m_videoTrack-&gt;removeObserver(*this);
</span><span class="cx"> 
</span><del>-    m_audioTrackMap.clear();
-    m_videoTrackMap.clear();
-
</del><span class="cx">     stop();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -72,7 +69,6 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_ended = false;
</del><span class="cx">     m_paused = false;
</span><span class="cx"> 
</span><span class="cx">     GST_DEBUG(&quot;Connecting to live stream, descriptor: %p&quot;, m_streamPrivate.get());
</span><span class="lines">@@ -88,7 +84,7 @@
</span><span class="cx"> {
</span><span class="cx">     GST_DEBUG(&quot;Pause&quot;);
</span><span class="cx">     m_paused = true;
</span><del>-    disableMediaTracks();
</del><ins>+    stop();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool MediaPlayerPrivateGStreamerOwr::hasVideo() const
</span><span class="lines">@@ -205,9 +201,6 @@
</span><span class="cx">                 String preSelectedDevice = getenv(&quot;WEBKIT_AUDIO_DEVICE&quot;);
</span><span class="cx">                 if (!preSelectedDevice || (preSelectedDevice == track-&gt;label())) {
</span><span class="cx">                     m_audioTrack = track;
</span><del>-                    auto audioTrack = AudioTrackPrivateMediaStream::create(*m_audioTrack.get());
-                    m_player-&gt;addAudioTrack(*audioTrack);
-                    m_audioTrackMap.add(track-&gt;id(), audioTrack);
</del><span class="cx">                     observeTrack = true;
</span><span class="cx">                 }
</span><span class="cx">             }
</span><span class="lines">@@ -217,10 +210,6 @@
</span><span class="cx">                 String preSelectedDevice = getenv(&quot;WEBKIT_VIDEO_DEVICE&quot;);
</span><span class="cx">                 if (!preSelectedDevice || (preSelectedDevice == track-&gt;label())) {
</span><span class="cx">                     m_videoTrack = track;
</span><del>-                    auto videoTrack = VideoTrackPrivateMediaStream::create(*m_videoTrack.get());
-                    m_player-&gt;addVideoTrack(*videoTrack);
-                    videoTrack-&gt;setSelected(true);
-                    m_videoTrackMap.add(track-&gt;id(), videoTrack);
</del><span class="cx">                     observeTrack = true;
</span><span class="cx">                 }
</span><span class="cx">             }
</span><span class="lines">@@ -256,31 +245,20 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateGStreamerOwr::disableMediaTracks()
</del><ins>+void MediaPlayerPrivateGStreamerOwr::stop()
</ins><span class="cx"> {
</span><span class="cx">     if (m_audioTrack) {
</span><span class="cx">         GST_DEBUG(&quot;Stop: disconnecting audio&quot;);
</span><del>-        g_object_set(m_audioRenderer.get(), &quot;disabled&quot;, true, nullptr);
</del><ins>+        g_object_set(m_audioRenderer.get(), &quot;disabled&quot;, TRUE, nullptr);
</ins><span class="cx">         owr_media_renderer_set_source(OWR_MEDIA_RENDERER(m_audioRenderer.get()), nullptr);
</span><span class="cx">     }
</span><del>-
</del><span class="cx">     if (m_videoTrack) {
</span><span class="cx">         GST_DEBUG(&quot;Stop: disconnecting video&quot;);
</span><del>-        g_object_set(m_videoRenderer.get(), &quot;disabled&quot;, true, nullptr);
</del><ins>+        g_object_set(m_videoRenderer.get(), &quot;disabled&quot;, TRUE, nullptr);
</ins><span class="cx">         owr_media_renderer_set_source(OWR_MEDIA_RENDERER(m_videoRenderer.get()), nullptr);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void MediaPlayerPrivateGStreamerOwr::stop()
-{
-    disableMediaTracks();
-    if (m_videoTrack) {
-        auto videoTrack = m_videoTrackMap.get(m_videoTrack-&gt;id());
-        if (videoTrack)
-            videoTrack-&gt;setSelected(false);
-    }
-}
-
</del><span class="cx"> void MediaPlayerPrivateGStreamerOwr::registerMediaEngine(MediaEngineRegistrar registrar)
</span><span class="cx"> {
</span><span class="cx">     if (initializeGStreamerAndGStreamerDebugging()) {
</span><span class="lines">@@ -349,25 +327,9 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (&amp;track == m_audioTrack)
</span><del>-        g_object_set(m_audioRenderer.get(), &quot;disabled&quot;, true, nullptr);
-    else if (&amp;track == m_videoTrack) {
-        g_object_set(m_videoRenderer.get(), &quot;disabled&quot;, true, nullptr);
-        auto&amp; realTimeMediaSource = static_cast&lt;RealtimeMediaSourceOwr&amp;&gt;(m_videoTrack-&gt;source());
-        realTimeMediaSource.setWidth(0);
-        realTimeMediaSource.setHeight(0);
-        auto videoTrack = m_videoTrackMap.get(m_videoTrack-&gt;id());
-        if (videoTrack)
-            videoTrack-&gt;setSelected(false);
-    }
-
-    bool audioDisabled;
-    bool videoDisabled;
-    g_object_get(m_audioRenderer.get(), &quot;disabled&quot;, &amp;audioDisabled, nullptr);
-    g_object_get(m_videoRenderer.get(), &quot;disabled&quot;, &amp;videoDisabled, nullptr);
-    if (audioDisabled &amp;&amp; videoDisabled) {
-        m_ended = true;
-        m_player-&gt;timeChanged();
-    }
</del><ins>+        g_object_set(m_audioRenderer.get(), &quot;disabled&quot;, TRUE, nullptr);
+    else if (&amp;track == m_videoTrack)
+        g_object_set(m_videoRenderer.get(), &quot;disabled&quot;, TRUE, nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void MediaPlayerPrivateGStreamerOwr::trackMutedChanged(MediaStreamTrackPrivate&amp; track)
</span><span class="lines">@@ -417,17 +379,7 @@
</span><span class="cx"> void MediaPlayerPrivateGStreamerOwr::trackEnabledChanged(MediaStreamTrackPrivate&amp; track)
</span><span class="cx"> {
</span><span class="cx">     GST_DEBUG(&quot;%s track now %s&quot;, track.type() == RealtimeMediaSource::Audio ? &quot;audio&quot;:&quot;video&quot;, track.enabled() ? &quot;enabled&quot;:&quot;disabled&quot;);
</span><del>-
-    switch (track.type()) {
-    case RealtimeMediaSource::Audio:
-        g_object_set(m_audioRenderer.get(), &quot;disabled&quot;, !track.enabled(), nullptr);
-        break;
-    case RealtimeMediaSource::Video:
-        g_object_set(m_videoRenderer.get(), &quot;disabled&quot;, !track.enabled(), nullptr);
-        break;
-    case RealtimeMediaSource::None:
-        GST_WARNING(&quot;Trying to change enabled state of a track with None type&quot;);
-    }
</del><ins>+    maybeHandleChangeMutedState(track);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> GstElement* MediaPlayerPrivateGStreamerOwr::createVideoSink()
</span><span class="lines">@@ -474,25 +426,8 @@
</span><span class="cx">     MediaPlayerPrivateGStreamerBase::setSize(size);
</span><span class="cx">     if (m_videoRenderer)
</span><span class="cx">         g_object_set(m_videoRenderer.get(), &quot;width&quot;, size.width(), &quot;height&quot;, size.height(), nullptr);
</span><del>-
-    auto&amp; realTimeMediaSource = static_cast&lt;RealtimeMediaSourceOwr&amp;&gt;(m_videoTrack-&gt;source());
-    realTimeMediaSource.setWidth(size.width());
-    realTimeMediaSource.setHeight(size.height());
</del><span class="cx"> }
</span><span class="cx"> 
</span><del>-FloatSize MediaPlayerPrivateGStreamerOwr::naturalSize() const
-{
-    auto size = MediaPlayerPrivateGStreamerBase::naturalSize();
-
-    // In case we are not playing the video we return the size we set to the media source.
-    if (size.isZero()) {
-        auto&amp; realTimeMediaSource = static_cast&lt;RealtimeMediaSourceOwr&amp;&gt;(m_videoTrack-&gt;source());
-        return realTimeMediaSource.size();
-    }
-
-    return size;
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(VIDEO) &amp;&amp; ENABLE(MEDIA_STREAM) &amp;&amp; USE(GSTREAMER) &amp;&amp; USE(OPENWEBRTC)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamerMediaPlayerPrivateGStreamerOwrh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -22,10 +22,8 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(VIDEO) &amp;&amp; ENABLE(MEDIA_STREAM) &amp;&amp; USE(GSTREAMER) &amp;&amp; USE(OPENWEBRTC)
</span><span class="cx"> 
</span><del>-#include &quot;AudioTrackPrivateMediaStream.h&quot;
</del><span class="cx"> #include &quot;MediaPlayerPrivateGStreamerBase.h&quot;
</span><span class="cx"> #include &quot;MediaStreamTrackPrivate.h&quot;
</span><del>-#include &quot;VideoTrackPrivateMediaStream.h&quot;
</del><span class="cx"> 
</span><span class="cx"> typedef struct _OwrGstVideoRenderer OwrGstVideoRenderer;
</span><span class="cx"> typedef struct _OwrGstAudioRenderer OwrGstAudioRenderer;
</span><span class="lines">@@ -44,8 +42,6 @@
</span><span class="cx"> 
</span><span class="cx">     void setSize(const IntSize&amp;) final;
</span><span class="cx"> 
</span><del>-    FloatSize naturalSize() const final;
-
</del><span class="cx"> private:
</span><span class="cx">     GstElement* createVideoSink() final;
</span><span class="cx">     GstElement* audioSink() const final { return m_audioSink.get(); }
</span><span class="lines">@@ -91,7 +87,6 @@
</span><span class="cx"> 
</span><span class="cx">     bool canLoadPoster() const final { return false; }
</span><span class="cx">     void setPoster(const String&amp;) final { }
</span><del>-    bool ended() const final { return m_ended; }
</del><span class="cx"> 
</span><span class="cx">     // MediaStreamTrackPrivate::Observer implementation.
</span><span class="cx">     void trackEnded(MediaStreamTrackPrivate&amp;) final;
</span><span class="lines">@@ -106,10 +101,8 @@
</span><span class="cx">     void loadingFailed(MediaPlayer::NetworkState error);
</span><span class="cx">     void stop();
</span><span class="cx">     void maybeHandleChangeMutedState(MediaStreamTrackPrivate&amp;);
</span><del>-    void disableMediaTracks();
</del><span class="cx"> 
</span><span class="cx">     bool m_paused { true };
</span><del>-    bool m_ended { false };
</del><span class="cx">     RefPtr&lt;MediaStreamTrackPrivate&gt; m_videoTrack;
</span><span class="cx">     RefPtr&lt;MediaStreamTrackPrivate&gt; m_audioTrack;
</span><span class="cx">     GRefPtr&lt;GstElement&gt; m_audioSink;
</span><span class="lines">@@ -116,9 +109,6 @@
</span><span class="cx">     RefPtr&lt;MediaStreamPrivate&gt; m_streamPrivate;
</span><span class="cx">     GRefPtr&lt;OwrGstVideoRenderer&gt; m_videoRenderer;
</span><span class="cx">     GRefPtr&lt;OwrGstAudioRenderer&gt; m_audioRenderer;
</span><del>-
-    HashMap&lt;String, RefPtr&lt;AudioTrackPrivateMediaStream&gt;&gt; m_audioTrackMap;
-    HashMap&lt;String, RefPtr&lt;VideoTrackPrivateMediaStream&gt;&gt; m_videoTrackMap;
</del><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcMediaEndpointOwrcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -39,8 +39,7 @@
</span><span class="cx"> #include &quot;OpenWebRTCUtilities.h&quot;
</span><span class="cx"> #include &quot;PeerConnectionStates.h&quot;
</span><span class="cx"> #include &quot;RTCDataChannelHandler.h&quot;
</span><del>-#include &quot;RealtimeAudioSourceOwr.h&quot;
-#include &quot;RealtimeVideoSourceOwr.h&quot;
</del><ins>+#include &quot;RealtimeMediaSourceOwr.h&quot;
</ins><span class="cx"> #include &lt;owr/owr.h&gt;
</span><span class="cx"> #include &lt;owr/owr_audio_payload.h&gt;
</span><span class="cx"> #include &lt;owr/owr_crypto_utils.h&gt;
</span><span class="lines">@@ -351,21 +350,15 @@
</span><span class="cx"> {
</span><span class="cx">     String name;
</span><span class="cx">     String id(&quot;not used&quot;);
</span><del>-    RefPtr&lt;RealtimeMediaSourceOwr&gt; source;
</del><span class="cx"> 
</span><span class="cx">     switch (type) {
</span><del>-    case RealtimeMediaSource::Audio:
-        name = &quot;remote audio&quot;;
-        source = adoptRef(new RealtimeAudioSourceOwr(nullptr, id, type, name));
-        break;
-    case RealtimeMediaSource::Video:
-        name = &quot;remote video&quot;;
-        source = adoptRef(new RealtimeVideoSourceOwr(nullptr, id, type, name));
-        break;
</del><ins>+    case RealtimeMediaSource::Audio: name = &quot;remote audio&quot;; break;
+    case RealtimeMediaSource::Video: name = &quot;remote video&quot;; break;
</ins><span class="cx">     case RealtimeMediaSource::None:
</span><span class="cx">         ASSERT_NOT_REACHED();
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    RefPtr&lt;RealtimeMediaSourceOwr&gt; source = adoptRef(new RealtimeMediaSourceOwr(nullptr, id, type, name));
</ins><span class="cx">     m_mutedRemoteSources.set(mid, source);
</span><span class="cx"> 
</span><span class="cx">     return *source;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeAudioSourceOwrh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeAudioSourceOwr.h        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -1,70 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015,2016 Igalia S.L
- * Copyright (C) 2015 Metrological
- *
- * 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 the copyright holder 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
- * &quot;AS IS&quot; 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
- * HOLDER 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.
- */
-
-#pragma once
-
-#if ENABLE(MEDIA_STREAM) &amp;&amp; USE(OPENWEBRTC)
-
-#include &quot;RealtimeMediaSourceOwr.h&quot;
-
-namespace WebCore {
-
-class RealtimeAudioSourceOwr : public RealtimeMediaSourceOwr {
-public:
-RealtimeAudioSourceOwr(OwrMediaSource* mediaSource, const String&amp; id, RealtimeMediaSource::Type type, const String&amp; name)
-    : RealtimeMediaSourceOwr(mediaSource, id, type, name)
-    {
-    }
-
-RealtimeAudioSourceOwr(const String&amp; id, RealtimeMediaSource::Type type, const String&amp; name)
-    : RealtimeMediaSourceOwr(id, type, name)
-    {
-    }
-
-    virtual ~RealtimeAudioSourceOwr() { }
-
-    bool applySize(const IntSize&amp;) final { return false; }
-
-protected:
-    void initializeSettings() final {
-        if (m_currentSettings.deviceId().isEmpty())
-            m_currentSettings.setSupportedConstraits(supportedConstraints());
-
-        m_currentSettings.setDeviceId(id());
-    }
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM) &amp;&amp; USE(OPENWEBRTC)
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceCenterOwrcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -40,9 +40,7 @@
</span><span class="cx"> #include &quot;MediaStreamPrivate.h&quot;
</span><span class="cx"> #include &quot;NotImplemented.h&quot;
</span><span class="cx"> #include &quot;OpenWebRTCUtilities.h&quot;
</span><del>-#include &quot;RealtimeAudioSourceOwr.h&quot;
</del><span class="cx"> #include &quot;RealtimeMediaSourceCapabilities.h&quot;
</span><del>-#include &quot;RealtimeVideoSourceOwr.h&quot;
</del><span class="cx"> #include &quot;UUID.h&quot;
</span><span class="cx"> #include &lt;owr/owr.h&gt;
</span><span class="cx"> #include &lt;owr/owr_local.h&gt;
</span><span class="lines">@@ -151,11 +149,7 @@
</span><span class="cx">             ASSERT_NOT_REACHED();
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        RefPtr&lt;RealtimeMediaSourceOwr&gt; mediaSource;
-        if (mediaSourceType == RealtimeMediaSource::Audio)
-            mediaSource = adoptRef(new RealtimeAudioSourceOwr(source, id, mediaSourceType, sourceName));
-        else
-            mediaSource = adoptRef(new RealtimeVideoSourceOwr(source, id, mediaSourceType, sourceName));
</del><ins>+        auto mediaSource = adoptRef(*new RealtimeMediaSourceOwr(source, id, mediaSourceType, sourceName));
</ins><span class="cx"> 
</span><span class="cx">         RealtimeMediaSourceOwrMap::iterator sourceIterator = m_sourceMap.find(id);
</span><span class="cx">         if (sourceIterator == m_sourceMap.end())
</span><span class="lines">@@ -162,10 +156,9 @@
</span><span class="cx">             m_sourceMap.add(id, mediaSource.copyRef());
</span><span class="cx"> 
</span><span class="cx">         if (mediaType &amp; OWR_MEDIA_TYPE_AUDIO)
</span><del>-            audioSources.append(mediaSource.releaseNonNull());
</del><ins>+            audioSources.append(WTFMove(mediaSource));
</ins><span class="cx">         else if (mediaType &amp; OWR_MEDIA_TYPE_VIDEO)
</span><del>-            videoSources.append(mediaSource.releaseNonNull());
-
</del><ins>+            videoSources.append(WTFMove(mediaSource));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (videoSources.isEmpty() &amp;&amp; audioSources.isEmpty())
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceOwrcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.cpp        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -1,60 +0,0 @@
</span><del>-/*
- * Copyright (C) 2016 Igalia S.L
- *
- * 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 the copyright holder 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
- * &quot;AS IS&quot; 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
- * HOLDER 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 &quot;config.h&quot;
-
-#if ENABLE(MEDIA_STREAM) &amp;&amp; USE(OPENWEBRTC)
-#include &quot;RealtimeMediaSourceOwr.h&quot;
-
-namespace WebCore {
-
-const RealtimeMediaSourceSettings&amp; RealtimeMediaSourceOwr::settings() const
-{
-    const_cast&lt;RealtimeMediaSourceOwr&amp;&gt;(*this).initializeSettings();
-    return m_currentSettings;
-}
-
-RealtimeMediaSourceSupportedConstraints&amp; RealtimeMediaSourceOwr::supportedConstraints()
-{
-    if (m_supportedConstraints.supportsDeviceId())
-        return m_supportedConstraints;
-
-    m_supportedConstraints.setSupportsDeviceId(true);
-    initializeSupportedConstraints(m_supportedConstraints);
-
-    return m_supportedConstraints;
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM) &amp;&amp; USE(OPENWEBRTC)
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeMediaSourceOwrh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeMediaSourceOwr.h        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -73,22 +73,13 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;RealtimeMediaSourceCapabilities&gt; capabilities() const override { return m_capabilities; }
</span><del>-    const RealtimeMediaSourceSettings&amp; settings() const override;
</del><ins>+    const RealtimeMediaSourceSettings&amp; settings() const override { return m_currentSettings; }
</ins><span class="cx"> 
</span><span class="cx">     OwrMediaSource* mediaSource() const { return m_mediaSource; }
</span><span class="cx"> 
</span><del>-protected:
-    virtual void initializeSettings() { };
-    virtual void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&amp;) { };
-    RealtimeMediaSourceSupportedConstraints&amp; supportedConstraints();
-
-    RealtimeMediaSourceSettings m_currentSettings;
-
</del><span class="cx"> private:
</span><del>-
-    RealtimeMediaSourceSupportedConstraints m_supportedConstraints;
</del><span class="cx">     RefPtr&lt;RealtimeMediaSourceCapabilities&gt; m_capabilities;
</span><del>-
</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="trunkSourceWebCoreplatformmediastreamopenwebrtcRealtimeVideoSourceOwrh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h (209967 => 209968)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h        2016-12-17 19:18:12 UTC (rev 209967)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/RealtimeVideoSourceOwr.h        2016-12-17 19:32:45 UTC (rev 209968)
</span><span class="lines">@@ -1,82 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015,2016 Igalia S.L
- * Copyright (C) 2015 Metrological
- *
- * 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 the copyright holder 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
- * &quot;AS IS&quot; 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
- * HOLDER 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.
- */
-
-#pragma once
-
-#if ENABLE(MEDIA_STREAM) &amp;&amp; USE(OPENWEBRTC)
-
-#include &quot;RealtimeMediaSourceOwr.h&quot;
-
-namespace WebCore {
-
-class RealtimeVideoSourceOwr : public RealtimeMediaSourceOwr {
-public:
-RealtimeVideoSourceOwr(OwrMediaSource* mediaSource, const String&amp; id, RealtimeMediaSource::Type type, const String&amp; name)
-    : RealtimeMediaSourceOwr(mediaSource, id, type, name)
-    {
-    }
-
-RealtimeVideoSourceOwr(const String&amp; id, RealtimeMediaSource::Type type, const String&amp; name)
-    : RealtimeMediaSourceOwr(id, type, name)
-    {
-    }
-
-    virtual ~RealtimeVideoSourceOwr() { }
-
-    bool applySize(const IntSize&amp;) final { return true; }
-
-protected:
-    void initializeSettings() final {
-        if (m_currentSettings.deviceId().isEmpty())
-            m_currentSettings.setSupportedConstraits(supportedConstraints());
-
-        m_currentSettings.setDeviceId(id());
-
-        m_currentSettings.setFrameRate(frameRate());
-        m_currentSettings.setWidth(size().width());
-        m_currentSettings.setHeight(size().height());
-    }
-
-    void initializeSupportedConstraints(RealtimeMediaSourceSupportedConstraints&amp; supportedConstraints) final {
-        supportedConstraints.setSupportsFacingMode(RealtimeMediaSourceSettings::Unknown);
-        supportedConstraints.setSupportsWidth(true);
-        supportedConstraints.setSupportsHeight(true);
-        supportedConstraints.setSupportsAspectRatio(true);
-        supportedConstraints.setSupportsFrameRate(true);
-    }
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM) &amp;&amp; USE(OPENWEBRTC)
</del></span></pre>
</div>
</div>

</body>
</html>