Repository navigation
Conversation
…tead of copying into fMP4 HLS Some Tizen sets fail PLAYER_ERROR_NOT_SUPPORTED_FILE a couple seconds into an AV1 fMP4-HLS transcode even though the same set decodes AV1 fine in a direct-played MKV. The new "Force Compatible AV1 Transcode" toggle (off by default) drops the AV1 transcoding profile so those transcodes fall back to the ts/hevc profile and re-encode instead.
✅ Build SuccessfulAll platform builds and the test suite passed. You can download the artifacts below.
|
The forceCompatibleAv1Transcode toggle's label and description were never added to the source strings.json that Weblate monitors, so they were never picked up for translation into other languages.
cdd95ee to
dec1b29
Compare
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (5)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughAdds a video playback setting that removes AV1 transcoding profiles during device profile tuning. The setting defaults to off and is hidden on webOS. Its description states that transcoding re-encodes AV1 to HEVC. ChangesCompatible AV1 Transcoding
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: Merge Risk: 🔵 Low · up to On Tizen 5.5, enabling the option may produce H.264 rather than the described HEVC output, but a compatible transcode remains available. This is a bounded mismatch and does not materially block merging. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The option is disabled by default and narrows transcoding choices without changing server selection or credentials. It leaves the original device profile intact. Remaining uncertainty concerns server workload and playback outcomes when compatible re-encoding is requested. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Warning Some tools did not complete. Review the errors below. 🔧 ESLint
packages/app/src/context/defaultSettings.jsOops! Something went wrong! :( ESLint: 10.12.0 A config object is using the "root" key, which is not supported in flat config system. Flat configs always act as if they are the root config file, so this key can be safely removed. packages/app/src/utils/deviceProfileTuning.jsESLint skipped: the matched ESLint configuration already failed (config-incompatibility). packages/app/src/utils/deviceProfileTuning.test.jsESLint skipped: the matched ESLint configuration already failed (config-incompatibility).
Comment |
Summary
On my Samsung QE65Q67AAUXXH (2021, Tizen 6.0), a 4K AV1 (Dolby Vision Profile 8, HDR10 base) MKV with a DTS-HD MA audio track fails about 1.8 seconds after AVPlay opens the stream (
PLAYER_ERROR_CONNECTION_FAILEDthenPLAYER_ERROR_NOT_SUPPORTED_FILE). The server does its job correctly: ffmpeg copies the AV1 video stream untouched (-codec:v:0 copy) and only transcodes the DTS-HD MA audio to AC3, into fMP4-segmented HLS, because that's the only transcoding profile that listsav1as an acceptable video codec (deviceProfile.js).I confirmed this is specifically the fMP4-HLS wrapper, not AV1 decoding itself:
ffmpeg -c:v copy -c:a ac3into a plain MKV (no HLS, no fMP4) direct-plays fine on the same TV.dvcC/dvvCbox (Not writing 'dvcC'/'dvvC' box. Requires -strict unofficial.), so no DV metadata reached the player.tscontainer instead ofmp4/fMP4 isn't an option: ffmpeg's mpegts muxer has no real AV1 support (AV1-over-MPEG-TS is only a draft spec).So on this TV/firmware, AV1 video copied into fMP4-segmented HLS specifically breaks, even though the same AV1 stream plays fine directly and other files that transcode through the ts/HEVC path work fine on this same hardware.
Related Issues
Type of Change
Changes Made
forceCompatibleAv1Transcodesetting (off by default) under Settings > Playback > Media Player Behavior, labeled "Force Compatible AV1 Transcode", hidden on webOS since it doesn't apply theredeviceProfileTuning.jsdrops the AV1 transcoding profile from the device profile sent to the server, so an AV1 source that needs transcoding falls back to the ts/hevc profile and gets fully re-encoded to HEVC instead of having its AV1 video copied into fMP4 HLSPlatform
Testing
Test Steps
PLAYER_ERROR_NOT_SUPPORTED_FILEScreenshots
N/A — settings toggle only, no visual change beyond the new row in the settings list
Checklist