video-dev / video-dev/hls.js

HEVC Decoding in Xbox Edge

Open
#7,341 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Browser issue browser: Edge Revisit-at-later-release-cycle Suggested-Workaround Works as expected
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

https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fstarlight.nebula.tv%2Funauthenticated%2Fvideos%2Fcf19ef9c-f7d5-48d9-92f7-d8419fdac086%2Fvideo_upload%3Add0165d4-07f1-44fa-ad35-5a4819cdb33d%2Fall.31d3ecfd653e.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ==

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

Image

Checklist
Steps to reproduce
  1. Load https://hlsjs.video-dev.org/demo/?src=https%3A%2F%2Fstarlight.nebula.tv%2Funauthenticated%2Fvideos%2Fcf19ef9c-f7d5-48d9-92f7-d8419fdac086%2Fvideo_upload%3Add0165d4-07f1-44fa-ad35-5a4819cdb33d%2Fall.31d3ecfd653e.m3u8&demoConfig=eyJlbmFibGVTdHJlYW1pbmciOnRydWUsImF1dG9SZWNvdmVyRXJyb3IiOnRydWUsInN0b3BPblN0YWxsIjpmYWxzZSwiZHVtcGZNUDQiOmZhbHNlLCJsZXZlbENhcHBpbmciOi0xLCJsaW1pdE1ldHJpY3MiOi0xfQ== in Edge on Xbox Series S|X
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.