HEVC Decoding in Xbox Edge
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 16.9k
- Forks
- 2.8k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 27
Description
What version of Hls.js are you using?
v1.6.5
What browser (including version) are you using?
Microsoft Edge 134.0.3124.54 (Official build) (64-bit)
What OS (including version) are you using?
Xbox OS 10.0.26100.4855
Test stream
Configuration
{
"debug": true,
"enableWorker": true,
"lowLatencyMode": true,
"backBufferLength": 90
}
Additional player setup steps
Edge on Xbox Series S|X reports hvc1 as supported when using MediaSource.isTypeSupported, but the playback fails with DECODER_ERROR_NOT_SUPPORTED: video decoder initialization failed with DecoderStatus::Codes::kUnsupportedConfig
FWIW, VideoElement.canPlayType accurately reports that the codec isn't supported: https://lf-tk-sg.ibytedtos.com/obj/tcs-client-sg/resources/video_demo_hevc.html
Checklist
- The issue observed is not already reported by searching on Github under https://github.com/video-dev/hls.js/issues
- The issue occurs in the stable client (latest release) on https://hlsjs.video-dev.org/demo and not just on my page
- The issue occurs in the latest client (main branch) on https://hlsjs-dev.video-dev.org/demo and not just on my page
- The stream has correct Access-Control-Allow-Origin headers (CORS)
- There are no network errors such as 404s in the browser console when trying to play the stream
Steps to reproduce
Expected behaviour
HLS.js detects that HEVC can't be played and plays AVC stream
What actually happened?
HLS.js tries to decode HEVC and fails the playback
Console output
Unable to access browser console on my Xbox
Chrome media internals output
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the stream in the Hls.js demo on Edge for Xbox and compare MediaSource.isTypeSupported with VideoElement.canPlayType for HEVC. Trace the codec selection and fallback entry points from the demo configuration; done means unsupported HEVC is detected and the AVC stream plays instead.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- frontend, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100