Bug 160459 - [MSE] Decoder error caused by multi-SPS/PPS init segment and no sample duration
Summary: [MSE] Decoder error caused by multi-SPS/PPS init segment and no sample duration
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Safari 9
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-02 11:44 PDT by Joey Parrish
Modified: 2016-08-02 13:06 PDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.