mux: MKV read-back, FMKV header metadata, live-stream stop handling

MKV read-back carries display shape, colour, frame rate, content
encodings and BCP47 language, and drops malformed blocks with a count.
The FMKV header carries display aspect, CICP, labels, chapters and
format. Live reads refuse a zero read batch (E9085) and treat a stopped
read as a stop. freemkv-unlock becomes a version dep with a git-tag
override; dependency bumps (#27, #28); LPCM keeps its source bit depth; 1.8.0
changelog.
This commit is contained in:
Matthew Jackson
2026-09-30 18:45:38 -07:00
parent 81b7e3ab4e
commit cf2171e11a
31 changed files with 3619 additions and 609 deletions
+19 -4
View File
@@ -65,6 +65,8 @@ jobs:
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
with:
checkout: freemkv-unlock
patch: freemkv-unlock
self: libfreemkv
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
@@ -92,6 +94,8 @@ jobs:
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
with:
checkout: freemkv-unlock
patch: freemkv-unlock
self: libfreemkv
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ needs.resolve-msrv.outputs.v }}
@@ -123,6 +127,8 @@ jobs:
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
with:
checkout: freemkv-unlock
patch: freemkv-unlock
self: libfreemkv
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ needs.resolve-msrv.outputs.v }}
@@ -150,13 +156,15 @@ jobs:
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
with:
checkout: freemkv-unlock
patch: freemkv-unlock
self: libfreemkv
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- uses: EmbarkStudios/cargo-deny-action@3c6349835b2b7b196a839186cb8b78e02f7b5f25 # v2
with:
command: check advisories bans licenses sources
manifest-path: libfreemkv/Cargo.toml
- uses: taiki-e/install-action@cargo-deny
# Run from the repo dir so the generated .cargo/config.toml path patches apply.
- run: cargo deny --all-features check advisories bans licenses sources
working-directory: libfreemkv
# dev is the FAST lane: the platform jobs run on qa/main only (qa.yml also
# covers macOS/Windows). `if` SKIPS (does not queue) so a never-scheduled job
@@ -173,6 +181,8 @@ jobs:
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
with:
checkout: freemkv-unlock
patch: freemkv-unlock
self: libfreemkv
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ needs.resolve-msrv.outputs.v }}
@@ -194,6 +204,8 @@ jobs:
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
with:
checkout: freemkv-unlock
patch: freemkv-unlock
self: libfreemkv
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ needs.resolve-msrv.outputs.v }}
@@ -230,6 +242,7 @@ jobs:
freemkv-keysources = { path = "../freemkv-keysources" }
freemkv-engine = { path = "../freemkv-engine" }
freemkv-i18n = { path = "../freemkv-i18n" }
freemkv-unlock = { path = "../freemkv-unlock" }
EOF
done
# freemkv's app build (`--features gui`) compiles a GTK4 + libadwaita
@@ -274,6 +287,8 @@ jobs:
- uses: freemkv/.github/.github/actions/checkout-siblings@v1
with:
checkout: freemkv-unlock
patch: freemkv-unlock
self: libfreemkv
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ needs.resolve-msrv.outputs.v }}