Streamie: IP Camera Streaming icon

Streamie: IP Camera Streamingv4.15.1

Released July 7, 2026Major

iOS

What changed

  • New featureAdded support for UniFi Protect third-party ONVIF camera RTSP data.
  • UXImproved camera discovery labels using metadata like display name and market name.
  • New featureRevised third-party camera streaming to use local-only Protect-exposed streams via local API.
  • UXUpdated UniFi configuration UI to clarify unconfigured or unavailable stream states.
  • PerformanceFixed numerous concurrency races and crashes in VideoToolbox, Chinstrap, and SMB client.
  • UXRefactored toolbar hover and touch visibility handling for better gesture control.
  • PerformanceHardened H.264 RTP parsing against malformed or empty payloads.
  • PerformanceFixed stream profile view lifecycle and error overlay attachment to prevent layout state growth.
  • PerformanceDisabled AVKit automatic Now Playing updates to prevent MediaRemote abort crashes.
  • PerformanceReworked local HTTP server and Nest WebRTC teardown to prevent thread buildup and stale callbacks.

Original release notes

UniFi Protect

- Added support for UniFi Protect third-party ONVIF camera RTSP data.
- Improved camera discovery labels using richer Protect metadata like display name, market name, type, host, MAC, and port.
- Revised third-party camera streaming to use local-only Protect-exposed streams via the local Integration API and X-API-KEY, avoiding direct third-party camera RTSP fallback.
- Updated UniFi configuration/search UI to make unconfigured or unavailable third-party stream states clearer.
- Redacted sensitive local API key data from debug output.

Streaming/UI Behavior

- Disabled UIKit’s fragile hidesBarsOnSwipe path while streaming after a nav-bar gesture crash.
- Refactored toolbar hover/touch visibility handling so explicit swipes are not immediately undone by hover timers.
- Fixed stream profile view lifecycle cleanup so retry/cancel paths detach old profile views and do not grow Auto Layout state.
- Fixed stream error overlay attachment so repeated failures update the existing overlay instead of embedding duplicate constrained views.

Crash/Concurrency Hardening

- Fixed Chinstrap reachable-cache races by serializing reachable mapping/timer state and using captured identifiers.
- Fixed VideoToolbox decoder completion/backpressure races by replacing a shared semaphore with per-waiter tracking and making completion/session-leave paths idempotent.
- Held the VideoToolbox session lock through decoded-frame callbacks to avoid shutdown racing frame delivery.
- Fixed SMB client cache races by serializing SMB2Manager ownership and invalidating only the manager instance that failed.
- Fixed startup Penguin client crashes by avoiding late getPenguin() singleton force unwraps during delayed startup work.
- Fixed stream start lifecycle races by sequencing starts, snapshotting source/profile state, and ignoring stale callbacks.
- Fixed Krill status logging races by serializing status access and adding explicit CustomStringConvertible.
- Hardened H.264 RTP parsing against empty payloads, zero-length STAP-A fragments, and short FU-A packets.
- Guarded account-scoped UserDefaults access when no account/public key is active.
- Reworked local HTTP server launch/stop lifecycle to avoid Perfect thread buildup and stale lifecycle callbacks.
- Fixed Nest WebRTC teardown by adding explicit hangup/cleanup and guarding stale callbacks.
- Replaced the intentional remote-admin…

Disclosure: Independent intel to help mobile builders succeed.

AI-powered analysis with automated quality gates, built from publicly available sources. Marlvel.ai is not affiliated with, endorsed by, or sponsored by Streamie: IP Camera Streaming, its developer, the app publisher, Apple, or Google Play. All trademarks, logos, and screenshots referenced remain the property of their respective owners.

Data licensed under CC-BY-NC 4.0