Bot releases are visible (Hide)
[!IMPORTANT]
This bumps the minimum requirement forAVFoundation
methods to macOS 12, iOS 15, tvOS 15, watchOS 8.
The requirements are only bumped for AVFoundation-specific methods. The core TimecodeKit functionality requirements remain the same as before.
AVAsset
and AVAssetTrack
methods to Swift ConcurrencyTimecode.StringFormat
: Added Identifiable
and Sendable
conformancesTimecode
: Added UTType
static constantsTimecode
: Added Transferable
conformance (conditionally available on supported platform versions)Timecode
: Added NSItemProvider
encoding and decoding methodsUTType
/Transferable
/NSItemProvider
featuresPublished by orchetect 30 days ago
Fraction
: Added stringValue
propertyIdentifiable
conformance to all relevant typesPublished by orchetect 4 months ago
AVAsset
add/replace timecode track reliabilityPublished by orchetect 8 months ago
Fraction
: Added *
and /
math operators between two instances (#71)Published by orchetect 10 months ago
Timecode
: Added base
parameter to converted(to:)
instance method (to convert to a new sub-frames base if needed)Published by orchetect 10 months ago
TimecodeInterval
: Added init(realTime: TimeInterval)
Fraction
: Added Sendable
conformanceTimecode.Properties
: Added Sendable
conformanceTimecode.UpperLimit
: Added Sendable
conformanceFraction
: Changed Equatable
behavior to compare reduced values and not literal valuesFraction
: init(fcpxmlString:)
no longer reduces fraction implicitlyFraction
: fcpxmlStringValue
property no longer reduces fraction implicitlyPublished by orchetect 11 months ago
Fraction
: Added zero
static constructorFraction
: Added Comparable
conformanceFraction
: Added +
and -
math operators between instancesPublished by orchetect 11 months ago
Fraction
: Fixed bug where fraction might not normalizeFraction
: Improved conversion from Double
Fraction
: Added init?(double:decimalPrecision:)
Fraction
: Added decimalValue
propertyFraction
: Added isWholeInteger
propertyFraction
: Added init?(fcpxmlString:)
and fcpxmlStringValue
propertyPublished by orchetect 11 months ago
Timecode
instances with different frame rates would produce incorrect resultsTimecode
description now includes subframes for better debuggingPublished by orchetect 12 months ago
Sendable
conformance to all concrete typesPublished by orchetect about 1 year ago
Timecode
: Fixed potential overflow/underflow crash when raw component value(s) were very largePublished by orchetect about 1 year ago
Published by orchetect about 1 year ago
Published by orchetect about 1 year ago
For previous users of TimecodeKit 1.x, see the 2.x Migration Guide for details.
Published by orchetect about 1 year ago
Note: This is the last release of TimecodeKit 1.x before the forthcoming TimecodeKit 2 which maintains the same functionality but brings improved API and ease-of-use going forward.
Published by orchetect over 1 year ago
Published by orchetect over 1 year ago
AVMutableMovie
: add and replace Timecode Track methods allow omitting duration parameter to auto-detect video duration (#59)Published by orchetect over 1 year ago
AVAssetTrack
: Added durationTimecode()
methodCMTimeRange
: Added timecodeRange()
methodPublished by orchetect over 1 year ago
Added Feet+Frames conversion support (Avid / Pro Tools 35mm 4-perf standard)
FeetAndFrames
structTimecode
init
and feetAndFramesValue
propertyTimecode
/ TimecodeFrameRate
: Added 96 fps & 95.904 fps (96/1.001) (#57)
VideoFrameRate
: Added 96p & 95.9p (#57)
VideoFrameRate
: Added 59.94i
Timecode.SubFramesBase
: Added Identifiable
conformanceVideoFrameRate
: Added strict: Bool = false
parameter to init(fps:interlaced:)
VideoFrameRate
: Fixed typo in _59_94p.stringValue
string valuePublished by orchetect over 1 year ago
It is now possible to fully read, mutate, and create timecode tracks in supported video file formats (.mov, .mp4).
AVAsset
: Improved resiliency of reading timecodeAVMutableMovie
addTimecodeTrack(startTimecode:duration:extensions:fileType:)
replaceTimecodeTrack(startTimecode:duration:extensions:fileType:)
Timecode
: Added cmFormatDescription(extensions:)
In a future release, some of the AVAsset methods will be improved to handle AVAsset timecode tracks with multiple samples (ie: not just a start timecode and total duration, but subranges as well if the track contains edit segments). For the time being, all origin timecodes are returned for timecode tracks without ranges. The first of which is the start timecode which is most important.
Timecode
: Added compare(to:timelineStart:)
method to return ComparisonResult
Timecode
: Added mutating sort(ascending:timelineStart:)
Timecode
: Added sorted(ascending:timelineStart:) -> [Timecode]
Timecode
: Added isSorted(ascending:timelineStart:) -> Bool
TimecodeSortComparator
Timecode
: Added isZero
propertyTimecode.FrameCount
: Added isZero
propertyTimecode.FrameCount.Value
: Added isZero
property