Bug 146999

Summary: [GStreamer] Handle missing plugins better at runtime
Product: WebKit Reporter: Michael Catanzaro <mcatanzaro>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: cgarcia, mcatanzaro, pnormand
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Bug Depends on:    
Bug Blocks: 147000    
Attachments:
Description Flags
Backtrace
none
patch cgarcia: review+

Description Michael Catanzaro 2015-07-16 10:00:24 PDT
I see the following critical warnings when loading https://www.youtube.com/watch?v=nesCaocNjtQ using r186861:

(WebKitWebProcess:14021): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(WebKitWebProcess:14021): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(WebKitWebProcess:14021): GStreamer-CRITICAL **: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (dest)' failed

A backtrace to the first warning is attached.
Comment 1 Michael Catanzaro 2015-07-16 10:10:56 PDT
Created attachment 256906 [details]
Backtrace
Comment 2 Michael Catanzaro 2015-07-16 10:14:48 PDT
Note, I'm using GStreamer revision 6379b7a07b2212db39d26609635fb5b3b904c7d2 (on the 1.4 branch) but this issue has occurred for a long time.
Comment 3 Philippe Normand 2015-07-29 01:55:13 PDT
(In reply to comment #1)
> Created attachment 256906 [details]
> Backtrace

Looking at this trace it seems you don't have the autoaudiosink gst element. Can you check your gst-plugins-good jhbuild installation?

Within the JHBuild shell this should show a description of the element:

gst-inspect-1.0 autoaudiosink
Comment 4 Michael Catanzaro 2015-07-29 07:57:04 PDT
Indeed, thanks Philippe:

$ gst-inspect-1.0 autoaudiosink
No such element or plugin 'autoaudiosink'

Looks like the problem is that we do not depend on gst-plugins-good in GNOME jhbuild, only on gst-plugins-base. Also, our CMake build system clearly does not require it. Is gst-plugins-good mandatory, then? Should we require it at build time, or allow building without it and handle the failure better runtime?
Comment 5 Philippe Normand 2015-07-29 08:23:58 PDT
(In reply to comment #4)
> Indeed, thanks Philippe:
> 
> $ gst-inspect-1.0 autoaudiosink
> No such element or plugin 'autoaudiosink'
> 
> Looks like the problem is that we do not depend on gst-plugins-good in GNOME
> jhbuild, only on gst-plugins-base. Also, our CMake build system clearly does
> not require it. Is gst-plugins-good mandatory, then? Should we require it at
> build time, or allow building without it and handle the failure better
> runtime?

I don't think we should require it in CMake, -good doesn't provide any library, only plugins. But we should provide better runtime support indeed, handle failures better, like you suggest :)
Comment 6 Philippe Normand 2015-08-14 08:20:16 PDT
Created attachment 259001 [details]
patch
Comment 7 Carlos Garcia Campos 2015-08-14 09:10:16 PDT
Comment on attachment 259001 [details]
patch

Thanks!
Comment 8 Philippe Normand 2015-08-14 09:33:10 PDT
Committed r188472: <http://trac.webkit.org/changeset/188472>