Currently, extension methods in TimecodeKit on AVFoundation objects (AVAsset, AVAssetTrack, AVMovie) are somewhat limited as far as reading and writing timecode track information.
1. Improve/Extend Functionality
Multiple timecode events are possible in a single timecode track, especially if a video track contains multiple edits.
The current implementation (as of TimecodeKit 2.0.10) covers the essential functionality of:
[x] reading timecode track(s) and returning the start timecode (startTimecode())
[x] reading all timecode event(s) from all timecode track(s) (timecodes())
[ ] writing complex timelines with more than one timecode event
[ ] add an overload for addTimecodeTrack() and replaceTimecodeTrack() that takes a dictionary of [TimeInterval: Timecode] or something akin to it, keyed by time offsets from movie start with the timecode as values
[ ] refactor methods like timecodes() → [[Timecode]] to include time ranges
[ ] support negative timecode (using negative bit for 32 and 64 bit timecode encoding)
[ ] read/write Adobe Premiere XML data chunk in video file header, which contains timecode information
Numerous AVFoundation methods being used by TimecodeKit in order to read/write AVAsset/AVMovie data are using legacy (deprecated) synchronous methods on AVFoundation objects. It would be ideal to add async variants to TimecodeKit methods to use the newer asynchronous counterparts.
[x] Refactor asynchronous completion closure-based methods to async (implemented in TimecodeKit 2.2.0)
Currently, extension methods in TimecodeKit on AVFoundation objects (
AVAsset
,AVAssetTrack
,AVMovie
) are somewhat limited as far as reading and writing timecode track information.1. Improve/Extend Functionality
Multiple timecode events are possible in a single timecode track, especially if a video track contains multiple edits.
The current implementation (as of TimecodeKit 2.0.10) covers the essential functionality of:
startTimecode()
)timecodes()
)addTimecodeTrack()
/replaceTimecodeTrack()
)AVAsset Future Feature Roadmap
addTimecodeTrack()
andreplaceTimecodeTrack()
that takes a dictionary of [TimeInterval
:Timecode
] or something akin to it, keyed by time offsets from movie start with the timecode as valuestimecodes() → [[Timecode]]
to include time ranges2. Improve
async
/await
SupportNumerous AVFoundation methods being used by TimecodeKit in order to read/write AVAsset/AVMovie data are using legacy (deprecated) synchronous methods on AVFoundation objects. It would be ideal to add async variants to TimecodeKit methods to use the newer asynchronous counterparts.
async
(implemented in TimecodeKit 2.2.0)