RESOLVED FIXED 190036
[GStreamer][MSE] Ubuntu LTS build broken since r236409
https://bugs.webkit.org/show_bug.cgi?id=190036
Summary [GStreamer][MSE] Ubuntu LTS build broken since r236409
Philippe Normand
Reported 2018-09-27 06:36:51 PDT
FAILED: /usr/lib/ccache/clang++ -DBUILDING_GTK__=1 -DBUILDING_WEBKIT -DBUILDING_WITH_CMAKE=1 -DBUILDING_WebCore -DENABLE_OPENTYPE_MATH=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_GLIB_API_ENABLED -DSTATICALLY_LINKED_WITH_PAL=1 -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -I. -I../../Source/WebCore -I../../Source/WebCore/Modules/airplay -I../../Source/WebCore/Modules/beacon -I../../Source/WebCore/Modules/applepay -I../../Source/WebCore/Modules/applepay/paymentrequest -I../../Source/WebCore/Modules/cache -I../../Source/WebCore/Modules/credentialmanagement -I../../Source/WebCore/Modules/encryptedmedia -I../../Source/WebCore/Modules/encryptedmedia/legacy -I../../Source/WebCore/Modules/entriesapi -I../../Source/WebCore/Modules/fetch -I../../Source/WebCore/Modules/geolocation -I../../Source/WebCore/Modules/indexeddb -I../../Source/WebCore/Modules/indexeddb/client -I../../Source/WebCore/Modules/indexeddb/server -I../../Source/WebCore/Modules/indexeddb/shared -I../../Source/WebCore/Modules/mediacapabilities -I../../Source/WebCore/Modules/mediacontrols -I../../Source/WebCore/Modules/mediasession -I../../Source/WebCore/Modules/mediasource -I../../Source/WebCore/Modules/mediastream -I../../Source/WebCore/Modules/navigatorcontentutils -I../../Source/WebCore/Modules/notifications -I../../Source/WebCore/Modules/paymentrequest -I../../Source/WebCore/Modules/plugins -I../../Source/WebCore/Modules/quota -I../../Source/WebCore/Modules/speech -I../../Source/WebCore/Modules/streams -I../../Source/WebCore/Modules/webaudio -I../../Source/WebCore/Modules/webauthn -I../../Source/WebCore/Modules/webdatabase -I../../Source/WebCore/Modules/webdriver -I../../Source/WebCore/Modules/websockets -I../../Source/WebCore/Modules/webvr -I../../Source/WebCore/accessibility -I../../Source/WebCore/animation -I../../Source/WebCore/bindings -I../../Source/WebCore/bindings/js -I../../Source/WebCore/bridge -I../../Source/WebCore/bridge/c -I../../Source/WebCore/bridge/jsc -I../../Source/WebCore/contentextensions -I../../Source/WebCore/crypto -I../../Source/WebCore/crypto/algorithms -I../../Source/WebCore/crypto/keys -I../../Source/WebCore/crypto/parameters -I../../Source/WebCore/css -I../../Source/WebCore/css/parser -I../../Source/WebCore/cssjit -I../../Source/WebCore/dom -I../../Source/WebCore/dom/default -I../../Source/WebCore/dom/messageports -I../../Source/WebCore/domjit -I../../Source/WebCore/editing -I../../Source/WebCore/fileapi -I../../Source/WebCore/history -I../../Source/WebCore/html -I../../Source/WebCore/html/canvas -I../../Source/WebCore/html/forms -I../../Source/WebCore/html/parser -I../../Source/WebCore/html/shadow -I../../Source/WebCore/html/track -I../../Source/WebCore/inspector -I../../Source/WebCore/inspector/agents -I../../Source/WebCore/inspector/agents/page -I../../Source/WebCore/inspector/agents/worker -I../../Source/WebCore/loader -I../../Source/WebCore/loader/appcache -I../../Source/WebCore/loader/archive -I../../Source/WebCore/loader/archive/mhtml -I../../Source/WebCore/loader/cache -I../../Source/WebCore/loader/icon -I../../Source/WebCore/mathml -I../../Source/WebCore/page -I../../Source/WebCore/page/animation -I../../Source/WebCore/page/csp -I../../Source/WebCore/page/scrolling -I../../Source/WebCore/platform -I../../Source/WebCore/platform/animation -I../../Source/WebCore/platform/audio -I../../Source/WebCore/platform/crypto -I../../Source/WebCore/platform/encryptedmedia -I../../Source/WebCore/platform/gamepad -I../../Source/WebCore/platform/graphics -I../../Source/WebCore/platform/graphics/cpu/arm -I../../Source/WebCore/platform/graphics/cpu/arm/filters -I../../Source/WebCore/platform/graphics/displaylists -I../../Source/WebCore/platform/graphics/filters -I../../Source/WebCore/platform/graphics/harfbuzz -I../../Source/WebCore/platform/graphics/harfbuzz/ng -I../../Source/WebCore/platform/graphics/iso -I../../Source/WebCore/platform/graphics/opentype -I../../Source/WebCore/platform/graphics/transforms -I../../Source/WebCore/platform/mediastream -I../../Source/WebCore/platform/mediastream/libwebrtc -I../../Source/WebCore/platform/mock -I../../Source/WebCore/platform/mock/mediasource -I../../Source/WebCore/platform/network -I../../Source/WebCore/platform/sql -I../../Source/WebCore/platform/text -I../../Source/WebCore/platform/text/icu -I../../Source/WebCore/platform/vr -I../../Source/WebCore/plugins -I../../Source/WebCore/rendering -I../../Source/WebCore/rendering/line -I../../Source/WebCore/rendering/mathml -I../../Source/WebCore/rendering/shapes -I../../Source/WebCore/rendering/style -I../../Source/WebCore/rendering/svg -I../../Source/WebCore/rendering/updating -I../../Source/WebCore/replay -I../../Source/WebCore/storage -I../../Source/WebCore/style -I../../Source/WebCore/svg -I../../Source/WebCore/svg/animation -I../../Source/WebCore/svg/graphics -I../../Source/WebCore/svg/graphics/filters -I../../Source/WebCore/svg/properties -I../../Source/WebCore/websockets -I../../Source/WebCore/workers -I../../Source/WebCore/workers/service -I../../Source/WebCore/workers/service/context -I../../Source/WebCore/workers/service/server -I../../Source/WebCore/xml -I../../Source/WebCore/xml/parser -IDerivedSources/WebCore -IDerivedSources/ForwardingHeaders/ANGLE -I../../Source/WebCore/platform/graphics/gpu -I../../Source/ThirdParty/xdgmime/src -I../../Source/WebCore/platform/graphics/cairo -I../../Source/WebCore/platform/graphics/freetype -I../../Source/WebCore/platform/graphics/gstreamer -I../../Source/WebCore/platform/graphics/gstreamer/mse -I../../Source/WebCore/platform/graphics/gstreamer/eme -I../../Source/WebCore/platform/audio/gstreamer -I../../Source/WebCore/platform/image-decoders -I../../Source/WebCore/platform/image-decoders/bmp -I../../Source/WebCore/platform/image-decoders/gif -I../../Source/WebCore/platform/image-decoders/ico -I../../Source/WebCore/platform/image-decoders/jpeg -I../../Source/WebCore/platform/image-decoders/png -I../../Source/WebCore/platform/image-decoders/webp -I../../Source/WebCore/platform/graphics/texmap -I../../Source/WebCore/page/scrolling/coordinatedgraphics -I../../Source/WebCore/platform/graphics/texmap/coordinated -I../../Source/WebCore/platform/graphics/nicosia -I../../Source/WebCore/platform/graphics/nicosia/cairo -I../../Source/WebCore/platform/graphics/nicosia/texmap -I../../Source/ThirdParty/ANGLE -I../../Source/ThirdParty/ANGLE/include/KHR -I../../Source/WebCore/accessibility/atk -I../../Source/WebCore/editing/atk -I../../Source/WebCore/page/gtk -I../../Source/WebCore/platform/geoclue -I../../Source/WebCore/platform/gtk -I../../Source/WebCore/platform/graphics/egl -I../../Source/WebCore/platform/graphics/glx -I../../Source/WebCore/platform/graphics/gtk -I../../Source/WebCore/platform/graphics/opengl -I../../Source/WebCore/platform/graphics/wayland -I../../Source/WebCore/platform/graphics/x11 -I../../Source/WebCore/platform/mediacapabilities -I../../Source/WebCore/platform/mediastream/gtk -I../../Source/WebCore/platform/mediastream/gstreamer -I../../Source/WebCore/platform/network/gtk -I../../Source/WebCore/platform/network/soup -I../../Source/WebCore/platform/text/gtk -I../../Source/WebCore/bindings/gobject -isystem /usr/include/libxml2 -isystem /usr/include/cairo -isystem /usr/include/freetype2 -isystem /usr/include/x86_64-linux-gnu/freetype2 -isystem /usr/include/harfbuzz -isystem /usr/include/gstreamer-1.0 -isystem /usr/lib/x86_64-linux-gnu/gstreamer-1.0/include -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/atk-1.0 -isystem /usr/include/enchant -isystem /usr/include/gio-unix-2.0 -isystem /usr/include/libsecret-1 -isystem /usr/include/libsoup-2.4 -IDerivedSources/ForwardingHeaders -I../../Source/bmalloc -IDerivedSources -I../../Source/ThirdParty -fdiagnostics-color=always -fcolor-diagnostics -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wextra -Wall -fno-strict-aliasing -fno-exceptions -fno-rtti -std=c++14 -O3 -DNDEBUG -fPIC -MMD -MT Source/WebCore/CMakeFiles/WebCore.dir/platform/graphics/gstreamer/mse/AppendPipeline.cpp.o -MF Source/WebCore/CMakeFiles/WebCore.dir/platform/graphics/gstreamer/mse/AppendPipeline.cpp.o.d -o Source/WebCore/CMakeFiles/WebCore.dir/platform/graphics/gstreamer/mse/AppendPipeline.cpp.o -c ../../Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp ../../Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:745:32: error: use of undeclared identifier 'gst_app_sink_try_pull_sample'; did you mean 'gst_app_src_push_sample'? while ((sample = adoptGRef(gst_app_sink_try_pull_sample(((((GstAppSink*) g_type_check_instance_cast ((GTypeInstance*) ((m_appsink.get())), ((gst_app_sink_get_type())))))), 0)))) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ gst_app_src_push_sample /usr/include/gstreamer-1.0/gst/app/gstappsrc.h:146:15: note: 'gst_app_src_push_sample' declared here GstFlowReturn gst_app_src_push_sample (GstAppSrc *appsrc, GstSample *sample); ^ ../../Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp:745:61: error: cannot initialize a parameter of type 'GstAppSrc *' (aka '_GstAppSrc *') with an rvalue of type 'GstAppSink *' (aka '_GstAppSink *') while ((sample = adoptGRef(gst_app_sink_try_pull_sample(((((GstAppSink*) g_type_check_instance_cast ((GTypeInstance*) ((m_appsink.get())), ((gst_app_sink_get_type())))))), 0)))) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/gstreamer-1.0/gst/app/gstappsrc.h:146:51: note: passing argument to parameter 'appsrc' here GstFlowReturn gst_app_src_push_sample (GstAppSrc *appsrc, GstSample *sample); ^ 2 errors generated. ../../Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:541:75: warning: equality comparison with extraneous parentheses [-Wparentheses-equality] if ((__builtin_expect (__extension__ ({ int _g_boolean_var_; if ((ret == GST_STATE_CHANGE_FAILURE)) _g_boolean_var_ = 1; else _g_boolean_var_ = 0; _g_boolean_var_; }), 0))) { ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:541:75: note: remove extraneous parentheses around the comparison to silence this warning if ((__builtin_expect (__extension__ ({ int _g_boolean_var_; if ((ret == GST_STATE_CHANGE_FAILURE)) _g_boolean_var_ = 1; else _g_boolean_var_ = 0; _g_boolean_var_; }), 0))) { ~ ^ ~ ../../Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:541:75: note: use '=' to turn this equality comparison into an assignment if ((__builtin_expect (__extension__ ({ int _g_boolean_var_; if ((ret == GST_STATE_CHANGE_FAILURE)) _g_boolean_var_ = 1; else _g_boolean_var_ = 0; _g_boolean_var_; }), 0))) { ^~ = 1 warning generated. ninja: build stopped: subcommand failed.
Attachments
Patch (1.62 KB, patch)
2018-10-02 00:29 PDT, Philippe Normand
mcatanzaro: review+
Philippe Normand
Comment 1 2018-09-27 06:38:05 PDT
gst_app_sink_try_pull_sample was added in gst 1.10, a GST_CHECK_VERSION ifdef is needed around... If gst 1.10 isn't found at build time then another approach should be used to pull samples from the sink...
Philippe Normand
Comment 2 2018-09-27 07:11:34 PDT
After discussion in Matrix, the only viable solution seems to make MSE an experimental feature again and interrupt the build early if GStreamer >= 1.10 was not found.
Philippe Normand
Comment 3 2018-10-02 00:29:14 PDT
Michael Catanzaro
Comment 4 2018-10-02 00:41:40 PDT
Philippe Normand
Comment 5 2018-10-02 01:02:50 PDT
Radar WebKit Bug Importer
Comment 6 2018-10-02 01:03:28 PDT
Olivier Blin
Comment 7 2018-10-02 02:28:26 PDT
Your comments and the GStreamer doc mention GStreamer 1.10 for gst_app_sink_try_pull_sample(), but your patch requires 1.14. Could we lower the requirement to 1.10?
Philippe Normand
Comment 8 2018-10-02 02:40:55 PDT
(In reply to Olivier Blin from comment #7) > Your comments and the GStreamer doc mention GStreamer 1.10 for > gst_app_sink_try_pull_sample(), Right > but your patch requires 1.14. > > Could we lower the requirement to 1.10? I'm afraid not. While the MSE backend would still compile, I don't think it would work at runtime, due to MSE bugs that were fixed in 1.14.
Note You need to log in before you can comment on or make changes to this bug.