Commit Graph
8 Commits
Author SHA1 Message Date
Dylan M. Taylor 87b406d709 Preserve unsupported session sample rates on decode 2026-11-13 10:50:15 +00:00
Dylan M. Taylor 2f281a419c Align frame grid lines with typed position rounding 2026-11-13 09:22:49 +00:00
Dylan M. Taylor f16d99f71c fix time parsing and frame boundary edge cases 2026-11-13 07:57:51 +00:00
Dylan M. Taylor 5e24ea380e Avoid duplicated timeline time primitives 2026-11-13 07:47:44 +00:00
Dylan M. Taylor f29cb7076f Merge remote-tracking branch 'origin/main' into codex/craft-time-soundcraft
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	README.md
2026-11-13 03:46:49 +00:00
Dylan M. Taylor ae0f0488dc craft-time: preserve SoundCraft time API and serialization 2026-11-13 03:44:51 +00:00
Zach Shallbetter 5416121e09 Address review findings in craft-time (fixes #15)
- Clarify Tick(i64::MIN) overflow documentation in division/remainder contracts.
- Format negative audio sample timestamps with absolute components and leading minus sign.
- Parse 4-field negative timecodes as absolute positions rather than relative offsets.
- Reject signed values inside multi-field timecode components.
2026-10-20 17:14:16 -07:00
Zach Shallbetter d2dc637c77 Add craft-time: exact media timebase and SMPTE timecode (refs #2)
Implements the shared exact media timebase crate (craft-time) for FilmCraft,
SoundCraft, EffectCraft, and animation timeline consumers:

- Exact Signed Timebase: Tick represents exact media time across [Tick::MIN, Tick::MAX]
  using TICKS_PER_SECOND = 254_016_000_000, supporting exact integer conversions for
  standard film, broadcast, audio, and high-framerate rates.
- Total Arithmetic Contract: All operations are strictly panic-free under
  #![deny(clippy::panic)], providing checked_* methods and monotonic saturating
  division.
- Timecode and Film Footage: Full SMPTE 12M drop-frame and non-drop-frame formatting,
  35mm and 16mm feet+frames, broadcast zero-padded hours, and EffectCraft unpadded hours.
- Differential Testing: 15 test suites incorporating full FilmCraft and EffectCraft
  parity vectors, boundary saturation tests, and proptest monotonicity invariants.
2026-10-18 14:06:33 -07:00