Bug 163523

Summary: [GStreamer] Layout test media/track/track-manual-mode.html is failing
Product: WebKit Reporter: Michael Catanzaro <mcatanzaro>
Component: MediaAssignee: 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
Reported 2016-10-16 19:48:46 PDT
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
Charlie Turner
Comment 1 2017-10-04 07:39:55 PDT
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
Comment 2 2017-12-04 21:29:40 PST
(In reply to Charlie Turner from comment #1) Sounds like a same issue with Bug 160131 Comment 6.
Philippe Normand
Comment 3 2018-01-03 03:59:47 PST
The crash is gone but the test still fails badly. This points to a FIXME for multiple CHAP tracks support in qtdemux.
Note You need to log in before you can comment on or make changes to this bug.