Releases: orchetect/swift-timecode
Releases Β· orchetect/swift-timecode
1.6.6
1.6.5
1.6.4
1.6.3
Timecode: Negative value calculations now more accurateTimecode:init(rawValues:)negative input now returnsComponentswith only largest non-zero component negatedTimecode.FrameCount: AddedisNegativeTimecodeInterval: AddedEquatable,HashableconformanceTimecodeInterval: Addedinit(_: Fraction)andrationalValueTimecodeInterval: RemovedSign, now usingFloatingPointSignTimecodeInterval:signproperty is now publicFraction: Addedabs()Fraction: AddedisNegative,negate(),negated()Fraction:isSimplestFormrenamed toisReducedFraction: AddedtoTimecodeInterval(at:)convenience method
Full Changelog: 1.6.2...1.6.3
1.6.2
Timecode: Rational value (fraction, includingCMTime) now supports subframes.
Subframes were previously truncated in 1.6.1.
Full Changelog: 1.6.1...1.6.2
1.6.1
Timecode: AddedCMTimeinit,setTimecode(CMTime)methods andcmTimepropertyFraction: refined instance methods
Full Changelog: 1.6.0...1.6.1
1.6.0
TimecodeKit 1.6.0
New Frame Rate Paradigm
Version 1.6.0 introduces a new frame rate paradigm:
- Renamed:
Timecode.FrameRateto top-levelTimecodeFrameRate - New:
VideoFrameRate
In summary:
VideoFrameRaterates are actual video format rates (25p, 25i, 29.97p, 29.97i, etc.)- can be constructed from a raw floating-point fps value:
init(fps:) - can be converted to a corresponding
TimecodeFrameRate:timecodeFrameRate(drop:)
- can be constructed from a raw floating-point fps value:
TimecodeFrameRaterates are timecode display rates (25, 29.97, 29.97d, etc.)
New Rational Fraction Notation
Some file formats encode video frame rate and/or time locations (timecode) in rational number notation: a fraction of two whole number integers. (AAF encodes video rate this way, whereas FCPXML (Final Cut Pro) encodes both video rate and time locations as fractions.)
TimecodeKit now incorporates initializers and properties to facilitate the use of rational fractions, and can convert to/from them.
1.5.0
- For ancillary value types (real time, audio samples,
FrameCount):- Added
clamping,wrapping, andrawValuesvariants to bothinitandsetTimecode()methods.
Previously only primary value types (String,TCC) had these. (#49)
- Added
- Added
Intoverloads for audio samples in addition to whereDoublewas already used (#50) - Minor API consistency tweaks
1.4.0
Fixed
- 30d / 60d / 120d: Conversions for real time and audio samples are now correct
- 30d / 60d / 120d: Rate
fractionis now correct (inherently fixesaafMetadataandCMTimeas well)
Improvements
- Internal refactors to simplify various calculations
Timecode(raw:)video frame rate heuristic now omits 30d/60d/120d from being possible matches, as they are not video rates and are display rates only