Bug 160459

Summary: [MSE] Decoder error caused by multi-SPS/PPS init segment and no sample duration
Product: WebKit Reporter: Joey Parrish <joeyparrish>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: eric.carlson, jeremyj-wk, jer.noble
Priority: P2    
Version: Safari 9   
Hardware: Unspecified   
OS: Unspecified   

Description Joey Parrish 2016-08-02 11:44:08 PDT
GPAC's DASH sequences [1] cause decoder errors on Safari. For example, "live profile with bitstream switching support, Audio+Video" [2] and "main profile, multiple files with bitstream switching support, Audio+Video" [3].  (We have not exhaustively tested all sequences GPAC hosts, so there may be others.)

Shaka Player [4] is using these as test vectors to ensure compatibility with GPAC, but our tests for these fail on Safari. As far as we can tell, there are two features that make the failing GPAC vectors unique in our tests: multiple SPS/PPS in the init segments, and no sample duration.

To reproduce:

1. Open JS console
2. Navigate to http://storage.googleapis.com/shaka-demo-assets/_bugs/multiple-sps-media/index.html
3. Notice the decoder error on the console

This same content works on Chrome and Firefox on Mac, so we would expect to be able to play this content on Safari as well.

[1] https://gpac.wp.mines-telecom.fr/2012/02/23/dash-sequences/
[2] http://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-live/mp4-live-mpd-AV-BS.mpd
[3] http://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-main-multi/mp4-main-multi-mpd-AV-BS.mpd
[4] https://github.com/google/shaka-player
Comment 1 Joey Parrish 2016-08-02 12:45:13 PDT
Correction: Chrome and Firefox do not have this problem in general, but do on Mac.  So I suspect the real bug is something to do with the platform's H.264 decoder.