[Webkit-unassigned] [Bug 233230] [GStreamer] MediaPlayerPrivateGStreamer mishandles failure to create WebKitTextCombiner

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Nov 18 10:51:09 PST 2021


https://bugs.webkit.org/show_bug.cgi?id=233230

--- Comment #14 from Adrian Perez <aperez at igalia.com> ---
(In reply to Michael Catanzaro from comment #12)
> (In reply to Adrian Perez from comment #10)
> > This element comes from libgstdebugutilsbad.so, which is part of the
> > gstreamer1.0-plugins-bad Ubuntu package. It looks to me like a packaging
> > issue, and that distro packages should depend on -bad, not only recommend
> > it.
> 
> Well that's for Calvaris and the other WebKit/GStreamer developers to
> decide, certainly not for me. I have no strong opinion either way. I'm fine
> with changing Fedora's packaging to use Requires instead of Recommends if
> crashing is the desired behavior when the plugins are missing. But look at
> this:
> 
>     // The combiner relies on webvttenc, fail early if it's not there.
>     if (!isGStreamerPluginAvailable("subenc")) {
>         WTFLogAlways("WebKit wasn't able to find a WebVTT encoder. Not
> continuing without platform support for subtitles.");
>         return nullptr;
>     }
> 
> The existence of this check sort of implies the plugin is optional, and
> expected behavior if missing is to fail gracefully without crashing, right?
> Whichever strategy is adopted to handle missing GStreamer elements, the code
> should be consistent. I could be wrong, but I thought the strategy was that
> we can crash if base elements are missing, since WebKit cannot build without
> those, but -good or -bad elements use runtime checks since those could be
> easily forgotten by mistake. If the strategy is to always crash, that's fine
> too and I'll adjust our packaging.

I think that I did not manage to make my point clear earlier..

 * WebVTT (subtitles) support is optional, and as you correctly point out
   there is a runtime check on the “subenc“ element.

 * OTOH gst-plugins-bad is *NOT* optional because media elements which do
   not have video (I guess they are audio-only) will use “fakevideosink“
   unconditionally. Line 3428 in MediaPlayerPrivateGStreamer.cpp (frame #7)
   from the Very Good Indeed™ stacktrace is using makeGStreamerElement(),
   which will assert that the element was created.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20211118/951df521/attachment.htm>


More information about the webkit-unassigned mailing list