Modified: trunk/Source/WebCore/ChangeLog (222706 => 222707)
--- trunk/Source/WebCore/ChangeLog 2017-10-02 12:55:12 UTC (rev 222706)
+++ trunk/Source/WebCore/ChangeLog 2017-10-02 13:17:41 UTC (rev 222707)
@@ -1,3 +1,21 @@
+2017-10-02 Charles Turner <[email protected]>
+
+ Try to play AVC codec even if H.264 decoder only advertises byte-stream profile.
+ https://bugs.webkit.org/show_bug.cgi?id=177550
+
+ GStreamer's element factory filters will claim they can't play videos with AVC
+ codec strings, but the elements really are capable of playing them when filters
+ like videoconvert are inserted by playbin. Videos of this variety are in the YouTube
+ 2018 EME conformance tests.
+
+ Also replace std::array with a stack array, this saves having to count
+ the number of elements (the compiler does that now) and reduces braces.
+
+ Reviewed by Carlos Alberto Lopez Perez.
+
+ * platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
+ (WebCore::codecSet):
+
2017-10-02 Tomas Popela <[email protected]>
[SOUP] Default kerberos authentication credentials are used in ephemeral (private) mode
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp (222706 => 222707)
--- trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2017-10-02 12:55:12 UTC (rev 222706)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp 2017-10-02 13:17:41 UTC (rev 222707)
@@ -778,15 +778,14 @@
Vector<AtomicString> webkitCodecs;
};
- std::array<GstCapsWebKitMapping, 7> mapping = { {
- { VideoDecoder, "video/x-h264, profile="" constrained-baseline, baseline }", { "x-h264" } },
- { VideoDecoder, "video/x-h264, stream-format=avc", { "avc*"} },
+ GstCapsWebKitMapping mapping[] = {
+ { VideoDecoder, "video/x-h264, profile="" constrained-baseline, baseline }", { "x-h264", "avc*" } },
{ VideoDecoder, "video/mpeg, mpegversion=(int){1,2}, systemstream=(boolean)false", { "mpeg" } },
{ VideoDecoder, "video/x-vp8", { "vp8", "x-vp8" } },
{ VideoDecoder, "video/x-vp9", { "vp9", "x-vp9" } },
{ AudioDecoder, "audio/x-vorbis", { "vorbis", "x-vorbis" } },
{ AudioDecoder, "audio/x-opus", { "opus", "x-opus" } }
- } };
+ };
for (auto& current : mapping) {
GList* factories = nullptr;