Releases: karhu-tv/opx-drift
Release list
opx-drift v0.2.1
--version now works. v0.2.0 shipped without it: opx-drift --version answered unknown subcommand '--version' and exited 2. That is the one question a support conversation opens with, so it is fixed and pinned.
--version/-Vand--help/-hare answered from any argument position, before the subcommand is read.opx-drift file clip.mp4 --versionreports the version rather than exiting 2 on a misplaced flag — the position a flag has to be typed in is exactly the detail that goes wrong under pressure.--versionprints to stdout, so it pipes.
Nothing else changed. file and sync are byte-for-byte the same analysis as v0.2.0 — same exact-rational frame period, same EBU R37 bounds, same quantisation floor printed under every report.
Linux x86_64, requires FFmpeg 6.x shared libraries (sudo apt install ffmpeg).
Built with the release-dist profile and --remap-path-prefix, stripped, and passed through the release gate: no symbol table, no build-host paths, no internal identifiers, no sibling-crate symbols. The FFI struct offsets are proven against a generated fixture rather than assumed, and the packaged tarball is extracted and run before publication rather than the build tree.
opx-drift v0.2.0
First public release.
Media timeline drift analyser. Two modes:
file— PTS deviation against the stream's own declared rate. The frame period is an exact rational, never floated, so the deviation reported is not an artefact of the measurement. Steps of ±1 period are dropped or repeated frames.sync— audio-versus-video differential with EBU R37 (+40 / −60 ms) quoted. Each track is measured against its own declaration so the common-mode term subtracts out. Two files compares their video timelines instead.
Every report prints its quantisation floor. A deviation below that floor is not a measurement, and the tool says so rather than returning a confident zero.
Linux x86_64, requires FFmpeg 6.x shared libraries (sudo apt install ffmpeg).
Built with the release-dist profile and --remap-path-prefix, stripped, and passed through the release gate: no symbol table, no build-host paths, no internal identifiers, no sibling-crate symbols.