Skip to content

Commit f4d0051

Browse files
chore(release): prep 6.25.4 - a record loses its SEI at the door
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HX5zV3Fcf7Nzq4DYGdXvQE
1 parent d2fc7f2 commit f4d0051

3 files changed

Lines changed: 28 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,30 @@ the public-API contract.
1212

1313
_Nothing yet._
1414

15+
## [6.25.4] - 2026-08-14
16+
17+
([release notes](https://github.com/superuser404notfound/AetherEngine/releases/tag/6.25.4))
18+
19+
### Fixed
20+
21+
- A forwarded Annex-B config record no longer carries its prefix SEI into the `hvcC` the mp4
22+
muxer builds (#365). When the record and the packets are both Annex B the record has to be
23+
forwarded as it is, because movenc reads it to decide whether to convert the samples, and it
24+
then builds the `hvcC` itself. `ff_isom_write_hvcc` collects five NAL types, not three (VPS,
25+
SPS, PPS, SEI_PREFIX, SEI_SUFFIX), so a prefix SEI in a Matroska CodecPrivate becomes a fourth
26+
array in the init sample description. That is the record Apple TV's HEVC track builder rejects
27+
(AE#187: `asset.tracks count=0`, no format description), and the AE#187 defense cannot reach
28+
this door: it guards on `configurationVersion == 1`, which an Annex-B buffer fails by
29+
construction, and the muxer-built record never passes through the engine. The
30+
non-parameter-set NALs are now dropped before the muxer runs and the record stays Annex B, so
31+
the decision movenc makes about the samples is unchanged.
32+
33+
### Changed
34+
35+
- The `#365` forward branch logs what the config record is made of (`VPS×1 (28 B), SPS×1
36+
(112 B), PPS×1 (10 B), SEI_PREFIX×1 (570 B)`) and what it dropped. A record's size alone does
37+
not say whether the excess is a large SPS or an SEI, and only the latter reaches the `hvcC`.
38+
1539
## [6.25.3] - 2026-08-14
1640

1741
([release notes](https://github.com/superuser404notfound/AetherEngine/releases/tag/6.25.3))

Examples/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Two complementary samples covering different audiences:
1717
```
1818
https://github.com/superuser404notfound/AetherEngine
1919
```
20-
Dependency Rule: Up to Next Major Version, starting from `6.25.3`. Add the `AetherEngine` library product to your app target.
20+
Dependency Rule: Up to Next Major Version, starting from `6.25.4`. Add the `AetherEngine` library product to your app target.
2121

2222
3. **Drop the file in.** Replace the Xcode template's default `App.swift` (or whatever the generated `@main` file is called) with the contents of [`MinimalPlayerApp.swift`](MinimalPlayer/MinimalPlayerApp.swift). The file is self-contained: it defines both the `@main App` struct and the `ContentView`.
2323

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ Subtitle cues land in raw source PTS; render the overlay against `player.sourceT
274274
Install via Swift Package Manager:
275275

276276
```swift
277-
.package(url: "https://github.com/superuser404notfound/AetherEngine", from: "6.25.3")
277+
.package(url: "https://github.com/superuser404notfound/AetherEngine", from: "6.25.4")
278278
```
279279

280280
Two complementary samples ship in `Examples/`:
@@ -458,10 +458,10 @@ Browse all of this as a searchable site at **[aetherengine.superuser404.de](http
458458
AetherEngine uses [Semantic Versioning](https://semver.org). The public API surface, every `public` declaration in `Sources/AetherEngine/`, is the stability contract. **Major** removes / renames public symbols or breaks adopters; **Minor** adds public API or codec / format support; **Patch** fixes bugs with no public API change. `internal` types are not part of the contract.
459459

460460
```swift
461-
.package(url: "https://github.com/superuser404notfound/AetherEngine", from: "6.25.3")
461+
.package(url: "https://github.com/superuser404notfound/AetherEngine", from: "6.25.4")
462462
```
463463

464-
Pin to `.upToNextMinor(from: "6.25.3")` for stricter teams that prefer to opt into minor bumps explicitly.
464+
Pin to `.upToNextMinor(from: "6.25.4")` for stricter teams that prefer to opt into minor bumps explicitly.
465465

466466
## Requirements
467467

0 commit comments

Comments
 (0)