# Changelog

## [Unreleased]

- Your change here.

[Unreleased]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.4.0...HEAD

## [0.4.0] - 2025-09-10

### Fixed
- Fixed building with Xcode 26 RC

[0.4.0]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.9...0.4.0

## [0.3.9] - 2025-05-25

### Fixed
- Fixed crash on iOS 17 by using a new task instead of assumeIsolated

[0.3.9]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.8...0.3.9

## [0.3.8] - 2025-04-04

### Fixed
- Fixed crash when cancelled while writing samples
- Fixed tests with Swift 6.1 on macOS
- Fixed tests in Xcode 16.4 on macOS 15.5
- Fixed warnings in tests in Xcode 16.3

### Changed
- Stopped relying on specific delay in cancellation test
- Updated readme for 0.3.8

[0.3.8]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.7...0.3.8

## [0.3.7] - 2025-01-19

### Fixed
- Simplified cancellation and fixed memory leak

[0.3.7]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.6...0.3.7

## [0.3.6] - 2025-01-19

### Fixed
- Attempted to fix possible retain cycle

[0.3.6]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.5...0.3.6

## [0.3.5] - 2025-01-19

### Fixed
- Improved cancellation response (potential memory leak issue)

### Removed
- Deleted dead code

### Changed
- Extracted BaseTests class for better test organization

[0.3.5]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.4...0.3.5

## [0.3.4] - 2024-11-08

### Fixed
- [#3](https://github.com/samsonjs/SJSAssetExportSession/pull/3): Fixed encoding stalling by interleaving audio and video samples - [@samsonjs](https://github.com/samsonjs).

### Changed
- Updated readme with additional documentation

[0.3.4]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.3...0.3.4

## [0.3.3] - 2024-10-19

### Changed
- Made AudioOutputSettings and VideoOutputSettings properties public

### Fixed
- Made tests work on iOS 18.0 and iOS 18.1
- Fixed progress test

### Removed
- Removed SampleWriter.duration property

[0.3.3]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.2...0.3.3

## [0.3.2] - 2024-10-19

### Fixed
- Fixed release builds by using makeStream for SampleWriter's progress

### Changed
- Updated example in readme to version 0.3.2

[0.3.2]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3.1...0.3.2

## [0.3.1] - 2024-10-19

### Fixed
- Removed unnecessary Task.yield() to fix intermittent hang

### Changed
- Improved code style and debuggability
- Updated version in readme to 0.3.1

[0.3.1]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.3...0.3.1

## [0.3] - 2024-10-18

### Added
- Made audio/video settings Hashable, Sendable, and Codable

### Changed
- Updated readme for version 0.3
- Fixed SwiftPM instructions in readme

[0.3]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.2...0.3

## [0.2] - 2024-10-04

### Fixed
- [#2](https://github.com/samsonjs/SJSAssetExportSession/pull/2): Fixed spatial audio handling by dropping spatial audio tracks to fix encoding iPhone 16 videos - [@samsonjs](https://github.com/samsonjs).

### Changed
- Code style improvements
- Updated version in readme's SPM example

[0.2]: https://github.com/samsonjs/SJSAssetExportSession/compare/0.1...0.2

## [0.1] - 2024-09-18

### Added
- Initial release as Swift Package
- Alternative to AVAssetExportSession with custom audio/video settings
- Builder pattern API for AudioOutputSettings and VideoOutputSettings
- Flexible raw dictionary API for maximum control
- Progress reporting via AsyncStream
- Support for iOS 17.0+, macOS 14.0+, and visionOS 1.3+
- Swift 6 strict concurrency support
- Comprehensive test suite with multiple video formats

### Changed
- Converted from Xcode project to Swift package
- Made yielding last progress value more reliable
- Set deployment targets to iOS 17, macOS 14, and visionOS 1.3

### Added
- Support for writing metadata on assets
- Documentation for most public API
- README and license files

[0.1]: https://github.com/samsonjs/SJSAssetExportSession/releases/tag/0.1
