fix(playback): pick HEVC sample-entry tag from the client's DeviceProfile - #413
fix(playback): pick HEVC sample-entry tag from the client's DeviceProfile#413lostb1t wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
It introduces avoidable public-API expansion/breakage in device_profile (public trait method + public constants) that should be made backward-compatible and/or crate-private.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR adjusts HEVC stream-copy behavior in remux-server so the MP4 sample-entry fourcc (hvc1 vs hev1) is selected based on the requesting client’s DeviceProfile, then propagated through playback URLs/sessions into ffmpeg arguments and HLS CODECS signaling.
Changes:
- Add a per-session/per-transcode
hevc_copy_tagpropagated fromDeviceProfile→ querystring →TranscodeSession/params. - Apply the resolved tag to ffmpeg
-tag:vfor HEVC stream-copy (HLS fMP4 path + progressive copy path). - Update HLS master playlist
CODECSgeneration to match the actual fourcc used for HEVC fMP4 segment sample entries; add unit tests for tag behavior.
File summaries
| File | Description |
|---|---|
| crates/remux-server/src/playback/session.rs | Store the resolved HEVC copy tag on TranscodeSession. |
| crates/remux-server/src/playback/engine.rs | Thread tag into transcode params, apply -tag:v, and ensure master playlist CODECS matches; adds tests. |
| crates/remux-server/src/playback/decision.rs | Carry the resolved tag forward on the transcode URL as a query parameter. |
| crates/remux-server/src/device_profile.rs | Add DeviceProfileExt::hevc_copy_tag() and tag constants; implement logic using codec-profile conditions; adds tests. |
| crates/remux-server/src/api/playback.rs | Pass video_codec_tag query value into progressive transcode params. |
| crates/remux-server/src/api/hls.rs | Persist tag into TranscodeSession and into per-segment TranscodeParams. |
| crates/remux-sdks/src/remux/mod.rs | Extend query DTOs with video_codec_tag so the server can deserialize/forward it. |
Review details
- Files reviewed: 7/7 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Docker image built for this PR and pushed to GitHub Container Registry. docker pull ghcr.io/lostb1t/remux:pr-413Image will be removed when this PR is closed or merged. |
Alternative to #411.