TimecodeKit
TimecodeKit copied to clipboard
AVFoundation Extensions Improvements
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:
- reading timecode track(s) and returning the start timecode (
startTimecode()
) - reading all timecode event(s) from all timecode track(s) (
timecodes()
) - writing a timecode track using a single origin timecode (
addTimecodeTrack()
/replaceTimecodeTrack()
)
Ideally, support would be added for:
- writing complex timelines with more than one timecode event
- add an overload for
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 values
- add an overload for
2. Improve async
/await
Support
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.