<!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>[248521] 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/248521">248521</a></dd>
<dt>Author</dt> <dd>aboya@igalia.com</dd>
<dt>Date</dt> <dd>2019-08-11 09:21:25 -0700 (Sun, 11 Aug 2019)</dd>
</dl>

<h3>Log Message</h3>
<pre>[MSE][GStreamer] Don't use vorbisparse
https://bugs.webkit.org/show_bug.cgi?id=200622

Reviewed by Philippe Normand.

Source/WebCore:

This patch has been splitted from the original WebKitMediaSrc rework
patch (https://bugs.webkit.org/show_bug.cgi?id=199719).

Unlike other parsers, vorbisparse has latency (in the sense that when
it gets a chain call with a series of complete frames, it may not emit
the parsed frames until another chain in the future), which makes it
inappropriate for AppendPipeline, as there is no good way I know to
flush it.

But actually vorbisparse is not known to be necessary and it was only
introduced for consistency with other formats. Parsers are used in
AppendPipeline to reconstruct information that is lost due to poor
muxes. There have been no reported cases of this being a problem with
Vorbis in WebM, so I'm just removing the parser.

Fixes imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::createOptionalParserForFormat):

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="#trunkSourceWebCoreplatformgraphicsgstreamermseAppendPipelinecpp">trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (248520 => 248521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog      2019-08-11 14:34:55 UTC (rev 248520)
+++ trunk/LayoutTests/ChangeLog 2019-08-11 16:21:25 UTC (rev 248521)
</span><span class="lines">@@ -1,3 +1,12 @@
</span><ins>+2019-08-11  Alicia Boya García  <aboya@igalia.com>
+
+        [MSE][GStreamer] Don't use vorbisparse
+        https://bugs.webkit.org/show_bug.cgi?id=200622
+
+        Reviewed by Philippe Normand.
+
+        * platform/gtk/TestExpectations:
+
</ins><span class="cx"> 2019-08-10  Simon Fraser  <simon.fraser@apple.com>
</span><span class="cx"> 
</span><span class="cx">         REGRESSION (r245974): Missing content on habitburger.com, amazon.com
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/TestExpectations (248520 => 248521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/TestExpectations  2019-08-11 14:34:55 UTC (rev 248520)
+++ trunk/LayoutTests/platform/gtk/TestExpectations     2019-08-11 16:21:25 UTC (rev 248521)
</span><span class="lines">@@ -228,7 +228,6 @@
</span><span class="cx"> webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-buffered.html [ Failure ]
</span><span class="cx"> webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-changetype.html [ Failure Crash ]
</span><span class="cx"> webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html [ Failure ]
</span><del>-webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html [ Failure ]
</del><span class="cx"> webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html [ Failure Pass ]
</span><span class="cx"> # Crash is webkit.org/b/176020
</span><span class="cx"> webkit.org/b/167108 imported/w3c/web-platform-tests/media-source/mediasource-duration.html [ Failure Crash ]
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (248520 => 248521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog   2019-08-11 14:34:55 UTC (rev 248520)
+++ trunk/Source/WebCore/ChangeLog      2019-08-11 16:21:25 UTC (rev 248521)
</span><span class="lines">@@ -1,3 +1,30 @@
</span><ins>+2019-08-11  Alicia Boya García  <aboya@igalia.com>
+
+        [MSE][GStreamer] Don't use vorbisparse
+        https://bugs.webkit.org/show_bug.cgi?id=200622
+
+        Reviewed by Philippe Normand.
+
+        This patch has been splitted from the original WebKitMediaSrc rework
+        patch (https://bugs.webkit.org/show_bug.cgi?id=199719).
+
+        Unlike other parsers, vorbisparse has latency (in the sense that when
+        it gets a chain call with a series of complete frames, it may not emit
+        the parsed frames until another chain in the future), which makes it
+        inappropriate for AppendPipeline, as there is no good way I know to
+        flush it.
+
+        But actually vorbisparse is not known to be necessary and it was only
+        introduced for consistency with other formats. Parsers are used in
+        AppendPipeline to reconstruct information that is lost due to poor
+        muxes. There have been no reported cases of this being a problem with
+        Vorbis in WebM, so I'm just removing the parser.
+
+        Fixes imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html
+
+        * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+        (WebCore::createOptionalParserForFormat):
+
</ins><span class="cx"> 2019-08-11  Antti Koivisto  <antti@apple.com>
</span><span class="cx"> 
</span><span class="cx">         Factor complex line layout path out from RenderBlockFlow
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsgstreamermseAppendPipelinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (248520 => 248521)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp  2019-08-11 14:34:55 UTC (rev 248520)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp     2019-08-11 16:21:25 UTC (rev 248521)
</span><span class="lines">@@ -645,12 +645,6 @@
</span><span class="cx">         g_return_val_if_fail(opusparse, nullptr);
</span><span class="cx">         return GRefPtr<GstElement>(opusparse);
</span><span class="cx">     }
</span><del>-    if (!g_strcmp0(mediaType, "audio/x-vorbis")) {
-        GstElement* vorbisparse = gst_element_factory_make("vorbisparse", parserName.get());
-        ASSERT(vorbisparse);
-        g_return_val_if_fail(vorbisparse, nullptr);
-        return GRefPtr<GstElement>(vorbisparse);
-    }
</del><span class="cx">     if (!g_strcmp0(mediaType, "video/x-h264")) {
</span><span class="cx">         GstElement* h264parse = gst_element_factory_make("h264parse", parserName.get());
</span><span class="cx">         ASSERT(h264parse);
</span></span></pre>
</div>
</div>

</body>
</html>