Skip to content

5.8.1 - P7 conversion hardening: HDR10 degrade + FEL logging (#135)

Choose a tag to compare

@superuser404notfound superuser404notfound released this 18 Jul 05:34

P7 conversion hardening (#135)

Field notes from @rrgomes after they confirmed the native Profile 7 to 8.1 path on device (#132) and retired their own client-side conversion. Two edge cases from their production implementation, folded in.

Fixed

  • A P7 to 8.1 conversion failure now degrades to clean HDR10 instead of shipping mixed-profile DV. When libdovi cannot convert a P7 RPU on the loopback-HLS producer path, the offending RPU (and its enhancement-layer NAL) is dropped rather than muxed through, so the affected frame plays as the HDR10 base instead of riding a Profile 7 RPU inside a container already declared 8.1. Well-formed remuxes never reach this path.

Added

  • FEL sources are logged during conversion. The first RPU's enhancement-layer type is probed once; a Full Enhancement Layer (FEL) source, whose EL is discarded in the single-layer conversion (a MEL source loses nothing), now emits a one-line log so a flatter-looking FEL disc can be triaged against a native Profile 7 player. Also surfaced on DoviConvertProbeResult.enhancementLayerType for aetherctl dovitest.

convertPacketToProfile81 keeps its Bool contract (no adopter API break); only the on-failure behaviour changes from passthrough to drop.

Verified: full suite (704 tests, including new deterministic NAL-walk coverage for the degrade, EL-drop, no-op, and probe paths) plus tvOS and iOS Simulator builds green in CI. Real-RPU FEL/MEL detection and successful conversion stay validated via aetherctl dovitest and on device. Thanks @rrgomes.