feat(ios): native receiver app (Swift, min iOS 17)
A native iOS receiver so an iPhone can act as the second receiver, speaking the existing signaling + RTP protocol (no C++ changes) and mirroring the Android receiver (Phase 8) source-to-source. - RTP core (header/packet, jitter buffer, H.264 depacketizer) ported from the Android receiver - BSD-socket signaling server (dual-stack, most-recent-peer, never-throwing sends) + NSBonjourServices - VideoToolbox H.264 decode (in-band SPS/PPS, real-time, rebuilds on size change) -> AVSampleBufferDisplayLayer - PLI keyframe recovery (500 ms) + pendingOffer for late surface attach - XcodeGen project + bootstrap.sh; XCTest port of the Android suite + new coverage - .gitignore for generated artifacts; CHANGELOG; PHASES + MEMORY updated Status: authored; on-device validation pending a Mac + Xcode 26 + iPhone 16.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# Changelog
|
||||
|
||||
Notable changes to `screen_cast`. Loosely follows [Keep a Changelog].
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- **Phase 9 — iOS receiver app** (`ios/`): a native Swift receiver so an iPhone
|
||||
can act as the second receiver. Speaks the existing signaling + RTP protocol
|
||||
(no C++ changes), mirroring the Android receiver (Phase 8) source-to-source.
|
||||
- RTP core (header/packet, jitter buffer, H.264 depacketizer) ported
|
||||
source-to-source from the Android receiver.
|
||||
- BSD-socket signaling server (dual-stack, most-recent-peer, never-throwing
|
||||
sends) + `NSBonjourServices` advertisement.
|
||||
- VideoToolbox H.264 decode (in-band SPS/PPS, real-time, session rebuilt on
|
||||
resolution change) rendered via `AVSampleBufferDisplayLayer` (letterbox).
|
||||
- PLI keyframe recovery (rate-limited 500 ms) and `pendingOffer` for late
|
||||
surface attach; no placeholder sizing before the first real keyframe.
|
||||
- XcodeGen project + `bootstrap.sh`; XCTest port of the Android suite plus new
|
||||
signaling / line-framing / AVCC / NAL-extraction coverage.
|
||||
|
||||
> **Status:** authored; on-device validation pending a Mac + Xcode 26 + iPhone 16
|
||||
> (local-network/Bonjour consent, the H.264 format-description recipe, and the
|
||||
> VideoToolbox render path are the on-device verification items).
|
||||
|
||||
[Keep a Changelog]: https://keepachangelog.com/en/1.1.0/
|
||||
Reference in New Issue
Block a user