Skip to content

DV Profile 7 dual-layer MKV: video track has no format description (<no fdesc>) → AVPlayer -11855; HDR10 fallback fails identically #365

Description

@RomanLiberda

Summary

A Dolby Vision Profile 7 dual-layer MKV (UHD-BD remux) fails to start on the native / HLS-loopback path. AVPlayer rejects every rendition variant with AVFoundationErrorDomain -11855 ("Cannot Decode"), underlying CoreMediaErrorDomain -12910. The item's video track arrives with no format description (fourCC=<no fdesc>, enabled=false), i.e. CMVideoFormatDescription could not be built from the generated init.mp4 hvcC.

The engine's own fallback ladder — DV master → HDR10-only master_hdrmedia.m3u8 — fails identically, so this is not DV-signaling-specific: the plain HDR10 base-layer rendition is equally undecodable.

Per CHANGELOG 1.3.2 ("DV Profile 7 (UHD-BD remuxes) now plays: routed as plain HEVC HDR10 with the source dvcC stripped"), this file is expected to play. The signature matches the hvcC-has-no-parameter-set-arrays class fixed for P5 MP4 in 2.0.2 (#19), now recurring for DV P7 dual-layer MKV.

Environment

  • AetherEngine 6.21.0
  • Apple TV 4K, tvOS 26.6 (build 23L773) — UA AppleCoreMedia/1.0.0.23L773
  • HDR-capable panel, Match Content ON (panelIsHDR=true, EDR headroom 1.20, useMaster=true)

Source media (ffprobe)

  • Container: Matroska (MKV), ~61.8 GB (66,343,218,052 B). HTTP source, full Range support verified (206 Partial Content with correct Content-Range at offset 0, mid-file, and near-EOF).
  • Video: HEVC Main 10, 3840×2160, yuv420p10le, bt2020nc / smpte2084 / bt2020 (HDR10 / PQ base).
  • DOVI configuration record:
    dv_version_major=1  dv_version_minor=0
    dv_profile=7  dv_level=6
    rpu_present_flag=1  el_present_flag=1  bl_present_flag=1
    dv_bl_signal_compatibility_id=6
    dv_md_compression=extended
    
  • Audio: AC-3 5.1 (eng), single track.
  • Subtitles: 11× HDMV PGS.
  • Secondary anomalies (probably not root cause, included for completeness): the video PTS is anchored at ~4200 s (engine compensates with a shift); the MKV Cues are sparse — index unusable (10 IRAPs, coverage 8889.8s, largestGap 8641.3s) → uniform-stride fallback.

I can't attach the ~62 GB source, but the ffprobe above + full log below should localize it. Happy to provide a fuller -show_streams dump or a short remuxed clip if useful.

Expected

Plays as HDR10 (P7 base layer), per CHANGELOG 1.3.2.

Actual

Every rendition fails with -11855 / -12910; the video track has no format description.

Engine prep + serving:

prepared: codec=hvc1.2.4.L153,ac-3 supplemental=dvh1.08.06/db1p resolution=3840x2160 fps=23.976 range=PQ DV=profile7 segments=2222
serving on http://127.0.0.1:<port>/master.m3u8 (dvModeAvailable=true effectiveDvMode=true panelIsHDR=true useMaster=true videoRange=pq dvVariant=profile7)

Master playlist advertises HDR10 base + DV P8 supplemental:

#EXT-X-STREAM-INF:...,CODECS="hvc1.2.4.L153,ac-3",SUPPLEMENTAL-CODECS="dvh1.08.06/db1p",RESOLUTION=3840x2160,VIDEO-RANGE=PQ

Failure (repeats for master.m3u8, master_hdr.m3u8, and media.m3u8):

video codecpar: codec=173 3840x2160 profile=2 level=153 extradata=726B head=00000140010c01ff
in-band parameter-set scan found none: packets=16 vps=false sps=false pps=false
...
item.status=failed err=AVFoundationErrorDomain/-11855 'Cannot Decode'
  item.error.underlying=CoreMediaErrorDomain/-12910
  item.tracks[0] mediaType=vide fourCC=<no fdesc> enabled=false
  item.tracks[1] mediaType=soun fourCC=<no fdesc> enabled=false
readiness gate: master never produced tracks after 2 attempts; falling back to the media playlist (HDR10 base, DV upgrade dropped)
#10 media.m3u8 → item.status=failed err=-11855 (identical)

The segments themselves are produced fine (seg0.mp4 5.9 MB captured and served); the failure is purely AVPlayer being unable to build a video format description from init.mp4.

Analysis / suspicion

  • <no fdesc>CMVideoFormatDescription couldn't be built from the output hvcC — the exact class 2.0.2 addressed (config record with no parameter-set arrays / numOfArrays = 0).
  • Source is MKV, whose parameter sets live in CodecPrivatecodecpar.extradata (here 726 B, head=00000140010c01ff = annex-B VPS start), which per the 2.0.2 note should let ff_isom_write_hvcc rebuild a proper hvcC. On paper MKV shouldn't hit this — yet this P7 dual-layer file does. The large 726 B extradata likely carries BL + EL parameter sets; a plausible culprit is ff_isom_write_hvcc (or the P7 route) mishandling the dual-layer extradata, and/or dv_md_compression=extended.
  • The current P7 route emits SUPPLEMENTAL-CODECS="dvh1.08.06" rather than the "strip dvcC → plain HEVC HDR10" behavior described in 1.3.2. If P7 fell back to that plain-HDR10 strip path with a correctly rebuilt hvcC, it would presumably decode.

Repro

Any DV Profile 7 dual-layer (BL+EL+RPU) HEVC Main10 MKV with bl_signal_compatibility_id=6 and md_compression=extended. Reproduced on a UHD-BD remux streamed over HTTP (host supports Range fully; not a transport issue).


Related (separate issue if wanted): a different UHD HDR10 remux hits muxerFailed — "prime scan gave up … without an audio packet" — when the selected audio track is a sparsely-interleaved legacy track (Czech AC-3 2.0 "VHS, TV") far from the start; a well-interleaved track on the same file muxes fine. Can file separately with logs + ffprobe.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions