diff --git a/apps/ios/VMC/Playback/ClearKeyDashProxy.swift b/apps/ios/VMC/Playback/ClearKeyDashProxy.swift index 4a98a94..6731df3 100644 --- a/apps/ios/VMC/Playback/ClearKeyDashProxy.swift +++ b/apps/ios/VMC/Playback/ClearKeyDashProxy.swift @@ -4,6 +4,18 @@ import os.log private let proxyLog = Logger(subsystem: "nl.vonas.mediacluster.ios", category: "ClearKeyProxy") +private final class ResumeOnce: @unchecked Sendable { + private var done = false + private let lock = NSLock() + func run(_ body: () -> Void) { + lock.lock() + defer { lock.unlock() } + guard !done else { return } + done = true + body() + } +} + /// Lokale HTTP-proxy: haalt DASH MPD/segmenten op, strip DRM-metadata, decrypt CENC met ClearKey. /// VLC speelt daarna plain DASH vanaf 127.0.0.1. final class ClearKeyDashProxy { @@ -45,17 +57,6 @@ final class ClearKeyDashProxy { self.cryptoState = CencMp4Decryptor.SessionState() self.generation += 1 - final class ResumeOnce: @unchecked Sendable { - private var done = false - private let lock = NSLock() - func run(_ body: () -> Void) { - lock.lock() - defer { lock.unlock() } - guard !done else { return } - done = true - body() - } - } let once = ResumeOnce() do {