| Summary: | Safari 16 throws error on encrypted video | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Vitaly <vitaly.ivanov> | ||||
| Component: | New Bugs | Assignee: | Nobody <webkit-unassigned> | ||||
| Status: | NEW --- | ||||||
| Severity: | Normal | CC: | eric.carlson, jer.noble, webkit-bug-importer | ||||
| Priority: | P1 | Keywords: | InRadar | ||||
| Version: | Safari 16 | ||||||
| Hardware: | Mac (Apple Silicon) | ||||||
| OS: | macOS 13 | ||||||
| Attachments: |
|
||||||
|
Description
Vitaly
2023-01-24 22:05:59 PST
It's also worth mentioning it works perfectly fine with third-party decryptors/players: Chrome on any platform/hardware via MSE with ClearKey or Widevine or PlayReady, ffplay (ffplay -decryption_key 3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c3c out-2-encr.mp4, but not with the stable 5.1.2 as it has couple of bugs around 'trun' parsing which are fixed in main), etc Moved the demo to https://vitaly-castlabs.github.io/safari16-decr-issue ffmpeg Stable has been updated to 6.0 since, so "ffplay -decryption_key..." now works fine too Verbose MSE log:
[Debug] SourceBuffer::monitorBufferingRate(9FFAD41A0090001) 0.2638390404863951
[Debug] SourceBuffer::sourceBufferPrivateAppendComplete(9FFAD41A0090001) buffered = [{0/1 = 0}..{1477/1000 = 1.477}]
[Debug] SourceBuffer::appendBufferInternal(9FFAD41A0090001) size = 19836, buffered = [{0/1 = 0}..{1477/1000 = 1.477}]
[Debug] SourceBuffer::monitorBufferingRate(9FFAD41A0090001) 0.2649563195125863
[Debug] SourceBuffer::sourceBufferPrivateAppendComplete(9FFAD41A0090001) buffered = [{0/1 = 0}..{1495/1000 = 1.495}]
[Error] SourceBuffer::sourceBufferPrivateDidReceiveRenderingError(9FFAD41A0090001) 0
[Log] MediaSource::streamEndedWithError(9FFAD41A0098DE6) decode
[Log] MediaSource::onReadyStateChange(9FFAD41A0098DE6) old state = open, new state = ended
[Debug] MediaSource::scheduleEvent(9FFAD41A0098DE6) scheduling 'sourceended'
[Log] MediaSource::detachFromElement(9FFAD41A0098DE6)
[Log] MediaSource::onReadyStateChange(9FFAD41A0098DE6) old state = ended, new state = closed
[Debug] MediaSource::scheduleEvent(9FFAD41A0098DE6) scheduling 'sourceclose'
[Debug] MediaSource::removeSourceBuffer(9FFAD41A0098DE6)
[Error] SourceBuffer::sourceBufferPrivateDidReceiveRenderingError(9FFAD41A0090001) 0
|