[Webkit-unassigned] [Bug 196691] [GStreamer] gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed in WebCore::MediaPlayerPrivateGStreamer::paused
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Apr 24 10:01:32 PDT 2019
https://bugs.webkit.org/show_bug.cgi?id=196691
--- Comment #12 from Eric Carlson <eric.carlson at apple.com> ---
>
> Yeah that's indeed the issue. Our supportsType() returns IsNotSupported for
> image/gif but the MediaPlayer creates a GStreamer MediaPlayerPrivate anyway
> and tries to load that asset.
>
> Eric, this looks like a bug in MediaPlayer::loadWithNextMediaEngine():
>
>
> // If no MIME type is specified or the type was inferred from the file
> extension, just use the next engine.
> if (!engine && (m_contentType.isEmpty() ||
> m_contentMIMETypeWasInferredFromExtension))
> engine = nextMediaEngine(current);
>
> m_contentType is not empty but m_contentMIMETypeWasInferredFromExtension is
> true, so the next engine is loaded, regardless of the supportsType() result.
It does this on the assumption that because media file extensions are such a mess (e.g. look at the number of synonyms for "video/mpeg" in MIMETypeRegistry.cpp), it is better to let the media engine look at the file in the absence of a MIME type.
> If this code has to remain, I think it would be good that MediaPlayerPrivate::load() methods return a bool result. WDYT?
That would require MediaPlayerPrivate::load to be synchronous, which is usually impossible.
If the MediaPlayerPrivate calls MediaPlayer::networkStateChanged() with networkState >= FormatError and readyState < HaveMetadata, MediaPlayer will try with with the next media engine or pass the error to HTMLMediaElement if there are none.
--
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/20190424/05e86af7/attachment-0001.html>
More information about the webkit-unassigned
mailing list