Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog (188955 => 188956)
--- releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog 2015-08-26 08:03:04 UTC (rev 188955)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog 2015-08-26 08:04:25 UTC (rev 188956)
@@ -1,3 +1,18 @@
+2015-08-14 Philippe Normand <pnorm...@igalia.com>
+
+ [GStreamer] Handle missing plugins better at runtime
+ https://bugs.webkit.org/show_bug.cgi?id=146999
+
+ Reviewed by Carlos Garcia Campos.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Warn the
+ user if autoaudiosink wasn't found at runtime. In that case
+ playbin will try to be smart by itself, hopefully. Also moved a
+ couple GST_WARNING calls to WARN_MEDIA_MESSAGE.
+ (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Use
+ WARN_MEDIA_MESSAGE here as well.
+
2015-08-24 Jinyoung Hur <hur....@navercorp.com>
Clear cairo-gl surface for initialization
Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (188955 => 188956)
--- releases/WebKitGTK/webkit-2.10/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2015-08-26 08:03:04 UTC (rev 188955)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2015-08-26 08:04:25 UTC (rev 188956)
@@ -1858,6 +1858,11 @@
GstElement* MediaPlayerPrivateGStreamer::createAudioSink()
{
m_autoAudioSink = gst_element_factory_make("autoaudiosink", 0);
+ if (!m_autoAudioSink) {
+ WARN_MEDIA_MESSAGE("GStreamer's autoaudiosink not found. Please check your gst-plugins-good installation");
+ return nullptr;
+ }
+
g_signal_connect(m_autoAudioSink.get(), "child-added", G_CALLBACK(setAudioStreamPropertiesCallback), this);
GstElement* audioSinkBin;
@@ -1877,7 +1882,7 @@
if (m_preservesPitch) {
GstElement* scale = gst_element_factory_make("scaletempo", nullptr);
if (!scale) {
- GST_WARNING("Failed to create scaletempo");
+ WARN_MEDIA_MESSAGE("Failed to create scaletempo");
return m_autoAudioSink.get();
}
@@ -1895,7 +1900,7 @@
gst_bin_add_many(GST_BIN(audioSinkBin), convert, resample, m_autoAudioSink.get(), nullptr);
if (!gst_element_link_many(scale, convert, resample, m_autoAudioSink.get(), nullptr)) {
- GST_WARNING("Failed to link audio sink elements");
+ WARN_MEDIA_MESSAGE("Failed to link audio sink elements");
gst_object_unref(audioSinkBin);
return m_autoAudioSink.get();
}
@@ -1909,7 +1914,7 @@
return audioSinkBin;
#endif
ASSERT_NOT_REACHED();
- return 0;
+ return nullptr;
}
GstElement* MediaPlayerPrivateGStreamer::audioSink() const
@@ -1967,7 +1972,7 @@
GstElement* scale = gst_element_factory_make("scaletempo", 0);
if (!scale)
- GST_WARNING("Failed to create scaletempo");
+ WARN_MEDIA_MESSAGE("Failed to create scaletempo");
else
g_object_set(m_pipeline.get(), "audio-filter", scale, nullptr);
}