RESOLVED WONTFIX136450
[GStreamer] GST_STREAM_ERROR_TYPE_NOT_FOUND errors are skipped
https://bugs.webkit.org/show_bug.cgi?id=136450
Summary [GStreamer] GST_STREAM_ERROR_TYPE_NOT_FOUND errors are skipped
Fabien Vallée
Reported 2014-09-02 05:41:37 PDT
Tested on linux / gtk port / gstreamer 1.4.0 but same issue was already there long time ago in Qt port / gstreamer 0.10.19 (code is very old, http://trac.webkit.org/changeset/83598). When gstreamer send "GST_STREAM_ERROR_TYPE_NOT_FOUND" error, the error is skipped (= not reported to the MediaPlayerClient) http://trac.webkit.org/browser/releases/WebKitGTK/webkit-2.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp?annotate=blame&rev=172912#L1027 Definition of stalled event is : "The user agent is trying to fetch media data, but data is unexpectedly not forthcoming" http://www.w3.org/TR/2011/WD-html5-20110113/video.html#event-media-stalled Definition of GST_STREAM_ERROR_TYPE_NOT_FOUND is "used when the element doesn't know the stream's type." http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html GST_STREAM_ERROR_TYPE_NOT_FOUND doesn't seems related to "data is unexpectedly not forthcoming". I don't know why GST_STREAM_ERROR_TYPE_NOT_FOUND was chosen, but the code is very very old, so maybe gst was lacking some error type back then. Anyway this cause troubles: when gstreamer try to play an invalid video, it will usually trigger GST_STREAM_ERROR_TYPE_NOT_FOUND. I didn't find any 'stalled' related regression test, but in LayoutTests/media/broken-video.html, playback of LayoutTests/media/content/garbage.mp4 triggers 2 errors: Error 4: Could not determine type of stream. (url=file:///xxxx/LayoutTests/media/content/garbage.mp4) GST_STREAM_ERROR: 4, Could not determine type of stream. Decode error, let the Media element emit a stalled event. Error 1: GStreamer encountered a general stream error. (url=file:///xxxx/LayoutTests/media/content/garbage.mp4) GST_STREAM_ERROR: 1, GStreamer encountered a general stream error. First error (GST_STREAM_ERROR: 4) is skipped, but second error (GST_STREAM_ERROR: 1) is handled and the test can pass (but only because of the second error). However if I change the video src to another invalid video (http://itv.mit-xperts.com/hbbtvtest/playerevents/novideo.php/video.mp4), only "GST_STREAM_ERROR: 4, Could not determine type of stream" error is triggered. As GST_STREAM_ERROR_TYPE_NOT_FOUND is skipped, the error event is never triggered and the test timeout. Same test (using modified video src) works fine using chromium (Version 36.0.1985.125 (283153)) and opera 12.16.
Attachments
based on LayoutTest/media/broken-video.html only changed the video src (624 bytes, text/html)
2014-09-02 05:45 PDT, Fabien Vallée
no flags
Fabien Vallée
Comment 1 2014-09-02 05:45:52 PDT
Created attachment 237484 [details] based on LayoutTest/media/broken-video.html only changed the video src test can pass using chromium (Version 36.0.1985.125 (283153)) and opera 12.16. Fails (timeout, no event triggered) using webkitgtk.
Fabien Vallée
Comment 2 2014-09-02 05:58:55 PDT
To correct my first comment, there are tests for 'stalled' event, e.g. : LayoutTests/http/tests/media/video-play-stall.html The test timeout as per https://bugs.webkit.org/show_bug.cgi?id=108925 but even if I increase run-webkit-tests timeout I don't think gstreamer is sending GST_STREAM_ERROR_TYPE_NOT_FOUND message in that case.
Fabien Vallée
Comment 3 2014-09-02 06:11:09 PDT
Comment on attachment 237484 [details] based on LayoutTest/media/broken-video.html only changed the video src need to copy the file to LayoutTest/media/ folder to access media-file.js and video-test.js
Philippe Normand
Comment 4 2014-09-02 07:15:22 PDT
This code was actually introduced in http://trac.webkit.org/changeset/81229 and I think that reverting it will break a test again.
Fabien Vallée
Comment 5 2014-09-02 07:59:30 PDT
Yeah, I agree, anyway thanks Philippe for answer. I will try to check what's going on in video-play-stall-before-meta-data.html
Fabien Vallée
Comment 6 2015-03-04 05:40:39 PST
won't fix.
Note You need to log in before you can comment on or make changes to this bug.