Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix decode error escape in dev #6492

Merged

Conversation

robwalch
Copy link
Collaborator

This PR will...

Revert NALu overflow handling change introduced in #6268 that results in a decode error at 30s w/ https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/media/b2962000-video.m3u8

PIPELINE_ERROR_DECODE: Error Domain=NSOSStatusErrorDomain Code=-12909 "(null)" (-12909): VTDecompressionOutputCallback

Why is this Pull Request needed?

The above asset produces a decode error when playback reaches 29-30s in Chrome using the latest from dev:

https://hlsjs-dev.video-dev.org/demo/?src=https%3A%2F%2Fbitmovin-a.akamaihd.net%2Fcontent%2Fdataset%2Fmulti-codec%2Fhevc%2Fv720p_ts.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOmZhbHNlLCJzdG9wT25TdGFsbCI6ZmFsc2UsImR1bXBmTVA0Ijp0cnVlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==

The escape can be tracked back to #6268.

Are there any points in the code the reviewer needs to double check?

This PR removes the offending changes without removing the test asset added. I don't see how the change makes the test asset play any better - all the segment durations and timestamps show overlap. The change only prevents SEI parsing error logs that have no impact on playback. It doesn't seem like the change was correct - it may have only been adding padding that suppressed those error logs.

Resolves issues:

Checklist

  • changes have been done against master branch, and PR does not conflict
  • new unit / functional tests have been added (whenever applicable)
  • API or design changes are documented in API.md

Revert NALu overflow handling change introduced in #6268 that results in a decode error at 30s w/ https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/media/b2962000-video.m3u8
`PIPELINE_ERROR_DECODE: Error Domain=NSOSStatusErrorDomain Code=-12909 "(null)" (-12909): VTDecompressionOutputCallback`
@robwalch robwalch added this to the 1.6.0 milestone Jun 12, 2024
@robwalch
Copy link
Collaborator Author

cc @devoldemar (#5847 #4943). These changes need to be reverted because of escapes in existing assets. If you need to address NALu parsing for HEVC in TS in 1.6.0 you will need to provide a compatible fix.

@robwalch robwalch marked this pull request as ready for review June 12, 2024 00:35
@robwalch robwalch merged commit e0e8937 into master Jun 12, 2024
16 checks passed
@robwalch robwalch deleted the bugfix/revert-nalu-overflow-decode-error-regression branch June 12, 2024 00:56
@devoldemar
Copy link
Contributor

@robwalch
I can't reproduce the error using Chrome latest dev (128.0.6535.2 x64), but on Windows. Does playback fail on MAC OS?

@devoldemar
Copy link
Contributor

devoldemar commented Jun 16, 2024

The change only prevents SEI parsing error logs that have no impact on playback

If incomplete (= malformed) SEI contains some user data this data won't be parsed. It means potential failure of VTT/subtitles playback. Of course, in most cases the risk can be ignored. The test asset from #6268 just does not provide any user data in SEI, at the same time it unveils this problem.

@robwalch
Copy link
Collaborator Author

Reproduced on macOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants