Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AVFoundation Extensions Improvements #76

Open
4 of 11 tasks
orchetect opened this issue Jun 14, 2024 · 1 comment
Open
4 of 11 tasks

AVFoundation Extensions Improvements #76

orchetect opened this issue Jun 14, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@orchetect
Copy link
Owner

orchetect commented Jun 14, 2024

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:

AVAsset Future Feature Roadmap

  • 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
  • Final Cut Pro embed chunk?
  • Avid / Pro Tools embed chunk?

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.

  • Refactor asynchronous completion closure-based methods to async (implemented in TimecodeKit 2.2.0)
@orchetect orchetect added the enhancement New feature or request label Jun 14, 2024
@orchetect orchetect self-assigned this Jun 14, 2024
@orchetect orchetect changed the title AVAsset Improvements AVFoundation Extensions Improvements Jun 14, 2024
@orchetect
Copy link
Owner Author

TimecodeKit was fully updated for Swift Concurrency (async/await) as of release 2.2.0.

Further functionality improvements for AVFoundation methods may still come in future releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant