MattJackson
cccb6b4631
Add StdioStream, IsoStream; enforce scheme:// URL format
...
- StdioStream: stdin/stdout pipe, format-agnostic
- IsoStream: read BD-TS from Blu-ray ISO images
- URL resolver: bare paths rejected, all URLs require scheme:// prefix
- Validation: empty paths, missing ports, read-only/write-only errors
- Tests: 22 passing (URL parsing, validation, metadata roundtrip)
- Docs: full stream table with 7 stream types
2026-04-11 14:54:28 +00:00
MattJackson
c063dbd76e
Update README for v0.6.0: AACS 2.0 done, open() all drives, .cargo gitignore
2026-04-10 09:24:01 -07:00
MattJackson
9241d767ee
Code audit: fix unused variables, update docs
...
- Fix unused variable warnings in profile parsing (|e| -> |_|)
- Fix outdated 'freemkv info --share' reference in README (now drive-info)
2026-04-10 08:19:01 -07:00
MattJackson
65996ade59
Remove SpeedTable, add probe_disc(), named constants, clean architecture
...
- Removed SpeedTable entirely — drive manages speeds after probe
- Renamed read_speed_table() → probe_disc()
- Named all SCSI constants: SUB_CMD_UNLOCK, SUB_CMD_INIT, SUB_CMD_PROBE,
INIT_ADDR_BD, INIT_ADDR_UHD, PROBE_COARSE_END, PROBE_FINE_END, etc.
- Auto-detect BD vs UHD from disc capacity for correct probe init address
- Fixed NOMINAL_SPEED_B (was invalid CDB, removed — single max instead)
- Added session.set_speed() for simple speed control
- Error recovery: re-init on first error, BD2x on repeated errors
- Batch size uses full kernel limit (was 80%, now 100%)
- Clean variant_a/variant_b with named constants
API: open() → wait_ready() → init() → probe_disc() → scan() → read
2026-04-09 15:17:25 -07:00
MattJackson
12a5985a58
Update README: v0.6.0 API, real sample output
2026-04-09 13:03:00 -07:00
MattJackson
097473d371
Update README and CHANGELOG for v0.5.0
...
- 12-23 MB/s read speeds, kernel transfer limit auto-detection
- Full custom firmware init pipeline (all 10 handlers)
- MPLS parser fixes (PGS language offset, secondary streams)
- 206 profiles with full per-drive data
2026-04-09 07:27:10 -07:00
MattJackson
262f9a7f8d
Add keydb updater, update README with labels + multi-lingual + real output
2026-04-07 21:21:18 -07:00
MattJackson
f357e0fe26
README: update dep version to 0.4, update architecture
2026-04-07 20:57:32 -07:00
MattJackson
237528b385
Add macOS SCSI support via IOKit SCSITaskDeviceInterface
...
IOKit backend for macOS optical drives. Accepts BSD device paths
(/dev/disk2), walks IORegistry to find authoring device, sends
SCSI commands through SCSITaskDeviceInterface COM vtable.
2026-04-07 13:15:06 -07:00
MattJackson
6ab355245f
Update README: remove hard numbers, add AACS and disc scanning
...
- Removed specific drive counts (was "206 bundled")
- Removed version-specific install instructions
- Added Disc::scan() + ContentReader as primary API example
- Added AACS section explaining transparent decryption
- Added docs/ link for technical documentation
- Added E7xxx AACS error range
- Evergreen — no dates or counts that need manual maintenance
2026-04-07 12:21:08 -07:00
MattJackson
b34b7dd2e6
Improve API docs, add docs.rs badge + link
2026-04-06 15:58:32 -07:00
MattJackson
1e90497760
README: consistent layout, remove prebuilt binary section (library only)
2026-04-06 12:33:20 -07:00
MattJackson
55bc96eeee
Add release workflow + prebuilt binary downloads in README
...
- GitHub Actions: build Linux x86_64 + aarch64 on tag push
- Upload tar.gz binaries to GitHub Releases
- README: download table linking to releases
2026-04-06 11:44:46 -07:00
MattJackson
0b2e390715
Remove supported/status gatekeeping, update README
...
- Removed supported field — if we have a profile, try unlock
- Removed ReadinessStatus, DriveMatch, flashable detection
- N0 and NM firmware both unlockable (library is agnostic)
- README: full API docs, chipset table, error codes, example output
2026-04-06 11:29:57 -07:00
MattJackson
afb43c69b3
Add CONTRIBUTING.md, issue templates, badges
2026-04-06 10:43:52 -07:00
MattJackson
b9ea1d29dd
libfreemkv v0.1.0 — Open source 4K UHD / Blu-ray / DVD drive library
...
Features:
- Open drive identification via SPC-4 INQUIRY + MMC-6 GET CONFIGURATION
- 141 supported drives with bundled profiles
- MT1959 platform: unlock, calibrate, raw sector reads
- DriveSpeed enum: BD1x-BD12x, DVD1x-DVD16x
- Field names follow SPC-4 §6.4.2 and MMC-6 §5.3.10 standards
- No proprietary fingerprints — open matching by SCSI fields
- Zero config: profiles compiled into binary
Tested on real hardware: HL-DT-ST BD-RE BU40N 1.03
2026-04-06 10:00:00 -07:00