This website requires JavaScript.
767d205fd4
mux: document that the Url arm selects via InputOptions.selection
main
Matthew Jackson
2026-07-28 18:40:47 -07:00
bbb5a953f1
1.6.0: remove recovery strategy (moved to freemkv-engine) + trim dead surface
Matthew Jackson
2026-07-28 15:35:19 -07:00
3f238ab3dc
changelog: 1.6.0 section (layering API, mux fixes, engine relocation, stream selection); date 1.5.2
MattJackson
2026-07-28 13:54:42 -07:00
ec62618bde
mux: end-to-end test that stream selection drops excluded-PID frames
MattJackson
2026-07-28 13:36:27 -07:00
15111d544b
disc: add DiscTitle audio_streams/subtitle_streams/video_streams accessors
MattJackson
2026-07-28 13:35:12 -07:00
19b646e012
mux: StreamSelection primitive + apply sites for per-title stream selection
MattJackson
2026-07-28 13:14:40 -07:00
17694af625
error: add is_disc_level_no_key classifier (re-exported)
MattJackson
2026-07-28 12:45:58 -07:00
828f5c0192
error: re-export is_halt + is_skippable_title_stub at crate root
MattJackson
2026-07-28 12:31:40 -07:00
075223a4bd
disc: promote locate_ranges to pub (engine multipass reads it)
MattJackson
2026-07-28 12:09:38 -07:00
94ac4a442a
drive: promote extract_scsi_context to pub
MattJackson
2026-07-28 11:41:49 -07:00
f468237279
io: promote WritebackFile to pub
MattJackson
2026-07-28 11:36:43 -07:00
227545fabc
scsi: promote SenseFamily to a lib-level SCSI-fact primitive
MattJackson
2026-07-28 11:32:13 -07:00
05fd7fcbfa
disc: promote resolve_content_key_map + encrypted_content_ranges to pub
MattJackson
2026-07-28 11:26:37 -07:00
967d0ac77e
mux: fix DTS core-header false-drops + close TrueHD/mux gate coverage
Matthew Jackson
2026-07-24 10:28:21 -07:00
eb0aa3556e
Fix read-fault misclassification, DTS AMODE channel table, and untestable guards
Matthew Jackson
2026-07-24 09:59:33 -07:00
7ba43d9c02
mux: distinguish FMTS phase-probe read fault from wrong key; cover multi-CPS
Matthew Jackson
2026-07-24 09:28:09 -07:00
bf9a69ec80
mux: thread halt into live AACS key-map resolution; cover Session arm
Matthew Jackson
2026-07-24 09:04:19 -07:00
6d6e60fdf8
mux: resolve+install AACS key map on live single-pass (Session/Live)
Matthew Jackson
2026-07-24 08:34:51 -07:00
661ab138c6
Fix audit findings: DTS AMODE bound, key-fetch negative memoization, PGS probe coverage
Matthew Jackson
2026-07-24 08:32:37 -07:00
c00384d4df
mux/driver: map a mid-read halt to completed=false (Stop is not a failure)
Matthew Jackson
2026-07-24 07:52:42 -07:00
e8c151792d
mux: make write-pipeline send deadline per-call via MuxOptions
Matthew Jackson
2026-07-24 02:38:30 -07:00
20b36229a5
mux: restore three drive_mux regressions from the mux hoist
Matthew Jackson
2026-07-24 02:27:57 -07:00
71aad385c7
mux: add MuxInput::Live for the inline live-drive single-pass path
Matthew Jackson
2026-07-24 01:53:36 -07:00
ec5b10f83a
mux/driver: split on_progress; stage live drive as session reader
Matthew Jackson
2026-07-24 01:01:34 -07:00
5181f6ce19
mux/driver: forward reader-side events through Arc<dyn MuxEvents>
Matthew Jackson
2026-07-24 00:37:03 -07:00
a711ee1d00
mux: add high-level mux_stream driver (layering step 4a)
Matthew Jackson
2026-07-24 00:27:47 -07:00
f2b7cc9bdd
Add DiscSession::resolve_keys and resolve_keys_for for base AACS keys
Matthew Jackson
2026-07-24 00:09:28 -07:00
6f53767e8b
Add scan_iso entry point for file-backed ISO scans
Matthew Jackson
2026-07-23 23:48:50 -07:00
7ed798e386
libfreemkv: add DiscSession (drive open/bring-up hoist, step 1)
Matthew Jackson
2026-07-23 23:37:20 -07:00
b9568242df
libfreemkv: 10-phase release audit fixes (v1.5.2..HEAD)
Matthew Jackson
2026-07-23 21:57:50 -07:00
8ac18fa631
changelog: document 1.5.2 TrueHD/FMTS/extract/trailing-partial fixes
Matthew Jackson
2026-07-23 16:09:03 -07:00
197489fb7c
Cache AacsKeyMap key indices; extract + test whole-disc range merge
Matthew Jackson
2026-07-23 16:00:00 -07:00
dc7dfc6041
Test hygiene: real AACS decrypt coverage, drop dead recovery fixtures
Matthew Jackson
2026-07-23 15:45:17 -07:00
0acb326079
Fix FMTS per-title resolve, extract multi-CPS keying, trailing-partial guard
Matthew Jackson
2026-07-23 15:36:15 -07:00
e632874665
Fix TrueHD channel-correction probe on AACS discs; delete dead reactive key-fetch path
Matthew Jackson
2026-07-23 14:03:08 -07:00
88e58bfc95
Decrypt is keymap-only: sweep/patch/extract, no AACS trial-decrypt
Matthew Jackson
2026-07-23 13:24:36 -07:00
279ba0dd7c
AacsKeyMap: a positive map — no key for a sector means pass through
Matthew Jackson
2026-07-23 12:58:35 -07:00
1eb6910bdb
Harden mux + decrypt paths; fail-loud on unresolvable keys
Matthew Jackson
2026-07-23 12:02:43 -07:00
e380e3b7c8
restore freemkv-unlock path dep for local dev (post-v1.5.2)
Matthew Jackson
2026-07-22 22:19:42 -07:00
ff349fa61b
v1.5.2: bump version (freemkv-unlock git-pinned for the tag)
Matthew Jackson
2026-07-22 22:19:39 -07:00
52fd0f733a
CSS DVD: resolve the per-title key at read time, drop the scan-time crack
Matthew Jackson
2026-07-22 22:15:27 -07:00
5b03fd8ebc
libfreemkv: 1.5.2 changelog reflects the shipped playback-order crack
Matthew Jackson
2026-07-22 13:45:15 -07:00
c635190b0d
libfreemkv: restore freemkv-unlock path dep on the branch tip
Matthew Jackson
2026-07-22 13:43:32 -07:00
34c5293704
CSS DVD mux: per-title key via scan-key reuse + playback-order crack
Matthew Jackson
2026-07-22 10:58:10 -07:00
bb59166e48
v1.5.1: bump version (freemkv-unlock git-pinned for the tag)
Matthew Jackson
2026-07-20 17:04:24 -07:00
ea047b57d6
restore freemkv-unlock path dep for local dev (post-v1.5.1)
Matthew Jackson
2026-07-20 17:02:14 -07:00
909fe48628
v1.5.1: bump version (freemkv-unlock git-pinned for the tag)
Matthew Jackson
2026-07-20 17:02:11 -07:00
da19280950
mux/codec/truehd: fix MLP major-sync checksum endianness (was dropping the whole TrueHD track)
Matthew Jackson
2026-07-20 16:19:13 -07:00
2274423a6f
aacs: parse HD DVD VTKF title keys at the spec's 36-byte stride
Matthew Jackson
2026-07-20 11:57:13 -07:00
c1f1593003
aacs: discover HD DVD AACS dir + title-key files instead of hardcoding /ANY!/VTKF000
Matthew Jackson
2026-07-20 11:29:28 -07:00
6718c9cdb2
release: tee up 1.5.1 (marginal-read reporting fix)
Matthew Jackson
2026-07-19 20:47:52 -07:00
9fdd5edb65
drive: report marginal reads (PER=1) so a dirty disc can't pass clean
Matthew Jackson
2026-07-19 20:30:21 -07:00
8a5a26f2a5
changelog: 1.5.0 release date + trim to app-level detail
Matthew Jackson
2026-07-19 17:34:21 -07:00
97ce0b7fab
restore freemkv-unlock path dep for local dev (post-v1.5.0)
Matthew Jackson
2026-07-19 15:37:27 -07:00
e194ef1585
v1.5.0: bump version (freemkv-unlock git-pinned for the tag)
Matthew Jackson
2026-07-19 15:37:25 -07:00
4d1b922232
changelog: drop-on-undecodable audio + forced PGS detection (1.5.0)
Matthew Jackson
2026-07-19 14:29:57 -07:00
3841ae2250
disc: detect forced PGS subtitles from stream content for info
Matthew Jackson
2026-07-19 14:23:04 -07:00
2ccb5c9d01
mux/codec/mpegaudio: keep free-format frames
Matthew Jackson
2026-07-19 14:23:04 -07:00
b2bd5f8b3e
mux/codec/truehd: fix drop-forward poison + rate/resync validation
Matthew Jackson
2026-07-19 14:23:04 -07:00
6f055394c7
release: 1.5.0
Matthew Jackson
2026-07-19 13:42:48 -07:00
98f3dc513f
mux: detect forced PGS subtitles from the stream
Matthew Jackson
2026-07-19 13:42:48 -07:00
5ecfe7c69a
mux/codec: drop undecodable audio frames, keep A/V sync
Matthew Jackson
2026-07-19 13:42:48 -07:00
f255361683
dts: emit clean core alone when the extension boundary is garbage
Matthew Jackson
2026-07-19 09:27:28 -07:00
c6e6bb9f4b
changelog: faststart default + DTS/DTS-HD audio (mp4://)
Matthew Jackson
2026-07-18 22:35:37 -07:00
f7edd4e6a9
mux/mp4: DTS audio (dtsc/dtsh + ddts)
Matthew Jackson
2026-07-18 22:18:35 -07:00
a947439171
mux/mp4: faststart on by default (reserve-and-fill)
Matthew Jackson
2026-07-18 21:43:44 -07:00
8e6114cd2a
changelog: mp4:// input demuxer (1.5.0)
Matthew Jackson
2026-07-18 21:22:41 -07:00
8f55cb78d2
mux/mp4: MP4 demuxer — mp4:// as a source
Matthew Jackson
2026-07-18 21:10:15 -07:00
65e14fe3b7
mux/mp4: route through WritebackFile (bounded-cache writeback)
Matthew Jackson
2026-07-18 20:57:44 -07:00
1e3610fd75
changelog: mp4:// native MP4 muxer (1.5.0)
Matthew Jackson
2026-07-18 20:44:18 -07:00
0c9d375548
mux/mp4: M2 — audio tracks + fit oracle (multi-track)
Matthew Jackson
2026-07-18 20:37:10 -07:00
8aff7fe708
mux: native progressive MP4 muxer (mp4://) — M1 video track
Matthew Jackson
2026-07-18 20:16:19 -07:00
489545c865
mux: add video:// sink (video-only per-track elementary streams)
Matthew Jackson
2026-07-18 19:24:59 -07:00
281d8baed6
changelog: 1.5.0 — extraction sinks + complete json:// model
Matthew Jackson
2026-07-18 19:13:30 -07:00
6a4ac97a33
mux: json:// emits the complete title model (no dropped fields)
Matthew Jackson
2026-07-18 18:14:11 -07:00
a8563e9fa3
test: pin audio://sub://chapters://json:// in the scheme round-trip
Matthew Jackson
2026-07-18 17:46:08 -07:00
63f6909ff0
mux: chapters:// and json:// metadata sinks
Matthew Jackson
2026-07-18 17:45:39 -07:00
9f33306a0a
mux: audio:// and sub:// sinks (demux filtered by track class)
Matthew Jackson
2026-07-18 17:24:28 -07:00
43cdc1351d
restore freemkv-unlock path dep for local dev (post-v1.4.5)
Matthew Jackson
2026-07-18 16:08:03 -07:00
5728a7c577
v1.4.5: bump version (freemkv-unlock git-pinned for the tag)
Matthew Jackson
2026-07-18 16:08:01 -07:00
f85d91a17a
changelog: 1.4.5 (FMTS clean single-variant mux + key-Debug redaction + hex fix)
Matthew Jackson
2026-07-18 13:30:36 -07:00
a688e2c642
mux: FMTS read-plan on the inline live-drive path too (DiscStream::with_key_map)
Matthew Jackson
2026-07-18 13:27:48 -07:00
05fb632d7c
mux: FMTS reads only our-phase units (AacsKeyMap::read_plan)
Matthew Jackson
2026-07-18 12:06:20 -07:00
3cb0a8f41c
remove user-facing English from the library (KeyOrigin::name, hddvd Title)
Matthew Jackson
2026-07-17 21:50:09 -07:00
9dbfb70f7e
narrow leaked-internal pub surface to pub(crate)
Matthew Jackson
2026-07-17 21:45:33 -07:00
9af3f7da7a
disc: collapse decrypt_keys_for_title twin into one method
Matthew Jackson
2026-07-17 21:41:10 -07:00
2638c3075e
css: remove redundant crack_key_halt wrapper
Matthew Jackson
2026-07-17 21:34:37 -07:00
3661942bdb
mux: collapse FviSink::create/create_with_source into one create
Matthew Jackson
2026-07-17 21:32:39 -07:00
43c1f9bda0
mux: collapse MkvStream::create/create_at into one create(.., Option<&Path>)
Matthew Jackson
2026-07-17 21:31:29 -07:00
37832ac2dd
hex: canonical hex->integer parsers + public strip_hex_prefix
Matthew Jackson
2026-07-17 21:25:59 -07:00
2263d2cc4e
disc: redact Debug for AacsState/Key/HandshakeResult (test-guarded)
Matthew Jackson
2026-07-17 21:08:57 -07:00
3546648faa
aacs: redact Debug for ResolvedChain/ResolvedKeys/ProcessingKeyMatch (test-guarded)
Matthew Jackson
2026-07-17 21:03:31 -07:00
98000869b2
css: redact CssState Debug (test-guarded)
Matthew Jackson
2026-07-17 21:00:34 -07:00
e308c5b825
aacs/types: redact Debug for all key-bearing types (test-guarded)
Matthew Jackson
2026-07-17 20:56:38 -07:00
5e1f880f6e
libfreemkv: phase-aware FMTS decode + two-operation KeyFetch/KeySource seam
Matthew Jackson
2026-07-17 20:51:15 -07:00
ffe8ee8684
restore freemkv-unlock path dep for local dev (post-v1.4.4)
Matthew Jackson
2026-07-16 21:44:08 -07:00
93571d9181
v1.4.4: bump version (freemkv-unlock git-pinned for the tag)
v1.4.4
Matthew Jackson
2026-07-16 21:44:05 -07:00
89af9876ae
keysource: add DecodeSampleSet — a >=MIN_SAMPLE_UNITS-by-construction sample set so an online request can't be built under-sized
Matthew Jackson
2026-07-16 21:43:02 -07:00
0471e0ca40
restore freemkv-unlock path dep for local dev (post-v1.4.3)
Matthew Jackson
2026-07-16 21:06:04 -07:00
38207d2272
v1.4.3: bump version (freemkv-unlock git-pinned for the tag)
Matthew Jackson
2026-07-16 21:06:01 -07:00