Title: [236736] releases/WebKitGTK/webkit-2.22/Source/WebCore
- Revision
- 236736
- Author
- ape...@igalia.com
- Date
- 2018-10-02 05:43:14 -0700 (Tue, 02 Oct 2018)
Log Message
Merge r236735 - [MSE][GStreamer] Add h264parse to accept MP4 without stss
https://bugs.webkit.org/show_bug.cgi?id=190143
Reviewed by Xabier Rodriguez-Calvar.
The MP4 file used in this URL does not contain a stss (Sync Sample
Box). In consequence, in acordance with the ISO BMFF spec, all samples
are assumed to be sync frames... But in this case that is not true,
it's just that the file is wrong (e.g. created with a buggy muxer).
http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=""
The way it works in other browsers is because instead of trusting the
MP4 stss table, they rely on parsing the h264 frames. We can do that
too.
This patch also changes RELEASE_ASSERT() when creating the parsers
to GLib criticals.
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::createOptionalParserForFormat):
Modified Paths
Diff
Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog (236735 => 236736)
--- releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog 2018-10-02 11:57:05 UTC (rev 236735)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/ChangeLog 2018-10-02 12:43:14 UTC (rev 236736)
@@ -1,3 +1,27 @@
+2018-10-02 Alicia Boya GarcĂa <ab...@igalia.com>
+
+ [MSE][GStreamer] Add h264parse to accept MP4 without stss
+ https://bugs.webkit.org/show_bug.cgi?id=190143
+
+ Reviewed by Xabier Rodriguez-Calvar.
+
+ The MP4 file used in this URL does not contain a stss (Sync Sample
+ Box). In consequence, in acordance with the ISO BMFF spec, all samples
+ are assumed to be sync frames... But in this case that is not true,
+ it's just that the file is wrong (e.g. created with a buggy muxer).
+
+ http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=""
+
+ The way it works in other browsers is because instead of trusting the
+ MP4 stss table, they rely on parsing the h264 frames. We can do that
+ too.
+
+ This patch also changes RELEASE_ASSERT() when creating the parsers
+ to GLib criticals.
+
+ * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+ (WebCore::createOptionalParserForFormat):
+
2018-10-02 Philippe Normand <pnorm...@igalia.com>
[GStreamer][playbin3] Stream tag lists leaks
Modified: releases/WebKitGTK/webkit-2.22/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp (236735 => 236736)
--- releases/WebKitGTK/webkit-2.22/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2018-10-02 11:57:05 UTC (rev 236735)
+++ releases/WebKitGTK/webkit-2.22/Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp 2018-10-02 12:43:14 UTC (rev 236736)
@@ -856,14 +856,22 @@
if (!g_strcmp0(mediaType, "audio/x-opus")) {
GstElement* opusparse = gst_element_factory_make("opusparse", parserName.get());
- RELEASE_ASSERT(opusparse);
+ g_return_val_if_fail(opusparse, nullptr);
+ ASSERT(opusparse);
return GRefPtr<GstElement>(opusparse);
}
if (!g_strcmp0(mediaType, "audio/x-vorbis")) {
GstElement* vorbisparse = gst_element_factory_make("vorbisparse", parserName.get());
- RELEASE_ASSERT(vorbisparse);
+ g_return_val_if_fail(vorbisparse, nullptr);
+ ASSERT(vorbisparse);
return GRefPtr<GstElement>(vorbisparse);
}
+ if (!g_strcmp0(mediaType, "video/x-h264")) {
+ GstElement* h264parse = gst_element_factory_make("h264parse", parserName.get());
+ g_return_val_if_fail(h264parse, nullptr);
+ ASSERT(h264parse);
+ return GRefPtr<GstElement>(h264parse);
+ }
return nullptr;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes