Skip to content

Batch: 10 fixes and 4 features (E-AC-3, cut detection, manifests, demux formats, block additions, DASH trick play) - #14

Merged
gravity-zero merged 22 commits into
masterfrom
fix/batch-1103
Nov 4, 2026
Merged

gravity-zero merged 22 commits into
masterfrom
fix/batch-1103

Conversation

@gravity-zero

Copy link
Copy Markdown
Owner

Each item has a test proven red before its fix (old code or mutation). Full gate green on be1a691.

Fixes

  • E-AC-3: the dec3 lists dependent substreams and their chan_loc (7.1 was announced 6); an AC-3 core is read as AC-3.
  • Manifests take an audio track's channel count from the sample entry its init carries (master and init agreed only within the first 128 blocks).
  • A Segment of unknown size cut inside a block: diagnose reports truncated (tail), track-ends exits 3 under --exit-damaged.
  • A whole Segment of unknown size followed by an ID3 tag or an oversized Void is not cut (to-mp4, to-hls, Fingerprint).
  • diagnose --deep-verify on a Segment of unknown size: it runs to the end of the file, body damage is reported.
  • Cues past the end of a complete file are a corrupt index (cues-stale, ErrNoKeyframeIndex), not a cut; no false "all cue points reference a non-video track".
  • MP4: DeclaredSize walks every top-level box, as Diagnose does.
  • Dolby Vision in a Dolby sample entry is named dvh1.PP.LL (dav1, dva1) in CODECS / codecs.
  • Cost tests: counted in CI, timed twins nightly (a CPU-only quadratic escapes a count).
  • Metadata read and subtitle window cost tests count operations instead of timing.

Features

  • Manifests (one set of helpers for every HLS and DASH writer): VIDEO-RANGE, SUPPLEMENTAL-CODECS, CICP properties, CHARACTERISTICS / Role / Accessibility, Atmos (E-AC-3 JOC, also in the dec3), one audio group per codec.
  • demux writes each track in its codec's format: ADTS, Annex-B with parameter sets, Ogg Opus / Vorbis, FLAC, .sup; --raw keeps the old output.
  • Block additions are read, kept by every rewrite, WebVTT cue settings carried into WebVTT and wvtt; HDR10+ detected from them.
  • DASH trick-mode AdaptationSet over the I-frame fragments.

Breaking (see CHANGELOG): bytes served (dec3, channels, HLS masters split by codec, MPD trick-mode set), demux output.

Not covered: VP9 alpha / VP9 HDR10+ in MP4 (no standard carriage), HEVC SEI HDR10+ detection, HLS characteristic for commentary (none defined).

…ops inside its media, not inside a trailing tag or Void
…ted at the tail, and track-ends exits 3 on it under --exit-damaged
… end of the file, so its body damage is reported
… a fragmented file cut short is said cut by both
…PP.LL (dav1, dva1) in HLS CODECS and DASH codecs
…y and Atmos, and split audio groups by codec, from one set of helpers
…with parameter sets, Ogg Opus and Vorbis, FLAC, .sup
…each, one subtitle default, bandwidth per variant and video alone in DASH
…s group, and every NAME is unique in its group
…archive 0.56-0.59 and 0.60-0.62 in changelog/
…ags refuse an unknown flag wherever it stands
@gravity-zero
gravity-zero merged commit a406d6e into master Nov 4, 2026
32 of 37 checks passed
@gravity-zero
gravity-zero deleted the fix/batch-1103 branch November 4, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant