c43dd3ca4a
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.
72 lines
2.0 KiB
YAML
72 lines
2.0 KiB
YAML
name: Receiver
|
|
options:
|
|
bundleIdPrefix: screencast
|
|
deploymentTarget:
|
|
iOS: "17.0"
|
|
createIntermediateGroups: true
|
|
generateEmptySchemes: false
|
|
|
|
targets:
|
|
Receiver:
|
|
type: application
|
|
platform: iOS
|
|
deploymentTarget: "17.0"
|
|
sources:
|
|
- path: Receiver
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: screencast.receiver
|
|
PRODUCT_NAME: Receiver
|
|
TARGETED_DEVICE_FAMILY: 1
|
|
CODE_SIGN_STYLE: Automatic
|
|
DEVELOPMENT_TEAM: ""
|
|
IPHONEOS_DEPLOYMENT_TARGET: "17.0"
|
|
ENABLE_USER_SCRIPT_SANDBOXING: YES
|
|
info:
|
|
path: Receiver/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: screencast
|
|
CFBundleName: screencast
|
|
CFBundleShortVersionString: "0.9.0"
|
|
CFBundleVersion: "1"
|
|
UILaunchScreen: {}
|
|
UISupportedInterfaceOrientations:
|
|
- UIInterfaceOrientationLandscapeLeft
|
|
- UIInterfaceOrientationLandscapeRight
|
|
UISupportedInterfaceOrientations~ipad:
|
|
- UIInterfaceOrientationLandscapeLeft
|
|
- UIInterfaceOrientationLandscapeRight
|
|
- UIInterfaceOrientationPortrait
|
|
- UIInterfaceOrientationPortraitUpsideDown
|
|
# Local-network privacy: required for both Bonjour and the TCP/UDP
|
|
# sockets. Without NSBonjourServices the sender never resolves us.
|
|
NSLocalNetworkUsageDescription: "screencast receives a video stream on your local network."
|
|
NSBonjourServices:
|
|
- "_screencast._tcp"
|
|
|
|
ReceiverTests:
|
|
type: bundle.unit-test
|
|
platform: iOS
|
|
deploymentTarget: "17.0"
|
|
sources:
|
|
- path: ReceiverTests
|
|
dependencies:
|
|
- target: Receiver
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: screencast.receiver.tests
|
|
BUNDLE_LOADER: "$(TEST_HOST)"
|
|
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Receiver.app/Receiver"
|
|
|
|
schemes:
|
|
Receiver:
|
|
build:
|
|
targets:
|
|
Receiver: all
|
|
test:
|
|
config: Debug
|
|
targets:
|
|
- ReceiverTests
|
|
archive:
|
|
enabled: false
|