Bug 163523
Summary: | [GStreamer] Layout test media/track/track-manual-mode.html is failing | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
Component: | Media | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Normal | CC: | bugs-noreply, cturner, eric.carlson, Hironori.Fujii, pnormand |
Priority: | P2 | ||
Version: | Other | ||
Hardware: | PC | ||
OS: | Linux |
Michael Catanzaro
Layout test media/track/track-manual-mode.html has been failing since it was added in r196010 "Allow ports to disable automatic text track selection". Updating expectations accordingly.
--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/media/track/track-manual-mode-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/media/track/track-manual-mode-actual.txt
@@ -7,59 +7,56 @@
EVENT(canplaythrough)
** Forced tracks should be in .textTracks as well as in the menu
-EXPECTED (video.textTracks.length == '9') OK
-EXPECTED (trackMenuItems.length == '11') OK
+EXPECTED (video.textTracks.length == '9'), OBSERVED '6' FAIL
+EXPECTED (trackMenuItems.length == '11'), OBSERVED '8' FAIL
** 'forced' should be in the title of a forced track menu item
Track menu:
-0: "Off", checked
-1: "Auto (Recommended)"
-2: "English Closed Captions CC"
-3: "English Subtitles"
-4: "English Subtitles Forced"
-5: "French Subtitles"
-6: "French Subtitles Forced"
-7: "German Subtitles"
-8: "German Subtitles Forced"
-9: "Spanish Subtitles"
-10: "Spanish Subtitles Forced"
+0: "Off"
+1: "Auto"
+2: "No label"
+3: "No label"
+4: "No label"
+5: "No label"
+6: "No label"
+7: "en"
** No track should be enabled by default
EXPECTED (video.textTracks[0].language == 'en') OK
EXPECTED (video.textTracks[0].kind == 'subtitles') OK
EXPECTED (video.textTracks[0].mode == 'disabled') OK
-EXPECTED (video.textTracks[1].language == 'en') OK
-EXPECTED (video.textTracks[1].kind == 'forced') OK
+EXPECTED (video.textTracks[1].language == 'en'), OBSERVED '' FAIL
+EXPECTED (video.textTracks[1].kind == 'forced'), OBSERVED 'subtitles' FAIL
EXPECTED (video.textTracks[1].mode == 'disabled') OK
-EXPECTED (video.textTracks[2].language == 'fr') OK
+EXPECTED (video.textTracks[2].language == 'fr'), OBSERVED '' FAIL
EXPECTED (video.textTracks[2].kind == 'subtitles') OK
EXPECTED (video.textTracks[2].mode == 'disabled') OK
-EXPECTED (video.textTracks[3].language == 'fr') OK
-EXPECTED (video.textTracks[3].kind == 'forced') OK
+EXPECTED (video.textTracks[3].language == 'fr'), OBSERVED '' FAIL
+EXPECTED (video.textTracks[3].kind == 'forced'), OBSERVED 'subtitles' FAIL
EXPECTED (video.textTracks[3].mode == 'disabled') OK
-EXPECTED (video.textTracks[4].language == 'es') OK
+EXPECTED (video.textTracks[4].language == 'es'), OBSERVED '' FAIL
EXPECTED (video.textTracks[4].kind == 'subtitles') OK
EXPECTED (video.textTracks[4].mode == 'disabled') OK
-EXPECTED (video.textTracks[5].language == 'es') OK
-EXPECTED (video.textTracks[5].kind == 'forced') OK
+EXPECTED (video.textTracks[5].language == 'es'), OBSERVED '' FAIL
+EXPECTED (video.textTracks[5].kind == 'forced'), OBSERVED 'subtitles' FAIL
EXPECTED (video.textTracks[5].mode == 'disabled') OK
-EXPECTED (video.textTracks[6].language == 'de') OK
-EXPECTED (video.textTracks[6].kind == 'subtitles') OK
-EXPECTED (video.textTracks[6].mode == 'disabled') OK
+TypeError: undefined is not an object (evaluating 'video.textTracks[6].language')
+TypeError: undefined is not an object (evaluating 'video.textTracks[6].kind')
+TypeError: undefined is not an object (evaluating 'video.textTracks[6].mode')
-EXPECTED (video.textTracks[7].language == 'de') OK
-EXPECTED (video.textTracks[7].kind == 'forced') OK
-EXPECTED (video.textTracks[7].mode == 'disabled') OK
+TypeError: undefined is not an object (evaluating 'video.textTracks[7].language')
+TypeError: undefined is not an object (evaluating 'video.textTracks[7].kind')
+TypeError: undefined is not an object (evaluating 'video.textTracks[7].mode')
-EXPECTED (video.textTracks[8].language == 'en') OK
-EXPECTED (video.textTracks[8].kind == 'captions') OK
-EXPECTED (video.textTracks[8].mode == 'disabled') OK
+TypeError: undefined is not an object (evaluating 'video.textTracks[8].language')
+TypeError: undefined is not an object (evaluating 'video.textTracks[8].kind')
+TypeError: undefined is not an object (evaluating 'video.textTracks[8].mode')
END OF TEST
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Charlie Turner
This test is also crashing (expectations updated accordingly). The issue is in TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged(). It's calling VideoTrack::setLanguage when it's not in a correct state. setLanguage then asks for the HTMLMediaElement's videoTracks when the media element member is null, but the spec suggests a VideoTrack's HTMLMediaElement is always available... Because this call stack is invoked from a GStreamer signal, it's very likely there's bugs in the TrackPrivateBaseGStreamer.
Fujii Hironori
(In reply to Charlie Turner from comment #1)
Sounds like a same issue with Bug 160131 Comment 6.
Philippe Normand
The crash is gone but the test still fails badly. This points to a FIXME for multiple CHAP tracks support in qtdemux.