From e8dc8e9f6d9b1b2f03a9d006e61f0d5be7123c05 Mon Sep 17 00:00:00 2001 From: Max Heimbrock <43608204+MaxHeimbrock@users.noreply.github.com> Date: Thu, 25 Jun 2026 11:35:24 +0200 Subject: [PATCH 1/6] Reorganize Runtime/Scripts into feature folders The root of Runtime/Scripts had ~25 loosely-mixed files; this groups them by domain. Namespaces (LiveKit, LiveKit.Internal*) are folder-independent, so this is purely file moves with no code changes. Verified by a successful macOS build of the Meet sample. - Core/ Room, Participant, Track, TrackPublication, RtcSource, E2EE, Rpc - Audio/ audio frames/streams/sources + AudioResampler & AudioProbe (from Internal/) - Video/ video frames/streams/sources + YuvToRgbConverter (flattened subfolder) - DataStreams/ DataStream, ByteDataStream, TextDataStream, DataTrack - Internal/FFI/ renamed from FFIClients/; pulled in FFIClient, NativeMethods, FFIHandle, FfiInstruction; dissolved Pools/ObjectPool/ - Internal/Threading/ YieldInstruction, TaskYieldInstruction, MonoBehaviourContext, ThreadSafeQueue Proto/, TokenSource/, UniTask/ left unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) --- Runtime/Scripts/Audio.meta | 8 ++++++++ Runtime/Scripts/{ => Audio}/AudioFrame.cs | 0 Runtime/Scripts/{ => Audio}/AudioFrame.cs.meta | 0 Runtime/Scripts/{Internal => Audio}/AudioProbe.cs | 0 Runtime/Scripts/{Internal => Audio}/AudioProbe.cs.meta | 0 Runtime/Scripts/{Internal => Audio}/AudioResampler.cs | 0 .../Scripts/{Internal => Audio}/AudioResampler.cs.meta | 0 Runtime/Scripts/{ => Audio}/AudioStream.cs | 0 Runtime/Scripts/{ => Audio}/AudioStream.cs.meta | 0 Runtime/Scripts/{ => Audio}/BasicAudioSource.cs | 0 Runtime/Scripts/{ => Audio}/BasicAudioSource.cs.meta | 0 Runtime/Scripts/{ => Audio}/MicrophoneSource.cs | 0 Runtime/Scripts/{ => Audio}/MicrophoneSource.cs.meta | 0 Runtime/Scripts/{ => Audio}/PlatformAudio.cs | 0 Runtime/Scripts/{ => Audio}/PlatformAudio.cs.meta | 0 Runtime/Scripts/{ => Audio}/PlatformAudioSource.cs | 0 Runtime/Scripts/{ => Audio}/PlatformAudioSource.cs.meta | 0 Runtime/Scripts/{ => Audio}/RtcAudioSource.cs | 0 Runtime/Scripts/{ => Audio}/RtcAudioSource.cs.meta | 0 Runtime/Scripts/Core.meta | 8 ++++++++ Runtime/Scripts/{ => Core}/E2EE.cs | 0 Runtime/Scripts/{ => Core}/E2EE.cs.meta | 0 Runtime/Scripts/{ => Core}/Participant.cs | 0 Runtime/Scripts/{ => Core}/Participant.cs.meta | 0 Runtime/Scripts/{ => Core}/Room.cs | 0 Runtime/Scripts/{ => Core}/Room.cs.meta | 0 Runtime/Scripts/{ => Core}/Rpc.cs | 0 Runtime/Scripts/{ => Core}/Rpc.cs.meta | 0 Runtime/Scripts/{ => Core}/RtcSource.cs | 0 Runtime/Scripts/{ => Core}/RtcSource.cs.meta | 0 Runtime/Scripts/{ => Core}/Track.cs | 0 Runtime/Scripts/{ => Core}/Track.cs.meta | 0 Runtime/Scripts/{ => Core}/TrackPublication.cs | 0 Runtime/Scripts/{ => Core}/TrackPublication.cs.meta | 0 Runtime/Scripts/DataStreams.meta | 8 ++++++++ Runtime/Scripts/{ => DataStreams}/ByteDataStream.cs | 0 Runtime/Scripts/{ => DataStreams}/ByteDataStream.cs.meta | 0 Runtime/Scripts/{ => DataStreams}/DataStream.cs | 0 Runtime/Scripts/{ => DataStreams}/DataStream.cs.meta | 0 Runtime/Scripts/{ => DataStreams}/DataTrack.cs | 0 Runtime/Scripts/{ => DataStreams}/DataTrack.cs.meta | 0 Runtime/Scripts/{ => DataStreams}/TextDataStream.cs | 0 Runtime/Scripts/{ => DataStreams}/TextDataStream.cs.meta | 0 Runtime/Scripts/Internal/{FFIClients.meta => FFI.meta} | 0 Runtime/Scripts/Internal/{ => FFI}/FFIClient.cs | 0 Runtime/Scripts/Internal/{ => FFI}/FFIClient.cs.meta | 0 Runtime/Scripts/Internal/{FFIClients => FFI}/FFIEvents.cs | 0 .../Internal/{FFIClients => FFI}/FFIEvents.cs.meta | 0 Runtime/Scripts/Internal/{ => FFI}/FFIHandle.cs | 0 Runtime/Scripts/Internal/{ => FFI}/FFIHandle.cs.meta | 0 Runtime/Scripts/Internal/{ => FFI}/FfiInstruction.cs | 0 Runtime/Scripts/Internal/{ => FFI}/FfiInstruction.cs.meta | 0 .../Internal/{FFIClients => FFI}/FfiRequestExtensions.cs | 0 .../{FFIClients => FFI}/FfiRequestExtensions.cs.meta | 0 .../Internal/{FFIClients => FFI}/FfiResponseWrap.cs | 0 .../Internal/{FFIClients => FFI}/FfiResponseWrap.cs.meta | 0 .../Scripts/Internal/{FFIClients => FFI}/IFFIClient.cs | 0 .../Internal/{FFIClients => FFI}/IFFIClient.cs.meta | 0 Runtime/Scripts/Internal/{ => FFI}/NativeMethods.cs | 0 Runtime/Scripts/Internal/{ => FFI}/NativeMethods.cs.meta | 0 Runtime/Scripts/Internal/{FFIClients => FFI}/Pools.meta | 0 .../Internal/{FFIClients => FFI}/Pools/IMultiPool.cs | 0 .../Internal/{FFIClients => FFI}/Pools/IMultiPool.cs.meta | 0 .../Internal/{FFIClients => FFI}/Pools/Memory.meta | 0 .../{FFIClients => FFI}/Pools/Memory/ArrayMemoryPool.cs | 0 .../Pools/Memory/ArrayMemoryPool.cs.meta | 0 .../{FFIClients => FFI}/Pools/Memory/IMemoryPool.cs | 0 .../{FFIClients => FFI}/Pools/Memory/IMemoryPool.cs.meta | 0 .../{FFIClients => FFI}/Pools/Memory/MemoryWrap.cs | 0 .../{FFIClients => FFI}/Pools/Memory/MemoryWrap.cs.meta | 0 .../Scripts/Internal/{FFIClients => FFI}/Pools/Pools.cs | 0 .../Internal/{FFIClients => FFI}/Pools/Pools.cs.meta | 0 .../{FFIClients => FFI}/Pools/ThreadSafeMultiPool.cs | 0 .../{FFIClients => FFI}/Pools/ThreadSafeMultiPool.cs.meta | 0 .../ObjectPool => FFI/Pools}/ThreadSafeObjectPool.cs | 0 .../ObjectPool => FFI/Pools}/ThreadSafeObjectPool.cs.meta | 0 .../Scripts/Internal/{FFIClients => FFI}/Requests.meta | 0 .../Internal/{FFIClients => FFI}/Requests/FFIBridge.cs | 0 .../{FFIClients => FFI}/Requests/FFIBridge.cs.meta | 0 .../{FFIClients => FFI}/Requests/FFIBridgeExtensions.cs | 0 .../Requests/FFIBridgeExtensions.cs.meta | 0 .../{FFIClients => FFI}/Requests/FfiRequestWrap.cs | 0 .../{FFIClients => FFI}/Requests/FfiRequestWrap.cs.meta | 0 .../Internal/{FFIClients => FFI}/Requests/IFFIBridge.cs | 0 .../{FFIClients => FFI}/Requests/IFFIBridge.cs.meta | 0 Runtime/Scripts/Internal/{FFIClients => FFI}/SmartWrap.cs | 0 .../Internal/{FFIClients => FFI}/SmartWrap.cs.meta | 0 Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool.meta | 3 --- Runtime/Scripts/Internal/Threading.meta | 8 ++++++++ .../Internal/{ => Threading}/MonoBehaviourContext.cs | 0 .../Internal/{ => Threading}/MonoBehaviourContext.cs.meta | 0 .../Internal/{ => Threading}/TaskYieldInstruction.cs | 0 .../Internal/{ => Threading}/TaskYieldInstruction.cs.meta | 0 .../Scripts/Internal/{ => Threading}/ThreadSafeQueue.cs | 0 .../Internal/{ => Threading}/ThreadSafeQueue.cs.meta | 0 .../Scripts/Internal/{ => Threading}/YieldInstruction.cs | 0 .../Internal/{ => Threading}/YieldInstruction.cs.meta | 0 Runtime/Scripts/{ => Video}/CameraVideoSource.cs | 0 Runtime/Scripts/{ => Video}/CameraVideoSource.cs.meta | 0 Runtime/Scripts/{ => Video}/RtcVideoSource.cs | 0 Runtime/Scripts/{ => Video}/RtcVideoSource.cs.meta | 0 Runtime/Scripts/{ => Video}/ScreenVideoSource.cs | 0 Runtime/Scripts/{ => Video}/ScreenVideoSource.cs.meta | 0 Runtime/Scripts/{ => Video}/TextureVideoSource.cs | 0 Runtime/Scripts/{ => Video}/TextureVideoSource.cs.meta | 0 Runtime/Scripts/{ => Video}/VideoFrame.cs | 0 Runtime/Scripts/{ => Video}/VideoFrame.cs.meta | 0 Runtime/Scripts/{ => Video}/VideoStream.cs | 0 Runtime/Scripts/{ => Video}/VideoStream.cs.meta | 0 Runtime/Scripts/{ => Video}/WebCameraSource.cs | 0 Runtime/Scripts/{ => Video}/WebCameraSource.cs.meta | 0 111 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 Runtime/Scripts/Audio.meta rename Runtime/Scripts/{ => Audio}/AudioFrame.cs (100%) rename Runtime/Scripts/{ => Audio}/AudioFrame.cs.meta (100%) rename Runtime/Scripts/{Internal => Audio}/AudioProbe.cs (100%) rename Runtime/Scripts/{Internal => Audio}/AudioProbe.cs.meta (100%) rename Runtime/Scripts/{Internal => Audio}/AudioResampler.cs (100%) rename Runtime/Scripts/{Internal => Audio}/AudioResampler.cs.meta (100%) rename Runtime/Scripts/{ => Audio}/AudioStream.cs (100%) rename Runtime/Scripts/{ => Audio}/AudioStream.cs.meta (100%) rename Runtime/Scripts/{ => Audio}/BasicAudioSource.cs (100%) rename Runtime/Scripts/{ => Audio}/BasicAudioSource.cs.meta (100%) rename Runtime/Scripts/{ => Audio}/MicrophoneSource.cs (100%) rename Runtime/Scripts/{ => Audio}/MicrophoneSource.cs.meta (100%) rename Runtime/Scripts/{ => Audio}/PlatformAudio.cs (100%) rename Runtime/Scripts/{ => Audio}/PlatformAudio.cs.meta (100%) rename Runtime/Scripts/{ => Audio}/PlatformAudioSource.cs (100%) rename Runtime/Scripts/{ => Audio}/PlatformAudioSource.cs.meta (100%) rename Runtime/Scripts/{ => Audio}/RtcAudioSource.cs (100%) rename Runtime/Scripts/{ => Audio}/RtcAudioSource.cs.meta (100%) create mode 100644 Runtime/Scripts/Core.meta rename Runtime/Scripts/{ => Core}/E2EE.cs (100%) rename Runtime/Scripts/{ => Core}/E2EE.cs.meta (100%) rename Runtime/Scripts/{ => Core}/Participant.cs (100%) rename Runtime/Scripts/{ => Core}/Participant.cs.meta (100%) rename Runtime/Scripts/{ => Core}/Room.cs (100%) rename Runtime/Scripts/{ => Core}/Room.cs.meta (100%) rename Runtime/Scripts/{ => Core}/Rpc.cs (100%) rename Runtime/Scripts/{ => Core}/Rpc.cs.meta (100%) rename Runtime/Scripts/{ => Core}/RtcSource.cs (100%) rename Runtime/Scripts/{ => Core}/RtcSource.cs.meta (100%) rename Runtime/Scripts/{ => Core}/Track.cs (100%) rename Runtime/Scripts/{ => Core}/Track.cs.meta (100%) rename Runtime/Scripts/{ => Core}/TrackPublication.cs (100%) rename Runtime/Scripts/{ => Core}/TrackPublication.cs.meta (100%) create mode 100644 Runtime/Scripts/DataStreams.meta rename Runtime/Scripts/{ => DataStreams}/ByteDataStream.cs (100%) rename Runtime/Scripts/{ => DataStreams}/ByteDataStream.cs.meta (100%) rename Runtime/Scripts/{ => DataStreams}/DataStream.cs (100%) rename Runtime/Scripts/{ => DataStreams}/DataStream.cs.meta (100%) rename Runtime/Scripts/{ => DataStreams}/DataTrack.cs (100%) rename Runtime/Scripts/{ => DataStreams}/DataTrack.cs.meta (100%) rename Runtime/Scripts/{ => DataStreams}/TextDataStream.cs (100%) rename Runtime/Scripts/{ => DataStreams}/TextDataStream.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients.meta => FFI.meta} (100%) rename Runtime/Scripts/Internal/{ => FFI}/FFIClient.cs (100%) rename Runtime/Scripts/Internal/{ => FFI}/FFIClient.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/FFIEvents.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/FFIEvents.cs.meta (100%) rename Runtime/Scripts/Internal/{ => FFI}/FFIHandle.cs (100%) rename Runtime/Scripts/Internal/{ => FFI}/FFIHandle.cs.meta (100%) rename Runtime/Scripts/Internal/{ => FFI}/FfiInstruction.cs (100%) rename Runtime/Scripts/Internal/{ => FFI}/FfiInstruction.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/FfiRequestExtensions.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/FfiRequestExtensions.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/FfiResponseWrap.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/FfiResponseWrap.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/IFFIClient.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/IFFIClient.cs.meta (100%) rename Runtime/Scripts/Internal/{ => FFI}/NativeMethods.cs (100%) rename Runtime/Scripts/Internal/{ => FFI}/NativeMethods.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/IMultiPool.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/IMultiPool.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Memory.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Memory/ArrayMemoryPool.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Memory/ArrayMemoryPool.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Memory/IMemoryPool.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Memory/IMemoryPool.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Memory/MemoryWrap.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Memory/MemoryWrap.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Pools.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/Pools.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/ThreadSafeMultiPool.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Pools/ThreadSafeMultiPool.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients/Pools/ObjectPool => FFI/Pools}/ThreadSafeObjectPool.cs (100%) rename Runtime/Scripts/Internal/{FFIClients/Pools/ObjectPool => FFI/Pools}/ThreadSafeObjectPool.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests/FFIBridge.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests/FFIBridge.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests/FFIBridgeExtensions.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests/FFIBridgeExtensions.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests/FfiRequestWrap.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests/FfiRequestWrap.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests/IFFIBridge.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/Requests/IFFIBridge.cs.meta (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/SmartWrap.cs (100%) rename Runtime/Scripts/Internal/{FFIClients => FFI}/SmartWrap.cs.meta (100%) delete mode 100644 Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool.meta create mode 100644 Runtime/Scripts/Internal/Threading.meta rename Runtime/Scripts/Internal/{ => Threading}/MonoBehaviourContext.cs (100%) rename Runtime/Scripts/Internal/{ => Threading}/MonoBehaviourContext.cs.meta (100%) rename Runtime/Scripts/Internal/{ => Threading}/TaskYieldInstruction.cs (100%) rename Runtime/Scripts/Internal/{ => Threading}/TaskYieldInstruction.cs.meta (100%) rename Runtime/Scripts/Internal/{ => Threading}/ThreadSafeQueue.cs (100%) rename Runtime/Scripts/Internal/{ => Threading}/ThreadSafeQueue.cs.meta (100%) rename Runtime/Scripts/Internal/{ => Threading}/YieldInstruction.cs (100%) rename Runtime/Scripts/Internal/{ => Threading}/YieldInstruction.cs.meta (100%) rename Runtime/Scripts/{ => Video}/CameraVideoSource.cs (100%) rename Runtime/Scripts/{ => Video}/CameraVideoSource.cs.meta (100%) rename Runtime/Scripts/{ => Video}/RtcVideoSource.cs (100%) rename Runtime/Scripts/{ => Video}/RtcVideoSource.cs.meta (100%) rename Runtime/Scripts/{ => Video}/ScreenVideoSource.cs (100%) rename Runtime/Scripts/{ => Video}/ScreenVideoSource.cs.meta (100%) rename Runtime/Scripts/{ => Video}/TextureVideoSource.cs (100%) rename Runtime/Scripts/{ => Video}/TextureVideoSource.cs.meta (100%) rename Runtime/Scripts/{ => Video}/VideoFrame.cs (100%) rename Runtime/Scripts/{ => Video}/VideoFrame.cs.meta (100%) rename Runtime/Scripts/{ => Video}/VideoStream.cs (100%) rename Runtime/Scripts/{ => Video}/VideoStream.cs.meta (100%) rename Runtime/Scripts/{ => Video}/WebCameraSource.cs (100%) rename Runtime/Scripts/{ => Video}/WebCameraSource.cs.meta (100%) diff --git a/Runtime/Scripts/Audio.meta b/Runtime/Scripts/Audio.meta new file mode 100644 index 00000000..bf353cbf --- /dev/null +++ b/Runtime/Scripts/Audio.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e88390570b20494a888942982d3cc66 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/AudioFrame.cs b/Runtime/Scripts/Audio/AudioFrame.cs similarity index 100% rename from Runtime/Scripts/AudioFrame.cs rename to Runtime/Scripts/Audio/AudioFrame.cs diff --git a/Runtime/Scripts/AudioFrame.cs.meta b/Runtime/Scripts/Audio/AudioFrame.cs.meta similarity index 100% rename from Runtime/Scripts/AudioFrame.cs.meta rename to Runtime/Scripts/Audio/AudioFrame.cs.meta diff --git a/Runtime/Scripts/Internal/AudioProbe.cs b/Runtime/Scripts/Audio/AudioProbe.cs similarity index 100% rename from Runtime/Scripts/Internal/AudioProbe.cs rename to Runtime/Scripts/Audio/AudioProbe.cs diff --git a/Runtime/Scripts/Internal/AudioProbe.cs.meta b/Runtime/Scripts/Audio/AudioProbe.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/AudioProbe.cs.meta rename to Runtime/Scripts/Audio/AudioProbe.cs.meta diff --git a/Runtime/Scripts/Internal/AudioResampler.cs b/Runtime/Scripts/Audio/AudioResampler.cs similarity index 100% rename from Runtime/Scripts/Internal/AudioResampler.cs rename to Runtime/Scripts/Audio/AudioResampler.cs diff --git a/Runtime/Scripts/Internal/AudioResampler.cs.meta b/Runtime/Scripts/Audio/AudioResampler.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/AudioResampler.cs.meta rename to Runtime/Scripts/Audio/AudioResampler.cs.meta diff --git a/Runtime/Scripts/AudioStream.cs b/Runtime/Scripts/Audio/AudioStream.cs similarity index 100% rename from Runtime/Scripts/AudioStream.cs rename to Runtime/Scripts/Audio/AudioStream.cs diff --git a/Runtime/Scripts/AudioStream.cs.meta b/Runtime/Scripts/Audio/AudioStream.cs.meta similarity index 100% rename from Runtime/Scripts/AudioStream.cs.meta rename to Runtime/Scripts/Audio/AudioStream.cs.meta diff --git a/Runtime/Scripts/BasicAudioSource.cs b/Runtime/Scripts/Audio/BasicAudioSource.cs similarity index 100% rename from Runtime/Scripts/BasicAudioSource.cs rename to Runtime/Scripts/Audio/BasicAudioSource.cs diff --git a/Runtime/Scripts/BasicAudioSource.cs.meta b/Runtime/Scripts/Audio/BasicAudioSource.cs.meta similarity index 100% rename from Runtime/Scripts/BasicAudioSource.cs.meta rename to Runtime/Scripts/Audio/BasicAudioSource.cs.meta diff --git a/Runtime/Scripts/MicrophoneSource.cs b/Runtime/Scripts/Audio/MicrophoneSource.cs similarity index 100% rename from Runtime/Scripts/MicrophoneSource.cs rename to Runtime/Scripts/Audio/MicrophoneSource.cs diff --git a/Runtime/Scripts/MicrophoneSource.cs.meta b/Runtime/Scripts/Audio/MicrophoneSource.cs.meta similarity index 100% rename from Runtime/Scripts/MicrophoneSource.cs.meta rename to Runtime/Scripts/Audio/MicrophoneSource.cs.meta diff --git a/Runtime/Scripts/PlatformAudio.cs b/Runtime/Scripts/Audio/PlatformAudio.cs similarity index 100% rename from Runtime/Scripts/PlatformAudio.cs rename to Runtime/Scripts/Audio/PlatformAudio.cs diff --git a/Runtime/Scripts/PlatformAudio.cs.meta b/Runtime/Scripts/Audio/PlatformAudio.cs.meta similarity index 100% rename from Runtime/Scripts/PlatformAudio.cs.meta rename to Runtime/Scripts/Audio/PlatformAudio.cs.meta diff --git a/Runtime/Scripts/PlatformAudioSource.cs b/Runtime/Scripts/Audio/PlatformAudioSource.cs similarity index 100% rename from Runtime/Scripts/PlatformAudioSource.cs rename to Runtime/Scripts/Audio/PlatformAudioSource.cs diff --git a/Runtime/Scripts/PlatformAudioSource.cs.meta b/Runtime/Scripts/Audio/PlatformAudioSource.cs.meta similarity index 100% rename from Runtime/Scripts/PlatformAudioSource.cs.meta rename to Runtime/Scripts/Audio/PlatformAudioSource.cs.meta diff --git a/Runtime/Scripts/RtcAudioSource.cs b/Runtime/Scripts/Audio/RtcAudioSource.cs similarity index 100% rename from Runtime/Scripts/RtcAudioSource.cs rename to Runtime/Scripts/Audio/RtcAudioSource.cs diff --git a/Runtime/Scripts/RtcAudioSource.cs.meta b/Runtime/Scripts/Audio/RtcAudioSource.cs.meta similarity index 100% rename from Runtime/Scripts/RtcAudioSource.cs.meta rename to Runtime/Scripts/Audio/RtcAudioSource.cs.meta diff --git a/Runtime/Scripts/Core.meta b/Runtime/Scripts/Core.meta new file mode 100644 index 00000000..0de47c36 --- /dev/null +++ b/Runtime/Scripts/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 29dfdf13abae647a98625e321a810bae +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/E2EE.cs b/Runtime/Scripts/Core/E2EE.cs similarity index 100% rename from Runtime/Scripts/E2EE.cs rename to Runtime/Scripts/Core/E2EE.cs diff --git a/Runtime/Scripts/E2EE.cs.meta b/Runtime/Scripts/Core/E2EE.cs.meta similarity index 100% rename from Runtime/Scripts/E2EE.cs.meta rename to Runtime/Scripts/Core/E2EE.cs.meta diff --git a/Runtime/Scripts/Participant.cs b/Runtime/Scripts/Core/Participant.cs similarity index 100% rename from Runtime/Scripts/Participant.cs rename to Runtime/Scripts/Core/Participant.cs diff --git a/Runtime/Scripts/Participant.cs.meta b/Runtime/Scripts/Core/Participant.cs.meta similarity index 100% rename from Runtime/Scripts/Participant.cs.meta rename to Runtime/Scripts/Core/Participant.cs.meta diff --git a/Runtime/Scripts/Room.cs b/Runtime/Scripts/Core/Room.cs similarity index 100% rename from Runtime/Scripts/Room.cs rename to Runtime/Scripts/Core/Room.cs diff --git a/Runtime/Scripts/Room.cs.meta b/Runtime/Scripts/Core/Room.cs.meta similarity index 100% rename from Runtime/Scripts/Room.cs.meta rename to Runtime/Scripts/Core/Room.cs.meta diff --git a/Runtime/Scripts/Rpc.cs b/Runtime/Scripts/Core/Rpc.cs similarity index 100% rename from Runtime/Scripts/Rpc.cs rename to Runtime/Scripts/Core/Rpc.cs diff --git a/Runtime/Scripts/Rpc.cs.meta b/Runtime/Scripts/Core/Rpc.cs.meta similarity index 100% rename from Runtime/Scripts/Rpc.cs.meta rename to Runtime/Scripts/Core/Rpc.cs.meta diff --git a/Runtime/Scripts/RtcSource.cs b/Runtime/Scripts/Core/RtcSource.cs similarity index 100% rename from Runtime/Scripts/RtcSource.cs rename to Runtime/Scripts/Core/RtcSource.cs diff --git a/Runtime/Scripts/RtcSource.cs.meta b/Runtime/Scripts/Core/RtcSource.cs.meta similarity index 100% rename from Runtime/Scripts/RtcSource.cs.meta rename to Runtime/Scripts/Core/RtcSource.cs.meta diff --git a/Runtime/Scripts/Track.cs b/Runtime/Scripts/Core/Track.cs similarity index 100% rename from Runtime/Scripts/Track.cs rename to Runtime/Scripts/Core/Track.cs diff --git a/Runtime/Scripts/Track.cs.meta b/Runtime/Scripts/Core/Track.cs.meta similarity index 100% rename from Runtime/Scripts/Track.cs.meta rename to Runtime/Scripts/Core/Track.cs.meta diff --git a/Runtime/Scripts/TrackPublication.cs b/Runtime/Scripts/Core/TrackPublication.cs similarity index 100% rename from Runtime/Scripts/TrackPublication.cs rename to Runtime/Scripts/Core/TrackPublication.cs diff --git a/Runtime/Scripts/TrackPublication.cs.meta b/Runtime/Scripts/Core/TrackPublication.cs.meta similarity index 100% rename from Runtime/Scripts/TrackPublication.cs.meta rename to Runtime/Scripts/Core/TrackPublication.cs.meta diff --git a/Runtime/Scripts/DataStreams.meta b/Runtime/Scripts/DataStreams.meta new file mode 100644 index 00000000..e802ad81 --- /dev/null +++ b/Runtime/Scripts/DataStreams.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e497a597b37c9442492b4910793b3955 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/ByteDataStream.cs b/Runtime/Scripts/DataStreams/ByteDataStream.cs similarity index 100% rename from Runtime/Scripts/ByteDataStream.cs rename to Runtime/Scripts/DataStreams/ByteDataStream.cs diff --git a/Runtime/Scripts/ByteDataStream.cs.meta b/Runtime/Scripts/DataStreams/ByteDataStream.cs.meta similarity index 100% rename from Runtime/Scripts/ByteDataStream.cs.meta rename to Runtime/Scripts/DataStreams/ByteDataStream.cs.meta diff --git a/Runtime/Scripts/DataStream.cs b/Runtime/Scripts/DataStreams/DataStream.cs similarity index 100% rename from Runtime/Scripts/DataStream.cs rename to Runtime/Scripts/DataStreams/DataStream.cs diff --git a/Runtime/Scripts/DataStream.cs.meta b/Runtime/Scripts/DataStreams/DataStream.cs.meta similarity index 100% rename from Runtime/Scripts/DataStream.cs.meta rename to Runtime/Scripts/DataStreams/DataStream.cs.meta diff --git a/Runtime/Scripts/DataTrack.cs b/Runtime/Scripts/DataStreams/DataTrack.cs similarity index 100% rename from Runtime/Scripts/DataTrack.cs rename to Runtime/Scripts/DataStreams/DataTrack.cs diff --git a/Runtime/Scripts/DataTrack.cs.meta b/Runtime/Scripts/DataStreams/DataTrack.cs.meta similarity index 100% rename from Runtime/Scripts/DataTrack.cs.meta rename to Runtime/Scripts/DataStreams/DataTrack.cs.meta diff --git a/Runtime/Scripts/TextDataStream.cs b/Runtime/Scripts/DataStreams/TextDataStream.cs similarity index 100% rename from Runtime/Scripts/TextDataStream.cs rename to Runtime/Scripts/DataStreams/TextDataStream.cs diff --git a/Runtime/Scripts/TextDataStream.cs.meta b/Runtime/Scripts/DataStreams/TextDataStream.cs.meta similarity index 100% rename from Runtime/Scripts/TextDataStream.cs.meta rename to Runtime/Scripts/DataStreams/TextDataStream.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients.meta b/Runtime/Scripts/Internal/FFI.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients.meta rename to Runtime/Scripts/Internal/FFI.meta diff --git a/Runtime/Scripts/Internal/FFIClient.cs b/Runtime/Scripts/Internal/FFI/FFIClient.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClient.cs rename to Runtime/Scripts/Internal/FFI/FFIClient.cs diff --git a/Runtime/Scripts/Internal/FFIClient.cs.meta b/Runtime/Scripts/Internal/FFI/FFIClient.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClient.cs.meta rename to Runtime/Scripts/Internal/FFI/FFIClient.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs b/Runtime/Scripts/Internal/FFI/FFIEvents.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/FFIEvents.cs rename to Runtime/Scripts/Internal/FFI/FFIEvents.cs diff --git a/Runtime/Scripts/Internal/FFIClients/FFIEvents.cs.meta b/Runtime/Scripts/Internal/FFI/FFIEvents.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/FFIEvents.cs.meta rename to Runtime/Scripts/Internal/FFI/FFIEvents.cs.meta diff --git a/Runtime/Scripts/Internal/FFIHandle.cs b/Runtime/Scripts/Internal/FFI/FFIHandle.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIHandle.cs rename to Runtime/Scripts/Internal/FFI/FFIHandle.cs diff --git a/Runtime/Scripts/Internal/FFIHandle.cs.meta b/Runtime/Scripts/Internal/FFI/FFIHandle.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIHandle.cs.meta rename to Runtime/Scripts/Internal/FFI/FFIHandle.cs.meta diff --git a/Runtime/Scripts/Internal/FfiInstruction.cs b/Runtime/Scripts/Internal/FFI/FfiInstruction.cs similarity index 100% rename from Runtime/Scripts/Internal/FfiInstruction.cs rename to Runtime/Scripts/Internal/FFI/FfiInstruction.cs diff --git a/Runtime/Scripts/Internal/FfiInstruction.cs.meta b/Runtime/Scripts/Internal/FFI/FfiInstruction.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FfiInstruction.cs.meta rename to Runtime/Scripts/Internal/FFI/FfiInstruction.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs b/Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs rename to Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs diff --git a/Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs.meta b/Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/FfiRequestExtensions.cs.meta rename to Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/FfiResponseWrap.cs b/Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/FfiResponseWrap.cs rename to Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs diff --git a/Runtime/Scripts/Internal/FFIClients/FfiResponseWrap.cs.meta b/Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/FfiResponseWrap.cs.meta rename to Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/IFFIClient.cs b/Runtime/Scripts/Internal/FFI/IFFIClient.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/IFFIClient.cs rename to Runtime/Scripts/Internal/FFI/IFFIClient.cs diff --git a/Runtime/Scripts/Internal/FFIClients/IFFIClient.cs.meta b/Runtime/Scripts/Internal/FFI/IFFIClient.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/IFFIClient.cs.meta rename to Runtime/Scripts/Internal/FFI/IFFIClient.cs.meta diff --git a/Runtime/Scripts/Internal/NativeMethods.cs b/Runtime/Scripts/Internal/FFI/NativeMethods.cs similarity index 100% rename from Runtime/Scripts/Internal/NativeMethods.cs rename to Runtime/Scripts/Internal/FFI/NativeMethods.cs diff --git a/Runtime/Scripts/Internal/NativeMethods.cs.meta b/Runtime/Scripts/Internal/FFI/NativeMethods.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/NativeMethods.cs.meta rename to Runtime/Scripts/Internal/FFI/NativeMethods.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools.meta b/Runtime/Scripts/Internal/FFI/Pools.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools.meta rename to Runtime/Scripts/Internal/FFI/Pools.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/IMultiPool.cs b/Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/IMultiPool.cs rename to Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/IMultiPool.cs.meta b/Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/IMultiPool.cs.meta rename to Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Memory.meta b/Runtime/Scripts/Internal/FFI/Pools/Memory.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Memory.meta rename to Runtime/Scripts/Internal/FFI/Pools/Memory.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Memory/ArrayMemoryPool.cs b/Runtime/Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Memory/ArrayMemoryPool.cs rename to Runtime/Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Memory/ArrayMemoryPool.cs.meta b/Runtime/Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Memory/ArrayMemoryPool.cs.meta rename to Runtime/Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Memory/IMemoryPool.cs b/Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Memory/IMemoryPool.cs rename to Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Memory/IMemoryPool.cs.meta b/Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Memory/IMemoryPool.cs.meta rename to Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Memory/MemoryWrap.cs b/Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Memory/MemoryWrap.cs rename to Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Memory/MemoryWrap.cs.meta b/Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Memory/MemoryWrap.cs.meta rename to Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Pools.cs b/Runtime/Scripts/Internal/FFI/Pools/Pools.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Pools.cs rename to Runtime/Scripts/Internal/FFI/Pools/Pools.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/Pools.cs.meta b/Runtime/Scripts/Internal/FFI/Pools/Pools.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/Pools.cs.meta rename to Runtime/Scripts/Internal/FFI/Pools/Pools.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/ThreadSafeMultiPool.cs b/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/ThreadSafeMultiPool.cs rename to Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/ThreadSafeMultiPool.cs.meta b/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/ThreadSafeMultiPool.cs.meta rename to Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool/ThreadSafeObjectPool.cs b/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool/ThreadSafeObjectPool.cs rename to Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool/ThreadSafeObjectPool.cs.meta b/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool/ThreadSafeObjectPool.cs.meta rename to Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Requests.meta b/Runtime/Scripts/Internal/FFI/Requests.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests.meta rename to Runtime/Scripts/Internal/FFI/Requests.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Requests/FFIBridge.cs b/Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests/FFIBridge.cs rename to Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Requests/FFIBridge.cs.meta b/Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests/FFIBridge.cs.meta rename to Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Requests/FFIBridgeExtensions.cs b/Runtime/Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests/FFIBridgeExtensions.cs rename to Runtime/Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Requests/FFIBridgeExtensions.cs.meta b/Runtime/Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests/FFIBridgeExtensions.cs.meta rename to Runtime/Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Requests/FfiRequestWrap.cs b/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests/FfiRequestWrap.cs rename to Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Requests/FfiRequestWrap.cs.meta b/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests/FfiRequestWrap.cs.meta rename to Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Requests/IFFIBridge.cs b/Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests/IFFIBridge.cs rename to Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs diff --git a/Runtime/Scripts/Internal/FFIClients/Requests/IFFIBridge.cs.meta b/Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/Requests/IFFIBridge.cs.meta rename to Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/SmartWrap.cs b/Runtime/Scripts/Internal/FFI/SmartWrap.cs similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/SmartWrap.cs rename to Runtime/Scripts/Internal/FFI/SmartWrap.cs diff --git a/Runtime/Scripts/Internal/FFIClients/SmartWrap.cs.meta b/Runtime/Scripts/Internal/FFI/SmartWrap.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFIClients/SmartWrap.cs.meta rename to Runtime/Scripts/Internal/FFI/SmartWrap.cs.meta diff --git a/Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool.meta b/Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool.meta deleted file mode 100644 index 6dc9689a..00000000 --- a/Runtime/Scripts/Internal/FFIClients/Pools/ObjectPool.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: f8d30253e11243838563ec78d57565e9 -timeCreated: 1706714202 \ No newline at end of file diff --git a/Runtime/Scripts/Internal/Threading.meta b/Runtime/Scripts/Internal/Threading.meta new file mode 100644 index 00000000..5cadef09 --- /dev/null +++ b/Runtime/Scripts/Internal/Threading.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0071a6647363b4e579950c19ca5c33a4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Scripts/Internal/MonoBehaviourContext.cs b/Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs similarity index 100% rename from Runtime/Scripts/Internal/MonoBehaviourContext.cs rename to Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs diff --git a/Runtime/Scripts/Internal/MonoBehaviourContext.cs.meta b/Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/MonoBehaviourContext.cs.meta rename to Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs.meta diff --git a/Runtime/Scripts/Internal/TaskYieldInstruction.cs b/Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs similarity index 100% rename from Runtime/Scripts/Internal/TaskYieldInstruction.cs rename to Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs diff --git a/Runtime/Scripts/Internal/TaskYieldInstruction.cs.meta b/Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/TaskYieldInstruction.cs.meta rename to Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs.meta diff --git a/Runtime/Scripts/Internal/ThreadSafeQueue.cs b/Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs similarity index 100% rename from Runtime/Scripts/Internal/ThreadSafeQueue.cs rename to Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs diff --git a/Runtime/Scripts/Internal/ThreadSafeQueue.cs.meta b/Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/ThreadSafeQueue.cs.meta rename to Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs.meta diff --git a/Runtime/Scripts/Internal/YieldInstruction.cs b/Runtime/Scripts/Internal/Threading/YieldInstruction.cs similarity index 100% rename from Runtime/Scripts/Internal/YieldInstruction.cs rename to Runtime/Scripts/Internal/Threading/YieldInstruction.cs diff --git a/Runtime/Scripts/Internal/YieldInstruction.cs.meta b/Runtime/Scripts/Internal/Threading/YieldInstruction.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/YieldInstruction.cs.meta rename to Runtime/Scripts/Internal/Threading/YieldInstruction.cs.meta diff --git a/Runtime/Scripts/CameraVideoSource.cs b/Runtime/Scripts/Video/CameraVideoSource.cs similarity index 100% rename from Runtime/Scripts/CameraVideoSource.cs rename to Runtime/Scripts/Video/CameraVideoSource.cs diff --git a/Runtime/Scripts/CameraVideoSource.cs.meta b/Runtime/Scripts/Video/CameraVideoSource.cs.meta similarity index 100% rename from Runtime/Scripts/CameraVideoSource.cs.meta rename to Runtime/Scripts/Video/CameraVideoSource.cs.meta diff --git a/Runtime/Scripts/RtcVideoSource.cs b/Runtime/Scripts/Video/RtcVideoSource.cs similarity index 100% rename from Runtime/Scripts/RtcVideoSource.cs rename to Runtime/Scripts/Video/RtcVideoSource.cs diff --git a/Runtime/Scripts/RtcVideoSource.cs.meta b/Runtime/Scripts/Video/RtcVideoSource.cs.meta similarity index 100% rename from Runtime/Scripts/RtcVideoSource.cs.meta rename to Runtime/Scripts/Video/RtcVideoSource.cs.meta diff --git a/Runtime/Scripts/ScreenVideoSource.cs b/Runtime/Scripts/Video/ScreenVideoSource.cs similarity index 100% rename from Runtime/Scripts/ScreenVideoSource.cs rename to Runtime/Scripts/Video/ScreenVideoSource.cs diff --git a/Runtime/Scripts/ScreenVideoSource.cs.meta b/Runtime/Scripts/Video/ScreenVideoSource.cs.meta similarity index 100% rename from Runtime/Scripts/ScreenVideoSource.cs.meta rename to Runtime/Scripts/Video/ScreenVideoSource.cs.meta diff --git a/Runtime/Scripts/TextureVideoSource.cs b/Runtime/Scripts/Video/TextureVideoSource.cs similarity index 100% rename from Runtime/Scripts/TextureVideoSource.cs rename to Runtime/Scripts/Video/TextureVideoSource.cs diff --git a/Runtime/Scripts/TextureVideoSource.cs.meta b/Runtime/Scripts/Video/TextureVideoSource.cs.meta similarity index 100% rename from Runtime/Scripts/TextureVideoSource.cs.meta rename to Runtime/Scripts/Video/TextureVideoSource.cs.meta diff --git a/Runtime/Scripts/VideoFrame.cs b/Runtime/Scripts/Video/VideoFrame.cs similarity index 100% rename from Runtime/Scripts/VideoFrame.cs rename to Runtime/Scripts/Video/VideoFrame.cs diff --git a/Runtime/Scripts/VideoFrame.cs.meta b/Runtime/Scripts/Video/VideoFrame.cs.meta similarity index 100% rename from Runtime/Scripts/VideoFrame.cs.meta rename to Runtime/Scripts/Video/VideoFrame.cs.meta diff --git a/Runtime/Scripts/VideoStream.cs b/Runtime/Scripts/Video/VideoStream.cs similarity index 100% rename from Runtime/Scripts/VideoStream.cs rename to Runtime/Scripts/Video/VideoStream.cs diff --git a/Runtime/Scripts/VideoStream.cs.meta b/Runtime/Scripts/Video/VideoStream.cs.meta similarity index 100% rename from Runtime/Scripts/VideoStream.cs.meta rename to Runtime/Scripts/Video/VideoStream.cs.meta diff --git a/Runtime/Scripts/WebCameraSource.cs b/Runtime/Scripts/Video/WebCameraSource.cs similarity index 100% rename from Runtime/Scripts/WebCameraSource.cs rename to Runtime/Scripts/Video/WebCameraSource.cs diff --git a/Runtime/Scripts/WebCameraSource.cs.meta b/Runtime/Scripts/Video/WebCameraSource.cs.meta similarity index 100% rename from Runtime/Scripts/WebCameraSource.cs.meta rename to Runtime/Scripts/Video/WebCameraSource.cs.meta From 547ad62c063092e1c0e13bfdc8cbe5783842f807 Mon Sep 17 00:00:00 2001 From: Max Heimbrock <43608204+MaxHeimbrock@users.noreply.github.com> Date: Thu, 25 Jun 2026 11:58:00 +0200 Subject: [PATCH 2/6] Fix FFI namespaces to match folders; move RingBuffer to Audio/ Follow-up cleanup to the feature-folder reorg (e8dc8e9), which renamed folders but left namespaces and one misplaced file behind. - Rename namespace LiveKit.Internal.FFIClients* -> LiveKit.Internal.FFI* so it matches the Internal/FFI/ folder (the reorg renamed FFIClients/ -> FFI/ but kept the old namespace). Updated all usings across Runtime and Tests. - Collapse the dead .Pools.ObjectPool namespace into .Pools (the ObjectPool/ subfolder was dissolved in the reorg) and drop the now redundant self-imports it left behind. - Fix two malformed namespaces in files the reorg moved: SmartWrap.cs had an IDE-autogenerated path-as-namespace, and Pools.cs had a trailing "//" in its namespace declaration. - Move RingBuffer.cs into Audio/ (its only consumer is AudioStream.cs), alongside the other audio helpers pulled in by the reorg. No behavioural change. Verified by compiling the LiveKit assembly (csc) from the Meet sample's generated rsp. Co-Authored-By: Claude Opus 4.8 (1M context) --- Runtime/Scripts/Audio/AudioResampler.cs | 2 +- Runtime/Scripts/Audio/AudioStream.cs | 2 +- Runtime/Scripts/Audio/PlatformAudio.cs | 2 +- Runtime/Scripts/Audio/PlatformAudioSource.cs | 2 +- Runtime/Scripts/{Internal => Audio}/RingBuffer.cs | 2 +- Runtime/Scripts/{Internal => Audio}/RingBuffer.cs.meta | 0 Runtime/Scripts/Audio/RtcAudioSource.cs | 2 +- Runtime/Scripts/Core/E2EE.cs | 2 +- Runtime/Scripts/Core/Participant.cs | 2 +- Runtime/Scripts/Core/Room.cs | 2 +- Runtime/Scripts/Core/Track.cs | 2 +- Runtime/Scripts/Core/TrackPublication.cs | 2 +- Runtime/Scripts/DataStreams/ByteDataStream.cs | 2 +- Runtime/Scripts/DataStreams/DataTrack.cs | 2 +- Runtime/Scripts/DataStreams/TextDataStream.cs | 2 +- Runtime/Scripts/Internal/FFI/FFIClient.cs | 6 +++--- Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs | 2 +- Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs | 2 +- Runtime/Scripts/Internal/FFI/IFFIClient.cs | 2 +- Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs | 2 +- .../Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs | 2 +- Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs | 2 +- Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs | 2 +- Runtime/Scripts/Internal/FFI/Pools/Pools.cs | 3 +-- Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs | 3 +-- Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs | 2 +- Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs | 4 ++-- .../Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs | 2 +- Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs | 6 +++--- Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs | 2 +- Runtime/Scripts/Internal/FFI/SmartWrap.cs | 4 ++-- Runtime/Scripts/Video/RtcVideoSource.cs | 2 +- Runtime/Scripts/Video/VideoFrame.cs | 2 +- Runtime/Scripts/Video/VideoStream.cs | 2 +- Tests/EditMode/FfiResponseEnsureCleanTests.cs | 2 +- 35 files changed, 40 insertions(+), 42 deletions(-) rename Runtime/Scripts/{Internal => Audio}/RingBuffer.cs (98%) rename Runtime/Scripts/{Internal => Audio}/RingBuffer.cs.meta (100%) diff --git a/Runtime/Scripts/Audio/AudioResampler.cs b/Runtime/Scripts/Audio/AudioResampler.cs index 162d9228..569006ba 100644 --- a/Runtime/Scripts/Audio/AudioResampler.cs +++ b/Runtime/Scripts/Audio/AudioResampler.cs @@ -1,5 +1,5 @@ using System; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using LiveKit.Internal; using LiveKit.Proto; diff --git a/Runtime/Scripts/Audio/AudioStream.cs b/Runtime/Scripts/Audio/AudioStream.cs index 4d9ab588..4cd9981d 100644 --- a/Runtime/Scripts/Audio/AudioStream.cs +++ b/Runtime/Scripts/Audio/AudioStream.cs @@ -3,7 +3,7 @@ using LiveKit.Internal; using LiveKit.Proto; using System.Runtime.InteropServices; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; namespace LiveKit { diff --git a/Runtime/Scripts/Audio/PlatformAudio.cs b/Runtime/Scripts/Audio/PlatformAudio.cs index 9a366918..b5a16292 100644 --- a/Runtime/Scripts/Audio/PlatformAudio.cs +++ b/Runtime/Scripts/Audio/PlatformAudio.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using LiveKit.Proto; using LiveKit.Internal; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; #if UNITY_IOS && !UNITY_EDITOR using System.Runtime.InteropServices; diff --git a/Runtime/Scripts/Audio/PlatformAudioSource.cs b/Runtime/Scripts/Audio/PlatformAudioSource.cs index f0be42b5..8bc968b4 100644 --- a/Runtime/Scripts/Audio/PlatformAudioSource.cs +++ b/Runtime/Scripts/Audio/PlatformAudioSource.cs @@ -1,7 +1,7 @@ using System; using LiveKit.Proto; using LiveKit.Internal; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; namespace LiveKit { diff --git a/Runtime/Scripts/Internal/RingBuffer.cs b/Runtime/Scripts/Audio/RingBuffer.cs similarity index 98% rename from Runtime/Scripts/Internal/RingBuffer.cs rename to Runtime/Scripts/Audio/RingBuffer.cs index 66df38e6..008b7c3f 100644 --- a/Runtime/Scripts/Internal/RingBuffer.cs +++ b/Runtime/Scripts/Audio/RingBuffer.cs @@ -1,6 +1,6 @@ using System; using System.Buffers; -using LiveKit.Internal.FFIClients.Pools.Memory; +using LiveKit.Internal.FFI.Pools.Memory; namespace LiveKit.Internal { diff --git a/Runtime/Scripts/Internal/RingBuffer.cs.meta b/Runtime/Scripts/Audio/RingBuffer.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/RingBuffer.cs.meta rename to Runtime/Scripts/Audio/RingBuffer.cs.meta diff --git a/Runtime/Scripts/Audio/RtcAudioSource.cs b/Runtime/Scripts/Audio/RtcAudioSource.cs index 9a80b99e..46be6dc7 100644 --- a/Runtime/Scripts/Audio/RtcAudioSource.cs +++ b/Runtime/Scripts/Audio/RtcAudioSource.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using LiveKit.Proto; using LiveKit.Internal; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using Unity.Collections; using Unity.Collections.LowLevel.Unsafe; using System.Diagnostics; diff --git a/Runtime/Scripts/Core/E2EE.cs b/Runtime/Scripts/Core/E2EE.cs index 3aba416f..30f967be 100644 --- a/Runtime/Scripts/Core/E2EE.cs +++ b/Runtime/Scripts/Core/E2EE.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using LiveKit.Internal; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using LiveKit.Proto; namespace LiveKit diff --git a/Runtime/Scripts/Core/Participant.cs b/Runtime/Scripts/Core/Participant.cs index 33728144..b0e7a8c9 100644 --- a/Runtime/Scripts/Core/Participant.cs +++ b/Runtime/Scripts/Core/Participant.cs @@ -4,7 +4,7 @@ using System.Threading.Tasks; using LiveKit.Internal; using LiveKit.Proto; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using System.Diagnostics; namespace LiveKit diff --git a/Runtime/Scripts/Core/Room.cs b/Runtime/Scripts/Core/Room.cs index c70f279e..c148695e 100644 --- a/Runtime/Scripts/Core/Room.cs +++ b/Runtime/Scripts/Core/Room.cs @@ -3,7 +3,7 @@ using LiveKit.Internal; using LiveKit.Proto; using System.Runtime.InteropServices; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using UnityEngine; namespace LiveKit diff --git a/Runtime/Scripts/Core/Track.cs b/Runtime/Scripts/Core/Track.cs index 2fa873b6..cad1375b 100644 --- a/Runtime/Scripts/Core/Track.cs +++ b/Runtime/Scripts/Core/Track.cs @@ -1,7 +1,7 @@ using System; using LiveKit.Proto; using LiveKit.Internal; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; namespace LiveKit { diff --git a/Runtime/Scripts/Core/TrackPublication.cs b/Runtime/Scripts/Core/TrackPublication.cs index 4fbd1284..8eb04176 100644 --- a/Runtime/Scripts/Core/TrackPublication.cs +++ b/Runtime/Scripts/Core/TrackPublication.cs @@ -1,5 +1,5 @@ using LiveKit.Internal; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using LiveKit.Proto; namespace LiveKit diff --git a/Runtime/Scripts/DataStreams/ByteDataStream.cs b/Runtime/Scripts/DataStreams/ByteDataStream.cs index 6e9a57f4..4ad66f56 100644 --- a/Runtime/Scripts/DataStreams/ByteDataStream.cs +++ b/Runtime/Scripts/DataStreams/ByteDataStream.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using LiveKit.Internal; using LiveKit.Proto; diff --git a/Runtime/Scripts/DataStreams/DataTrack.cs b/Runtime/Scripts/DataStreams/DataTrack.cs index 97ded28b..6c0722ad 100644 --- a/Runtime/Scripts/DataStreams/DataTrack.cs +++ b/Runtime/Scripts/DataStreams/DataTrack.cs @@ -1,6 +1,6 @@ using System; using LiveKit.Internal; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using LiveKit.Proto; using UnityEngine; diff --git a/Runtime/Scripts/DataStreams/TextDataStream.cs b/Runtime/Scripts/DataStreams/TextDataStream.cs index 529287aa..77b3e0ce 100644 --- a/Runtime/Scripts/DataStreams/TextDataStream.cs +++ b/Runtime/Scripts/DataStreams/TextDataStream.cs @@ -1,6 +1,6 @@ using System; using System.Collections.Generic; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using LiveKit.Internal; using LiveKit.Proto; diff --git a/Runtime/Scripts/Internal/FFI/FFIClient.cs b/Runtime/Scripts/Internal/FFI/FFIClient.cs index fb6a5006..c41aa6a7 100644 --- a/Runtime/Scripts/Internal/FFI/FFIClient.cs +++ b/Runtime/Scripts/Internal/FFI/FFIClient.cs @@ -4,9 +4,9 @@ using UnityEngine; using Google.Protobuf; using System.Threading; -using LiveKit.Internal.FFIClients; -using LiveKit.Internal.FFIClients.Pools; -using LiveKit.Internal.FFIClients.Pools.Memory; +using LiveKit.Internal.FFI; +using LiveKit.Internal.FFI.Pools; +using LiveKit.Internal.FFI.Pools.Memory; using UnityEngine.Pool; #if UNITY_EDITOR diff --git a/Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs b/Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs index a39e9fb9..b054cfad 100644 --- a/Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs +++ b/Runtime/Scripts/Internal/FFI/FfiRequestExtensions.cs @@ -5,7 +5,7 @@ using System.Reflection; using LiveKit.Proto; -namespace LiveKit.Internal.FFIClients +namespace LiveKit.Internal.FFI { public static class FfiRequestExtensions { diff --git a/Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs b/Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs index 4c46f951..031ff45c 100644 --- a/Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs +++ b/Runtime/Scripts/Internal/FFI/FfiResponseWrap.cs @@ -1,7 +1,7 @@ using System; using LiveKit.Proto; -namespace LiveKit.Internal.FFIClients +namespace LiveKit.Internal.FFI { public readonly struct FfiResponseWrap : IDisposable { diff --git a/Runtime/Scripts/Internal/FFI/IFFIClient.cs b/Runtime/Scripts/Internal/FFI/IFFIClient.cs index 4d0cdb38..54a74c25 100644 --- a/Runtime/Scripts/Internal/FFI/IFFIClient.cs +++ b/Runtime/Scripts/Internal/FFI/IFFIClient.cs @@ -1,7 +1,7 @@ using System; using LiveKit.Proto; -namespace LiveKit.Internal.FFIClients +namespace LiveKit.Internal.FFI { /// /// Thread-safe interface for sending requests to the FFI layer diff --git a/Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs b/Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs index 1209b597..5b71d8e5 100644 --- a/Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs +++ b/Runtime/Scripts/Internal/FFI/Pools/IMultiPool.cs @@ -1,4 +1,4 @@ -namespace LiveKit.Internal.FFIClients.Pools +namespace LiveKit.Internal.FFI.Pools { public interface IMultiPool { diff --git a/Runtime/Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs b/Runtime/Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs index cec384a2..b92840a8 100644 --- a/Runtime/Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs +++ b/Runtime/Scripts/Internal/FFI/Pools/Memory/ArrayMemoryPool.cs @@ -1,6 +1,6 @@ using System.Buffers; -namespace LiveKit.Internal.FFIClients.Pools.Memory +namespace LiveKit.Internal.FFI.Pools.Memory { public class ArrayMemoryPool : IMemoryPool { diff --git a/Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs b/Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs index 74efe2a8..196160b8 100644 --- a/Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs +++ b/Runtime/Scripts/Internal/FFI/Pools/Memory/IMemoryPool.cs @@ -1,6 +1,6 @@ using Google.Protobuf; -namespace LiveKit.Internal.FFIClients.Pools.Memory +namespace LiveKit.Internal.FFI.Pools.Memory { public interface IMemoryPool { diff --git a/Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs b/Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs index 3c94bc2c..16d8e6f0 100644 --- a/Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs +++ b/Runtime/Scripts/Internal/FFI/Pools/Memory/MemoryWrap.cs @@ -1,6 +1,6 @@ using System; -namespace LiveKit.Internal.FFIClients.Pools.Memory +namespace LiveKit.Internal.FFI.Pools.Memory { public readonly struct MemoryWrap : IDisposable { diff --git a/Runtime/Scripts/Internal/FFI/Pools/Pools.cs b/Runtime/Scripts/Internal/FFI/Pools/Pools.cs index 83f068ee..baa11f89 100644 --- a/Runtime/Scripts/Internal/FFI/Pools/Pools.cs +++ b/Runtime/Scripts/Internal/FFI/Pools/Pools.cs @@ -1,9 +1,8 @@ using System; -using LiveKit.Internal.FFIClients.Pools.ObjectPool; using LiveKit.Proto; using UnityEngine.Pool; -namespace LiveKit.Internal.FFIClients.Pools// +namespace LiveKit.Internal.FFI.Pools { public static class Pools { diff --git a/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs b/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs index e6330640..f37c2809 100644 --- a/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs +++ b/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeMultiPool.cs @@ -1,9 +1,8 @@ using System; using System.Collections.Concurrent; -using LiveKit.Internal.FFIClients.Pools.ObjectPool; using UnityEngine.Pool; -namespace LiveKit.Internal.FFIClients.Pools +namespace LiveKit.Internal.FFI.Pools { public class ThreadSafeMultiPool : IMultiPool { diff --git a/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs b/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs index 013e3fe6..3ff2fffe 100644 --- a/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs +++ b/Runtime/Scripts/Internal/FFI/Pools/ThreadSafeObjectPool.cs @@ -2,7 +2,7 @@ using System.Collections.Concurrent; using UnityEngine.Pool; -namespace LiveKit.Internal.FFIClients.Pools.ObjectPool +namespace LiveKit.Internal.FFI.Pools { public class ThreadSafeObjectPool : IObjectPool where T : class { diff --git a/Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs b/Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs index 2d3f1523..4f270c33 100644 --- a/Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs +++ b/Runtime/Scripts/Internal/FFI/Requests/FFIBridge.cs @@ -1,7 +1,7 @@ using System; -using LiveKit.Internal.FFIClients.Pools; +using LiveKit.Internal.FFI.Pools; -namespace LiveKit.Internal.FFIClients.Requests +namespace LiveKit.Internal.FFI.Requests { public class FFIBridge : IFFIBridge { diff --git a/Runtime/Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs b/Runtime/Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs index 7e9e49c0..a8945c8e 100644 --- a/Runtime/Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs +++ b/Runtime/Scripts/Internal/FFI/Requests/FFIBridgeExtensions.cs @@ -1,5 +1,5 @@ using LiveKit.Proto; -namespace LiveKit.Internal.FFIClients.Requests +namespace LiveKit.Internal.FFI.Requests { public static class FFIBridgeExtensions { diff --git a/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs b/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs index 915a964e..1cf36579 100644 --- a/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs +++ b/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs @@ -1,10 +1,10 @@ using System; using Google.Protobuf; -using LiveKit.client_sdk_unity.Runtime.Scripts.Internal.FFIClients; -using LiveKit.Internal.FFIClients.Pools; +using LiveKit.Internal.FFI; +using LiveKit.Internal.FFI.Pools; using LiveKit.Proto; -namespace LiveKit.Internal.FFIClients.Requests +namespace LiveKit.Internal.FFI.Requests { public struct FfiRequestWrap : IDisposable where T : class, new() { diff --git a/Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs b/Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs index b3ffe2e3..964038a7 100644 --- a/Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs +++ b/Runtime/Scripts/Internal/FFI/Requests/IFFIBridge.cs @@ -1,4 +1,4 @@ -namespace LiveKit.Internal.FFIClients.Requests +namespace LiveKit.Internal.FFI.Requests { /// /// Thread-safe interface for requests to the FFI layer diff --git a/Runtime/Scripts/Internal/FFI/SmartWrap.cs b/Runtime/Scripts/Internal/FFI/SmartWrap.cs index f0ce798d..c7851a51 100644 --- a/Runtime/Scripts/Internal/FFI/SmartWrap.cs +++ b/Runtime/Scripts/Internal/FFI/SmartWrap.cs @@ -1,7 +1,7 @@ using System; -using LiveKit.Internal.FFIClients.Pools; +using LiveKit.Internal.FFI.Pools; -namespace LiveKit.client_sdk_unity.Runtime.Scripts.Internal.FFIClients +namespace LiveKit.Internal.FFI { public readonly struct SmartWrap : IDisposable where T : class, new() { diff --git a/Runtime/Scripts/Video/RtcVideoSource.cs b/Runtime/Scripts/Video/RtcVideoSource.cs index dab63255..35e93b96 100644 --- a/Runtime/Scripts/Video/RtcVideoSource.cs +++ b/Runtime/Scripts/Video/RtcVideoSource.cs @@ -5,7 +5,7 @@ using UnityEngine.Rendering; using Unity.Collections; using Unity.Collections.LowLevel.Unsafe; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using System.Collections; namespace LiveKit diff --git a/Runtime/Scripts/Video/VideoFrame.cs b/Runtime/Scripts/Video/VideoFrame.cs index e2bf66d1..5aaf4040 100644 --- a/Runtime/Scripts/Video/VideoFrame.cs +++ b/Runtime/Scripts/Video/VideoFrame.cs @@ -2,7 +2,7 @@ using LiveKit.Internal; using LiveKit.Proto; using System.Runtime.CompilerServices; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; namespace LiveKit { diff --git a/Runtime/Scripts/Video/VideoStream.cs b/Runtime/Scripts/Video/VideoStream.cs index 0c1a148d..30d4672b 100644 --- a/Runtime/Scripts/Video/VideoStream.cs +++ b/Runtime/Scripts/Video/VideoStream.cs @@ -2,7 +2,7 @@ using LiveKit.Internal; using LiveKit.Proto; using UnityEngine; -using LiveKit.Internal.FFIClients.Requests; +using LiveKit.Internal.FFI.Requests; using System.Collections; namespace LiveKit diff --git a/Tests/EditMode/FfiResponseEnsureCleanTests.cs b/Tests/EditMode/FfiResponseEnsureCleanTests.cs index 9daacc7a..1431d3ba 100644 --- a/Tests/EditMode/FfiResponseEnsureCleanTests.cs +++ b/Tests/EditMode/FfiResponseEnsureCleanTests.cs @@ -1,5 +1,5 @@ using System; -using LiveKit.Internal.FFIClients; +using LiveKit.Internal.FFI; using LiveKit.Proto; using NUnit.Framework; From 7fea39433542058d6d49ab1d045dcdfa977eda14 Mon Sep 17 00:00:00 2001 From: Max Heimbrock <43608204+MaxHeimbrock@users.noreply.github.com> Date: Thu, 25 Jun 2026 12:21:13 +0200 Subject: [PATCH 3/6] Make Internal/ namespaces follow folders (Threading, PackageVersion, RingBuffer) Continues the namespace/folder alignment. Public feature folders stay flat `LiveKit`; the `Internal/` subtree mirrors its folders. - Internal/Threading/ -> LiveKit.Internal.Threading (was flat LiveKit). Added `using LiveKit.Internal.Threading;` to the 15 consumers that actually use these types. Because our YieldInstruction now collides with UnityEngine.YieldInstruction once imported (rather than resolved via the same namespace), qualified the one ambiguous base type in Room.cs and added a type alias in RoomTests.cs. - Internal/PackageVersion.cs -> LiveKit.Internal (was flat LiveKit; matches Constants.cs/Utils.cs). Its only consumer, FFIClient.cs, is already in LiveKit.Internal. - Audio/RingBuffer.cs -> LiveKit (was LiveKit.Internal) to match its Audio/ folder, alongside AudioResampler/AudioProbe. Updated RingBufferTests.cs. The 5 files in Internal/FFI/ still declaring LiveKit.Internal / LiveKit are left for the next commit. No behavioural change. Verified by compiling LiveKit, LiveKit.UniTask, EditModeTests, PlayModeTests and PlayModeTests.UniTask via csc. Co-Authored-By: Claude Opus 4.8 (1M context) --- Runtime/Scripts/Audio/AudioStream.cs | 1 + Runtime/Scripts/Audio/MicrophoneSource.cs | 1 + Runtime/Scripts/Audio/RingBuffer.cs | 2 +- Runtime/Scripts/Core/Participant.cs | 1 + Runtime/Scripts/Core/Room.cs | 3 ++- Runtime/Scripts/Core/Track.cs | 1 + Runtime/Scripts/DataStreams/DataStream.cs | 1 + Runtime/Scripts/DataStreams/DataTrack.cs | 1 + Runtime/Scripts/Internal/FFI/FfiInstruction.cs | 1 + Runtime/Scripts/Internal/PackageVersion.cs | 2 +- Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs | 2 +- Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs | 2 +- Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs | 2 +- Runtime/Scripts/Internal/Threading/YieldInstruction.cs | 2 +- Runtime/Scripts/TokenSource/TokenSourceComponent.cs | 1 + Runtime/Scripts/UniTask/YieldInstructionUniTaskExtensions.cs | 1 + Tests/EditMode/MonoBehaviourContextTests.cs | 1 + Tests/EditMode/RingBufferTests.cs | 1 + Tests/EditMode/ThreadSafeQueueTests.cs | 1 + Tests/EditMode/YieldInstructionThreadingTests.cs | 1 + Tests/PlayMode/RoomTests.cs | 2 ++ Tests/PlayMode/UniTask/RoomUniTaskTests.cs | 1 + 22 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Runtime/Scripts/Audio/AudioStream.cs b/Runtime/Scripts/Audio/AudioStream.cs index 4cd9981d..aa1b4d93 100644 --- a/Runtime/Scripts/Audio/AudioStream.cs +++ b/Runtime/Scripts/Audio/AudioStream.cs @@ -5,6 +5,7 @@ using System.Runtime.InteropServices; using LiveKit.Internal.FFI.Requests; +using LiveKit.Internal.Threading; namespace LiveKit { /// diff --git a/Runtime/Scripts/Audio/MicrophoneSource.cs b/Runtime/Scripts/Audio/MicrophoneSource.cs index 34687f88..75bec1f0 100644 --- a/Runtime/Scripts/Audio/MicrophoneSource.cs +++ b/Runtime/Scripts/Audio/MicrophoneSource.cs @@ -3,6 +3,7 @@ using UnityEngine; using LiveKit.Internal; +using LiveKit.Internal.Threading; namespace LiveKit { /// diff --git a/Runtime/Scripts/Audio/RingBuffer.cs b/Runtime/Scripts/Audio/RingBuffer.cs index 008b7c3f..4874b814 100644 --- a/Runtime/Scripts/Audio/RingBuffer.cs +++ b/Runtime/Scripts/Audio/RingBuffer.cs @@ -2,7 +2,7 @@ using System.Buffers; using LiveKit.Internal.FFI.Pools.Memory; -namespace LiveKit.Internal +namespace LiveKit { // Basic RingBuffer implementation (used WebRtc_RingBuffer as reference) // The one from com.unity.collections is dealing element per element, which is not efficient when dealing with bytes diff --git a/Runtime/Scripts/Core/Participant.cs b/Runtime/Scripts/Core/Participant.cs index b0e7a8c9..e551b8e5 100644 --- a/Runtime/Scripts/Core/Participant.cs +++ b/Runtime/Scripts/Core/Participant.cs @@ -7,6 +7,7 @@ using LiveKit.Internal.FFI.Requests; using System.Diagnostics; +using LiveKit.Internal.Threading; namespace LiveKit { public delegate Task RpcHandler(RpcInvocationData data); diff --git a/Runtime/Scripts/Core/Room.cs b/Runtime/Scripts/Core/Room.cs index c148695e..68feda4e 100644 --- a/Runtime/Scripts/Core/Room.cs +++ b/Runtime/Scripts/Core/Room.cs @@ -6,6 +6,7 @@ using LiveKit.Internal.FFI.Requests; using UnityEngine; +using LiveKit.Internal.Threading; namespace LiveKit { public enum IceTransportType @@ -654,7 +655,7 @@ internal Participant GetParticipant(string identity) } } - public sealed class ConnectInstruction : YieldInstruction + public sealed class ConnectInstruction : LiveKit.Internal.Threading.YieldInstruction { private ulong _asyncId; private Room _room; diff --git a/Runtime/Scripts/Core/Track.cs b/Runtime/Scripts/Core/Track.cs index cad1375b..6479cb13 100644 --- a/Runtime/Scripts/Core/Track.cs +++ b/Runtime/Scripts/Core/Track.cs @@ -3,6 +3,7 @@ using LiveKit.Internal; using LiveKit.Internal.FFI.Requests; +using LiveKit.Internal.Threading; namespace LiveKit { public interface ITrack diff --git a/Runtime/Scripts/DataStreams/DataStream.cs b/Runtime/Scripts/DataStreams/DataStream.cs index 4a0339e8..3dbc5290 100644 --- a/Runtime/Scripts/DataStreams/DataStream.cs +++ b/Runtime/Scripts/DataStreams/DataStream.cs @@ -4,6 +4,7 @@ using LiveKit.Internal; using LiveKit.Proto; +using LiveKit.Internal.Threading; namespace LiveKit { /// diff --git a/Runtime/Scripts/DataStreams/DataTrack.cs b/Runtime/Scripts/DataStreams/DataTrack.cs index 6c0722ad..1b387f2d 100644 --- a/Runtime/Scripts/DataStreams/DataTrack.cs +++ b/Runtime/Scripts/DataStreams/DataTrack.cs @@ -4,6 +4,7 @@ using LiveKit.Proto; using UnityEngine; +using LiveKit.Internal.Threading; namespace LiveKit { /// diff --git a/Runtime/Scripts/Internal/FFI/FfiInstruction.cs b/Runtime/Scripts/Internal/FFI/FfiInstruction.cs index 93e89074..b54e69a4 100644 --- a/Runtime/Scripts/Internal/FFI/FfiInstruction.cs +++ b/Runtime/Scripts/Internal/FFI/FfiInstruction.cs @@ -2,6 +2,7 @@ using LiveKit.Internal; using LiveKit.Proto; +using LiveKit.Internal.Threading; namespace LiveKit { /// diff --git a/Runtime/Scripts/Internal/PackageVersion.cs b/Runtime/Scripts/Internal/PackageVersion.cs index e08cf07f..1ab2a91f 100644 --- a/Runtime/Scripts/Internal/PackageVersion.cs +++ b/Runtime/Scripts/Internal/PackageVersion.cs @@ -1,6 +1,6 @@ using UnityEngine; -namespace LiveKit +namespace LiveKit.Internal { public static class PackageVersion { diff --git a/Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs b/Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs index 233f6890..487122d1 100644 --- a/Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs +++ b/Runtime/Scripts/Internal/Threading/MonoBehaviourContext.cs @@ -2,7 +2,7 @@ using System.Collections; using UnityEngine; -namespace LiveKit +namespace LiveKit.Internal.Threading { /// /// Global singleton used for accessing specific MonoBehaviour methods from diff --git a/Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs b/Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs index d5b39c8d..423fca78 100644 --- a/Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs +++ b/Runtime/Scripts/Internal/Threading/TaskYieldInstruction.cs @@ -1,7 +1,7 @@ using System; using System.Threading.Tasks; -namespace LiveKit +namespace LiveKit.Internal.Threading { /// /// Adapts a to a coroutine-friendly . diff --git a/Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs b/Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs index 91c07073..32de3646 100644 --- a/Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs +++ b/Runtime/Scripts/Internal/Threading/ThreadSafeQueue.cs @@ -1,7 +1,7 @@ using System.Threading; using System.Collections.Generic; -namespace LiveKit +namespace LiveKit.Internal.Threading { public class ThreadSafeQueue diff --git a/Runtime/Scripts/Internal/Threading/YieldInstruction.cs b/Runtime/Scripts/Internal/Threading/YieldInstruction.cs index f3419001..c1b95299 100644 --- a/Runtime/Scripts/Internal/Threading/YieldInstruction.cs +++ b/Runtime/Scripts/Internal/Threading/YieldInstruction.cs @@ -4,7 +4,7 @@ using LiveKit.Internal; using UnityEngine; -namespace LiveKit +namespace LiveKit.Internal.Threading { // Resumes awaiter continuations on Unity's main thread. Completion may be signalled on the // FFI callback thread (operations registered dispatchToMainThread:false, and data-stream diff --git a/Runtime/Scripts/TokenSource/TokenSourceComponent.cs b/Runtime/Scripts/TokenSource/TokenSourceComponent.cs index e1db2a76..9031f66e 100644 --- a/Runtime/Scripts/TokenSource/TokenSourceComponent.cs +++ b/Runtime/Scripts/TokenSource/TokenSourceComponent.cs @@ -5,6 +5,7 @@ using UnityEngine; using LiveKit.Internal; +using LiveKit.Internal.Threading; namespace LiveKit { /// diff --git a/Runtime/Scripts/UniTask/YieldInstructionUniTaskExtensions.cs b/Runtime/Scripts/UniTask/YieldInstructionUniTaskExtensions.cs index 9ede7016..5b04d620 100644 --- a/Runtime/Scripts/UniTask/YieldInstructionUniTaskExtensions.cs +++ b/Runtime/Scripts/UniTask/YieldInstructionUniTaskExtensions.cs @@ -2,6 +2,7 @@ using System.Threading; using Cysharp.Threading.Tasks; +using LiveKit.Internal.Threading; namespace LiveKit { /// diff --git a/Tests/EditMode/MonoBehaviourContextTests.cs b/Tests/EditMode/MonoBehaviourContextTests.cs index dc22d000..27e0a0d6 100644 --- a/Tests/EditMode/MonoBehaviourContextTests.cs +++ b/Tests/EditMode/MonoBehaviourContextTests.cs @@ -4,6 +4,7 @@ using NUnit.Framework; using UnityEngine; +using LiveKit.Internal.Threading; namespace LiveKit.EditModeTests { public class MonoBehaviourContextTests diff --git a/Tests/EditMode/RingBufferTests.cs b/Tests/EditMode/RingBufferTests.cs index b1e5d0e3..2f25a82b 100644 --- a/Tests/EditMode/RingBufferTests.cs +++ b/Tests/EditMode/RingBufferTests.cs @@ -1,5 +1,6 @@ using System; using NUnit.Framework; +using LiveKit; using LiveKit.Internal; namespace LiveKit.EditModeTests diff --git a/Tests/EditMode/ThreadSafeQueueTests.cs b/Tests/EditMode/ThreadSafeQueueTests.cs index 9e78ec4f..59e7b56a 100644 --- a/Tests/EditMode/ThreadSafeQueueTests.cs +++ b/Tests/EditMode/ThreadSafeQueueTests.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using NUnit.Framework; +using LiveKit.Internal.Threading; namespace LiveKit.EditModeTests { public class ThreadSafeQueueTests diff --git a/Tests/EditMode/YieldInstructionThreadingTests.cs b/Tests/EditMode/YieldInstructionThreadingTests.cs index 136e9d43..0d33902c 100644 --- a/Tests/EditMode/YieldInstructionThreadingTests.cs +++ b/Tests/EditMode/YieldInstructionThreadingTests.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using NUnit.Framework; +using LiveKit.Internal.Threading; namespace LiveKit.EditModeTests { public class YieldInstructionThreadingTests diff --git a/Tests/PlayMode/RoomTests.cs b/Tests/PlayMode/RoomTests.cs index ebb303ea..669b0dc6 100644 --- a/Tests/PlayMode/RoomTests.cs +++ b/Tests/PlayMode/RoomTests.cs @@ -6,6 +6,8 @@ using UnityEngine.TestTools; using LiveKit.Proto; using LiveKit.PlayModeTests.Utils; +using LiveKit.Internal.Threading; +using YieldInstruction = LiveKit.Internal.Threading.YieldInstruction; namespace LiveKit.PlayModeTests { public class RoomTests diff --git a/Tests/PlayMode/UniTask/RoomUniTaskTests.cs b/Tests/PlayMode/UniTask/RoomUniTaskTests.cs index 18bf3c60..27c50d65 100644 --- a/Tests/PlayMode/UniTask/RoomUniTaskTests.cs +++ b/Tests/PlayMode/UniTask/RoomUniTaskTests.cs @@ -4,6 +4,7 @@ using NUnit.Framework; using UnityEngine.TestTools; +using LiveKit.Internal.Threading; namespace LiveKit.PlayModeTests.UniTaskBridge { public class RoomUniTaskTests From 11010402a6346097625ac07ff291902db2052130 Mon Sep 17 00:00:00 2001 From: Max Heimbrock <43608204+MaxHeimbrock@users.noreply.github.com> Date: Thu, 25 Jun 2026 12:25:52 +0200 Subject: [PATCH 4/6] Move FFIClient/FFIEvents/FFIHandle/NativeMethods/FfiInstruction into LiveKit.Internal.FFI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Final step of the Internal/ namespace alignment. These 5 files live in Internal/FFI/ but still declared LiveKit.Internal (or, for FfiInstruction, flat LiveKit) — the last folder/namespace mismatch. Now they match their folder and their FFI sibling files. - Declarations -> LiveKit.Internal.FFI. - Added `using LiveKit.Internal.FFI;` to the consumers that resolved these types via `using LiveKit.Internal;` (or same-namespace for FfiInstruction): ~18 Runtime files and 8 test files. - FfiRequestWrap.cs: updated a fully-qualified `LiveKit.Internal.FfiClient`. - YieldInstruction.cs: imports LiveKit.Internal.FFI (uses FfiClient.Instance). - FFIClient.cs: moving into LiveKit.Internal.FFI brought the child `Pools` namespace into scope, which shadowed the `Pools` *class* (Pools.Pools). Aliased it (FfiResponsePools) at the one call site. No behavioural change. Verified by compiling LiveKit, LiveKit.UniTask, EditModeTests, PlayModeTests and PlayModeTests.UniTask via csc. Co-Authored-By: Claude Opus 4.8 (1M context) --- Runtime/Scripts/Audio/AudioFrame.cs | 1 + Runtime/Scripts/Audio/AudioResampler.cs | 1 + Runtime/Scripts/Audio/AudioStream.cs | 1 + Runtime/Scripts/Audio/PlatformAudio.cs | 1 + Runtime/Scripts/Audio/PlatformAudioSource.cs | 1 + Runtime/Scripts/Audio/RtcAudioSource.cs | 1 + Runtime/Scripts/Core/E2EE.cs | 1 + Runtime/Scripts/Core/Participant.cs | 1 + Runtime/Scripts/Core/Room.cs | 1 + Runtime/Scripts/Core/Track.cs | 1 + Runtime/Scripts/Core/TrackPublication.cs | 1 + Runtime/Scripts/DataStreams/ByteDataStream.cs | 1 + Runtime/Scripts/DataStreams/DataStream.cs | 1 + Runtime/Scripts/DataStreams/DataTrack.cs | 1 + Runtime/Scripts/DataStreams/TextDataStream.cs | 1 + Runtime/Scripts/Internal/FFI/FFIClient.cs | 5 +++-- Runtime/Scripts/Internal/FFI/FFIEvents.cs | 2 +- Runtime/Scripts/Internal/FFI/FFIHandle.cs | 2 +- Runtime/Scripts/Internal/FFI/FfiInstruction.cs | 2 +- Runtime/Scripts/Internal/FFI/NativeMethods.cs | 2 +- Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs | 2 +- Runtime/Scripts/Internal/Threading/YieldInstruction.cs | 1 + Runtime/Scripts/Video/RtcVideoSource.cs | 1 + Runtime/Scripts/Video/VideoFrame.cs | 1 + Runtime/Scripts/Video/VideoStream.cs | 1 + Tests/EditMode/DataStreamIncrementalReadTests.cs | 1 + Tests/EditMode/FfiHandleTests.cs | 1 + Tests/EditMode/MediaStreamLifetimeTests.cs | 1 + Tests/EditMode/RoomDisconnectReasonTests.cs | 1 + Tests/EditMode/SkipDispatchTests.cs | 1 + Tests/EditMode/VideoFrameTests.cs | 1 + Tests/PlayMode/FfiHandleDisposalTests.cs | 1 + Tests/PlayMode/UniTask/StreamUniTaskTests.cs | 1 + 33 files changed, 35 insertions(+), 7 deletions(-) diff --git a/Runtime/Scripts/Audio/AudioFrame.cs b/Runtime/Scripts/Audio/AudioFrame.cs index f8fc1cf3..f1d20535 100644 --- a/Runtime/Scripts/Audio/AudioFrame.cs +++ b/Runtime/Scripts/Audio/AudioFrame.cs @@ -3,6 +3,7 @@ using LiveKit.Internal; using Unity.Collections; +using LiveKit.Internal.FFI; namespace LiveKit { public class AudioFrame : IDisposable diff --git a/Runtime/Scripts/Audio/AudioResampler.cs b/Runtime/Scripts/Audio/AudioResampler.cs index 569006ba..43382482 100644 --- a/Runtime/Scripts/Audio/AudioResampler.cs +++ b/Runtime/Scripts/Audio/AudioResampler.cs @@ -3,6 +3,7 @@ using LiveKit.Internal; using LiveKit.Proto; +using LiveKit.Internal.FFI; namespace LiveKit { public sealed class AudioResampler : IDisposable diff --git a/Runtime/Scripts/Audio/AudioStream.cs b/Runtime/Scripts/Audio/AudioStream.cs index aa1b4d93..49a24c6f 100644 --- a/Runtime/Scripts/Audio/AudioStream.cs +++ b/Runtime/Scripts/Audio/AudioStream.cs @@ -6,6 +6,7 @@ using LiveKit.Internal.FFI.Requests; using LiveKit.Internal.Threading; +using LiveKit.Internal.FFI; namespace LiveKit { /// diff --git a/Runtime/Scripts/Audio/PlatformAudio.cs b/Runtime/Scripts/Audio/PlatformAudio.cs index b5a16292..7c113e20 100644 --- a/Runtime/Scripts/Audio/PlatformAudio.cs +++ b/Runtime/Scripts/Audio/PlatformAudio.cs @@ -13,6 +13,7 @@ using UnityEngine.Android; #endif +using LiveKit.Internal.FFI; namespace LiveKit { #if UNITY_IOS && !UNITY_EDITOR diff --git a/Runtime/Scripts/Audio/PlatformAudioSource.cs b/Runtime/Scripts/Audio/PlatformAudioSource.cs index 8bc968b4..0b507c4c 100644 --- a/Runtime/Scripts/Audio/PlatformAudioSource.cs +++ b/Runtime/Scripts/Audio/PlatformAudioSource.cs @@ -3,6 +3,7 @@ using LiveKit.Internal; using LiveKit.Internal.FFI.Requests; +using LiveKit.Internal.FFI; namespace LiveKit { /// diff --git a/Runtime/Scripts/Audio/RtcAudioSource.cs b/Runtime/Scripts/Audio/RtcAudioSource.cs index 46be6dc7..9147b431 100644 --- a/Runtime/Scripts/Audio/RtcAudioSource.cs +++ b/Runtime/Scripts/Audio/RtcAudioSource.cs @@ -9,6 +9,7 @@ using System.Diagnostics; using System.Threading; +using LiveKit.Internal.FFI; namespace LiveKit { /// diff --git a/Runtime/Scripts/Core/E2EE.cs b/Runtime/Scripts/Core/E2EE.cs index 30f967be..37d06a85 100644 --- a/Runtime/Scripts/Core/E2EE.cs +++ b/Runtime/Scripts/Core/E2EE.cs @@ -3,6 +3,7 @@ using LiveKit.Internal.FFI.Requests; using LiveKit.Proto; +using LiveKit.Internal.FFI; namespace LiveKit { public enum EncryptionType diff --git a/Runtime/Scripts/Core/Participant.cs b/Runtime/Scripts/Core/Participant.cs index e551b8e5..ade575c3 100644 --- a/Runtime/Scripts/Core/Participant.cs +++ b/Runtime/Scripts/Core/Participant.cs @@ -8,6 +8,7 @@ using System.Diagnostics; using LiveKit.Internal.Threading; +using LiveKit.Internal.FFI; namespace LiveKit { public delegate Task RpcHandler(RpcInvocationData data); diff --git a/Runtime/Scripts/Core/Room.cs b/Runtime/Scripts/Core/Room.cs index 68feda4e..eec304c3 100644 --- a/Runtime/Scripts/Core/Room.cs +++ b/Runtime/Scripts/Core/Room.cs @@ -7,6 +7,7 @@ using UnityEngine; using LiveKit.Internal.Threading; +using LiveKit.Internal.FFI; namespace LiveKit { public enum IceTransportType diff --git a/Runtime/Scripts/Core/Track.cs b/Runtime/Scripts/Core/Track.cs index 6479cb13..aca34e60 100644 --- a/Runtime/Scripts/Core/Track.cs +++ b/Runtime/Scripts/Core/Track.cs @@ -4,6 +4,7 @@ using LiveKit.Internal.FFI.Requests; using LiveKit.Internal.Threading; +using LiveKit.Internal.FFI; namespace LiveKit { public interface ITrack diff --git a/Runtime/Scripts/Core/TrackPublication.cs b/Runtime/Scripts/Core/TrackPublication.cs index 8eb04176..a16b20d7 100644 --- a/Runtime/Scripts/Core/TrackPublication.cs +++ b/Runtime/Scripts/Core/TrackPublication.cs @@ -2,6 +2,7 @@ using LiveKit.Internal.FFI.Requests; using LiveKit.Proto; +using LiveKit.Internal.FFI; namespace LiveKit { public class TrackPublication diff --git a/Runtime/Scripts/DataStreams/ByteDataStream.cs b/Runtime/Scripts/DataStreams/ByteDataStream.cs index 4ad66f56..d3072700 100644 --- a/Runtime/Scripts/DataStreams/ByteDataStream.cs +++ b/Runtime/Scripts/DataStreams/ByteDataStream.cs @@ -5,6 +5,7 @@ using LiveKit.Internal; using LiveKit.Proto; +using LiveKit.Internal.FFI; namespace LiveKit { /// diff --git a/Runtime/Scripts/DataStreams/DataStream.cs b/Runtime/Scripts/DataStreams/DataStream.cs index 3dbc5290..68ee95a9 100644 --- a/Runtime/Scripts/DataStreams/DataStream.cs +++ b/Runtime/Scripts/DataStreams/DataStream.cs @@ -5,6 +5,7 @@ using LiveKit.Proto; using LiveKit.Internal.Threading; +using LiveKit.Internal.FFI; namespace LiveKit { /// diff --git a/Runtime/Scripts/DataStreams/DataTrack.cs b/Runtime/Scripts/DataStreams/DataTrack.cs index 1b387f2d..a6bd9fcc 100644 --- a/Runtime/Scripts/DataStreams/DataTrack.cs +++ b/Runtime/Scripts/DataStreams/DataTrack.cs @@ -5,6 +5,7 @@ using UnityEngine; using LiveKit.Internal.Threading; +using LiveKit.Internal.FFI; namespace LiveKit { /// diff --git a/Runtime/Scripts/DataStreams/TextDataStream.cs b/Runtime/Scripts/DataStreams/TextDataStream.cs index 77b3e0ce..4587a5c0 100644 --- a/Runtime/Scripts/DataStreams/TextDataStream.cs +++ b/Runtime/Scripts/DataStreams/TextDataStream.cs @@ -4,6 +4,7 @@ using LiveKit.Internal; using LiveKit.Proto; +using LiveKit.Internal.FFI; namespace LiveKit { /// diff --git a/Runtime/Scripts/Internal/FFI/FFIClient.cs b/Runtime/Scripts/Internal/FFI/FFIClient.cs index c41aa6a7..339ce2fd 100644 --- a/Runtime/Scripts/Internal/FFI/FFIClient.cs +++ b/Runtime/Scripts/Internal/FFI/FFIClient.cs @@ -7,13 +7,14 @@ using LiveKit.Internal.FFI; using LiveKit.Internal.FFI.Pools; using LiveKit.Internal.FFI.Pools.Memory; +using FfiResponsePools = LiveKit.Internal.FFI.Pools.Pools; using UnityEngine.Pool; #if UNITY_EDITOR using UnityEditor; #endif -namespace LiveKit.Internal +namespace LiveKit.Internal.FFI { #if UNITY_EDITOR [InitializeOnLoad] @@ -64,7 +65,7 @@ internal sealed class FfiClient : IFFIClient // Data Track public event DataTrackStreamEventReceivedDelegate? DataTrackStreamEventReceived; - public FfiClient() : this(Pools.NewFfiResponsePool(), new ArrayMemoryPool()) + public FfiClient() : this(FfiResponsePools.NewFfiResponsePool(), new ArrayMemoryPool()) { } diff --git a/Runtime/Scripts/Internal/FFI/FFIEvents.cs b/Runtime/Scripts/Internal/FFI/FFIEvents.cs index 9fcd1370..8e182a59 100644 --- a/Runtime/Scripts/Internal/FFI/FFIEvents.cs +++ b/Runtime/Scripts/Internal/FFI/FFIEvents.cs @@ -2,7 +2,7 @@ using System.Runtime.InteropServices; using LiveKit.Proto; -namespace LiveKit.Internal +namespace LiveKit.Internal.FFI { [UnmanagedFunctionPointer(CallingConvention.Cdecl)] diff --git a/Runtime/Scripts/Internal/FFI/FFIHandle.cs b/Runtime/Scripts/Internal/FFI/FFIHandle.cs index 2ac1079f..be31043f 100644 --- a/Runtime/Scripts/Internal/FFI/FFIHandle.cs +++ b/Runtime/Scripts/Internal/FFI/FFIHandle.cs @@ -3,7 +3,7 @@ using System.Runtime.ConstrainedExecution; using LiveKit.Proto; -namespace LiveKit.Internal +namespace LiveKit.Internal.FFI { public class FfiHandle : SafeHandle { diff --git a/Runtime/Scripts/Internal/FFI/FfiInstruction.cs b/Runtime/Scripts/Internal/FFI/FfiInstruction.cs index b54e69a4..b35e6c5b 100644 --- a/Runtime/Scripts/Internal/FFI/FfiInstruction.cs +++ b/Runtime/Scripts/Internal/FFI/FfiInstruction.cs @@ -3,7 +3,7 @@ using LiveKit.Proto; using LiveKit.Internal.Threading; -namespace LiveKit +namespace LiveKit.Internal.FFI { /// /// Generic yield instruction for one-shot FFI callbacks that follow the standard pattern: diff --git a/Runtime/Scripts/Internal/FFI/NativeMethods.cs b/Runtime/Scripts/Internal/FFI/NativeMethods.cs index 4587b345..3f4e662d 100644 --- a/Runtime/Scripts/Internal/FFI/NativeMethods.cs +++ b/Runtime/Scripts/Internal/FFI/NativeMethods.cs @@ -5,7 +5,7 @@ using FfiHandleId = System.IntPtr; -namespace LiveKit.Internal +namespace LiveKit.Internal.FFI { [SuppressUnmanagedCodeSecurity] internal static class NativeMethods diff --git a/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs b/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs index 1cf36579..7839caa2 100644 --- a/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs +++ b/Runtime/Scripts/Internal/FFI/Requests/FfiRequestWrap.cs @@ -68,7 +68,7 @@ public FfiResponseWrap Send() } catch { - if (RequestAsyncId != 0 && ffiClient is LiveKit.Internal.FfiClient client) + if (RequestAsyncId != 0 && ffiClient is LiveKit.Internal.FFI.FfiClient client) { client.CancelPendingCallback(RequestAsyncId); } diff --git a/Runtime/Scripts/Internal/Threading/YieldInstruction.cs b/Runtime/Scripts/Internal/Threading/YieldInstruction.cs index c1b95299..547dca07 100644 --- a/Runtime/Scripts/Internal/Threading/YieldInstruction.cs +++ b/Runtime/Scripts/Internal/Threading/YieldInstruction.cs @@ -4,6 +4,7 @@ using LiveKit.Internal; using UnityEngine; +using LiveKit.Internal.FFI; namespace LiveKit.Internal.Threading { // Resumes awaiter continuations on Unity's main thread. Completion may be signalled on the diff --git a/Runtime/Scripts/Video/RtcVideoSource.cs b/Runtime/Scripts/Video/RtcVideoSource.cs index 35e93b96..61efa8c8 100644 --- a/Runtime/Scripts/Video/RtcVideoSource.cs +++ b/Runtime/Scripts/Video/RtcVideoSource.cs @@ -8,6 +8,7 @@ using LiveKit.Internal.FFI.Requests; using System.Collections; +using LiveKit.Internal.FFI; namespace LiveKit { public abstract class RtcVideoSource : IRtcSource, IDisposable diff --git a/Runtime/Scripts/Video/VideoFrame.cs b/Runtime/Scripts/Video/VideoFrame.cs index 5aaf4040..aed9d4d5 100644 --- a/Runtime/Scripts/Video/VideoFrame.cs +++ b/Runtime/Scripts/Video/VideoFrame.cs @@ -4,6 +4,7 @@ using System.Runtime.CompilerServices; using LiveKit.Internal.FFI.Requests; +using LiveKit.Internal.FFI; namespace LiveKit { public sealed class VideoFrame diff --git a/Runtime/Scripts/Video/VideoStream.cs b/Runtime/Scripts/Video/VideoStream.cs index 30d4672b..d7a5b943 100644 --- a/Runtime/Scripts/Video/VideoStream.cs +++ b/Runtime/Scripts/Video/VideoStream.cs @@ -5,6 +5,7 @@ using LiveKit.Internal.FFI.Requests; using System.Collections; +using LiveKit.Internal.FFI; namespace LiveKit { public class VideoStream diff --git a/Tests/EditMode/DataStreamIncrementalReadTests.cs b/Tests/EditMode/DataStreamIncrementalReadTests.cs index c8c8af3d..0129f6d0 100644 --- a/Tests/EditMode/DataStreamIncrementalReadTests.cs +++ b/Tests/EditMode/DataStreamIncrementalReadTests.cs @@ -5,6 +5,7 @@ using LiveKit.Internal; using NUnit.Framework; +using LiveKit.Internal.FFI; namespace LiveKit.EditModeTests { public class DataStreamTests diff --git a/Tests/EditMode/FfiHandleTests.cs b/Tests/EditMode/FfiHandleTests.cs index 28a3de55..480d48e6 100644 --- a/Tests/EditMode/FfiHandleTests.cs +++ b/Tests/EditMode/FfiHandleTests.cs @@ -2,6 +2,7 @@ using LiveKit.Internal; using NUnit.Framework; +using LiveKit.Internal.FFI; namespace LiveKit.EditModeTests { public class FfiHandleTests diff --git a/Tests/EditMode/MediaStreamLifetimeTests.cs b/Tests/EditMode/MediaStreamLifetimeTests.cs index f2ac7320..b97e99c8 100644 --- a/Tests/EditMode/MediaStreamLifetimeTests.cs +++ b/Tests/EditMode/MediaStreamLifetimeTests.cs @@ -3,6 +3,7 @@ using NUnit.Framework; using UnityEngine; +using LiveKit.Internal.FFI; namespace LiveKit.EditModeTests { public class MediaStreamLifetimeTests diff --git a/Tests/EditMode/RoomDisconnectReasonTests.cs b/Tests/EditMode/RoomDisconnectReasonTests.cs index 5124d719..11ed1ebc 100644 --- a/Tests/EditMode/RoomDisconnectReasonTests.cs +++ b/Tests/EditMode/RoomDisconnectReasonTests.cs @@ -3,6 +3,7 @@ using LiveKit.Proto; using NUnit.Framework; +using LiveKit.Internal.FFI; namespace LiveKit.EditModeTests { // Drives Room.OnEventReceived with synthetic FFI events to verify that the diff --git a/Tests/EditMode/SkipDispatchTests.cs b/Tests/EditMode/SkipDispatchTests.cs index 6b2aa042..1fb00aaa 100644 --- a/Tests/EditMode/SkipDispatchTests.cs +++ b/Tests/EditMode/SkipDispatchTests.cs @@ -5,6 +5,7 @@ using LiveKit.Proto; using NUnit.Framework; +using LiveKit.Internal.FFI; namespace LiveKit.EditModeTests { public class SkipDispatchTests diff --git a/Tests/EditMode/VideoFrameTests.cs b/Tests/EditMode/VideoFrameTests.cs index d27c71c7..4326ad2d 100644 --- a/Tests/EditMode/VideoFrameTests.cs +++ b/Tests/EditMode/VideoFrameTests.cs @@ -3,6 +3,7 @@ using LiveKit.Proto; using NUnit.Framework; +using LiveKit.Internal.FFI; namespace LiveKit.EditModeTests { public class VideoFrameTests diff --git a/Tests/PlayMode/FfiHandleDisposalTests.cs b/Tests/PlayMode/FfiHandleDisposalTests.cs index 11c95943..5952f5fe 100644 --- a/Tests/PlayMode/FfiHandleDisposalTests.cs +++ b/Tests/PlayMode/FfiHandleDisposalTests.cs @@ -5,6 +5,7 @@ using UnityEngine.TestTools; using LiveKit.PlayModeTests.Utils; +using LiveKit.Internal.FFI; namespace LiveKit.PlayModeTests { public class FfiHandleDisposalTests diff --git a/Tests/PlayMode/UniTask/StreamUniTaskTests.cs b/Tests/PlayMode/UniTask/StreamUniTaskTests.cs index 56b4c4d7..eaa067eb 100644 --- a/Tests/PlayMode/UniTask/StreamUniTaskTests.cs +++ b/Tests/PlayMode/UniTask/StreamUniTaskTests.cs @@ -7,6 +7,7 @@ using NUnit.Framework; using UnityEngine.TestTools; +using LiveKit.Internal.FFI; namespace LiveKit.PlayModeTests.UniTaskBridge { public class StreamUniTaskTests From ebaad92c0ec9447cfeb3124564f3206c68d777a2 Mon Sep 17 00:00:00 2001 From: Max Heimbrock <43608204+MaxHeimbrock@users.noreply.github.com> Date: Thu, 25 Jun 2026 12:46:15 +0200 Subject: [PATCH 5/6] Rename Pools class to PoolFactory (resolves class/namespace name clash) The static pool factory `Pools` lived inside the `LiveKit.Internal.FFI.Pools` namespace, so once FFIClient moved into LiveKit.Internal.FFI the namespace shadowed the class and forced a `FfiResponsePools` alias at the call site. Rename the class to `PoolFactory` (also a clearer name than `Pools.Pools`), rename the file to match, and drop the now-unneeded alias in FFIClient.cs. Internal-only type with a single call site; no API impact. Verified by compiling the LiveKit assembly via csc. Co-Authored-By: Claude Opus 4.8 (1M context) --- Runtime/Scripts/Internal/FFI/FFIClient.cs | 3 +-- .../Scripts/Internal/FFI/Pools/{Pools.cs => PoolFactory.cs} | 2 +- .../Internal/FFI/Pools/{Pools.cs.meta => PoolFactory.cs.meta} | 0 3 files changed, 2 insertions(+), 3 deletions(-) rename Runtime/Scripts/Internal/FFI/Pools/{Pools.cs => PoolFactory.cs} (93%) rename Runtime/Scripts/Internal/FFI/Pools/{Pools.cs.meta => PoolFactory.cs.meta} (100%) diff --git a/Runtime/Scripts/Internal/FFI/FFIClient.cs b/Runtime/Scripts/Internal/FFI/FFIClient.cs index 339ce2fd..61dc2b71 100644 --- a/Runtime/Scripts/Internal/FFI/FFIClient.cs +++ b/Runtime/Scripts/Internal/FFI/FFIClient.cs @@ -7,7 +7,6 @@ using LiveKit.Internal.FFI; using LiveKit.Internal.FFI.Pools; using LiveKit.Internal.FFI.Pools.Memory; -using FfiResponsePools = LiveKit.Internal.FFI.Pools.Pools; using UnityEngine.Pool; #if UNITY_EDITOR @@ -65,7 +64,7 @@ internal sealed class FfiClient : IFFIClient // Data Track public event DataTrackStreamEventReceivedDelegate? DataTrackStreamEventReceived; - public FfiClient() : this(FfiResponsePools.NewFfiResponsePool(), new ArrayMemoryPool()) + public FfiClient() : this(PoolFactory.NewFfiResponsePool(), new ArrayMemoryPool()) { } diff --git a/Runtime/Scripts/Internal/FFI/Pools/Pools.cs b/Runtime/Scripts/Internal/FFI/Pools/PoolFactory.cs similarity index 93% rename from Runtime/Scripts/Internal/FFI/Pools/Pools.cs rename to Runtime/Scripts/Internal/FFI/Pools/PoolFactory.cs index baa11f89..9188c359 100644 --- a/Runtime/Scripts/Internal/FFI/Pools/Pools.cs +++ b/Runtime/Scripts/Internal/FFI/Pools/PoolFactory.cs @@ -4,7 +4,7 @@ namespace LiveKit.Internal.FFI.Pools { - public static class Pools + public static class PoolFactory { public static IObjectPool NewFfiResponsePool() { diff --git a/Runtime/Scripts/Internal/FFI/Pools/Pools.cs.meta b/Runtime/Scripts/Internal/FFI/Pools/PoolFactory.cs.meta similarity index 100% rename from Runtime/Scripts/Internal/FFI/Pools/Pools.cs.meta rename to Runtime/Scripts/Internal/FFI/Pools/PoolFactory.cs.meta From 52b1b4a3cec90ad212268e47e1b8cf359c46fb2d Mon Sep 17 00:00:00 2001 From: Max Heimbrock <43608204+MaxHeimbrock@users.noreply.github.com> Date: Thu, 25 Jun 2026 14:42:27 +0200 Subject: [PATCH 6/6] Delete MediaStreamLifetimeTests This test asserted on the source text of AudioStream/VideoStream/AudioResampler via StringAssert.Contains, backed by ~150 lines of file-location machinery. It tested exact code spelling rather than behavior: brittle to harmless refactors, hollow (a matched string in a comment would still pass), and the source-scraping walked the filesystem from root, which hung CI and the Editor once the hard-coded paths went stale after the feature-folder reorg. The lifetime concerns it gestured at are better covered behaviorally (e.g. FfiHandleDisposalTests), so removing rather than replacing. Co-Authored-By: Claude Opus 4.8 (1M context) --- Tests/EditMode/MediaStreamLifetimeTests.cs | 176 ------------------ .../EditMode/MediaStreamLifetimeTests.cs.meta | 11 -- 2 files changed, 187 deletions(-) delete mode 100644 Tests/EditMode/MediaStreamLifetimeTests.cs delete mode 100644 Tests/EditMode/MediaStreamLifetimeTests.cs.meta diff --git a/Tests/EditMode/MediaStreamLifetimeTests.cs b/Tests/EditMode/MediaStreamLifetimeTests.cs deleted file mode 100644 index b97e99c8..00000000 --- a/Tests/EditMode/MediaStreamLifetimeTests.cs +++ /dev/null @@ -1,176 +0,0 @@ -using System; -using System.IO; -using NUnit.Framework; -using UnityEngine; - -using LiveKit.Internal.FFI; -namespace LiveKit.EditModeTests -{ - public class MediaStreamLifetimeTests - { - private static readonly string[] AudioStreamPaths = - { - "Runtime/Scripts/AudioStream.cs", - "Assets/client-sdk-unity/Runtime/Scripts/AudioStream.cs", - }; - - private static readonly string[] VideoStreamPaths = - { - "Runtime/Scripts/VideoStream.cs", - "Assets/client-sdk-unity/Runtime/Scripts/VideoStream.cs", - }; - - private static readonly string[] AudioResamplerPaths = - { - "Runtime/Scripts/Internal/AudioResampler.cs", - "Assets/client-sdk-unity/Runtime/Scripts/Internal/AudioResampler.cs", - }; - - private static string ReadSource(params string[] candidates) - { - foreach (var root in SearchRoots()) - { - foreach (var candidate in candidates) - { - var combined = Path.GetFullPath(Path.Combine(root, candidate)); - if (File.Exists(combined)) - { - return File.ReadAllText(combined); - } - } - } - - foreach (var root in SearchRoots()) - { - foreach (var candidate in candidates) - { - var fileName = Path.GetFileName(candidate); - if (string.IsNullOrEmpty(fileName) || !Directory.Exists(root)) - { - continue; - } - - try - { - foreach (var match in Directory.EnumerateFiles(root, fileName, SearchOption.AllDirectories)) - { - // Keep the search specific to the intended suffix so a duplicate file - // name elsewhere in the repo does not satisfy the test accidentally. - var normalizedMatch = match.Replace('\\', '/'); - var normalizedCandidate = candidate.Replace('\\', '/'); - if (normalizedMatch.EndsWith(normalizedCandidate)) - { - return File.ReadAllText(match); - } - } - } - catch (IOException) - { - // Best-effort lookup for CI layout differences. - } - catch (UnauthorizedAccessException) - { - // Best-effort lookup for CI layout differences. - } - } - } - - foreach (var candidate in candidates) - { - if (File.Exists(candidate)) - { - return File.ReadAllText(candidate); - } - } - - Assert.Fail($"Could not find source file. Tried: {string.Join(", ", candidates)}"); - return string.Empty; - } - - private static string[] SearchRoots() - { - var roots = new System.Collections.Generic.List(); - - void AddWithParents(string path) - { - if (string.IsNullOrEmpty(path)) - { - return; - } - - var fullPath = Path.GetFullPath(path); - var dir = new DirectoryInfo(fullPath); - while (dir != null) - { - if (!roots.Contains(dir.FullName)) - { - roots.Add(dir.FullName); - } - dir = dir.Parent; - } - } - - AddWithParents(Directory.GetCurrentDirectory()); - AddWithParents(Application.dataPath); - - return roots.ToArray(); - } - - [Test] - public void AudioStream_Dispose_UnsubscribesAndReleasesOwnedResources() - { - var source = ReadSource(AudioStreamPaths); - - StringAssert.Contains("FfiClient.Instance.AudioStreamEventReceived -= OnAudioStreamEvent;", source); - StringAssert.Contains("_probe.AudioRead -= OnAudioRead;", source); - StringAssert.Contains("AudioSettings.OnAudioConfigurationChanged -= OnAudioConfigurationChanged;", source); - StringAssert.Contains("_buffer?.Dispose();", source); - StringAssert.Contains("_handle?.Dispose();", source); - } - - [Test] - public void AudioStream_AudioFrames_AreDisposedAfterProcessing() - { - var source = ReadSource(AudioStreamPaths); - - // Native frames carry an FFI handle that must be released after each callback so they - // do not accumulate. With the Rust side delivering frames already at Unity's rate, we - // no longer wrap a resampled output frame. - StringAssert.Contains("using var frame = new AudioFrame(e.FrameReceived.Frame);", source); - } - - [Test] - public void AudioResampler_IsDisposable_AndReleasesNativeHandle() - { - var source = ReadSource(AudioResamplerPaths); - - StringAssert.Contains("public sealed class AudioResampler : IDisposable", source); - StringAssert.Contains("_handle.Dispose();", source); - } - - [Test] - public void VideoStream_Dispose_UnsubscribesAndReleasesOwnedResources() - { - var source = ReadSource(VideoStreamPaths); - - StringAssert.Contains("FfiClient.Instance.VideoStreamEventReceived -= OnVideoStreamEvent;", source); - StringAssert.Contains("VideoBuffer?.Dispose();", source); - StringAssert.Contains("_pendingBuffer?.Dispose();", source); - StringAssert.Contains("Handle.Dispose();", source); - } - - [Test] - public void VideoStream_UsesLatestFrameWinsCoalescing() - { - var source = ReadSource(VideoStreamPaths); - - // The intake path should maintain a dedicated pending slot and replace/drop superseded - // frames so Unity uploads at most the latest frame per tick. - StringAssert.Contains("private VideoFrameBuffer _pendingBuffer;", source); - StringAssert.Contains("_pendingBuffer?.Dispose();", source); - StringAssert.Contains("_pendingBuffer = buffer;", source); - StringAssert.Contains("nextBuffer = _pendingBuffer;", source); - StringAssert.Contains("VideoBuffer = nextBuffer;", source); - } - } -} diff --git a/Tests/EditMode/MediaStreamLifetimeTests.cs.meta b/Tests/EditMode/MediaStreamLifetimeTests.cs.meta deleted file mode 100644 index 2b27be54..00000000 --- a/Tests/EditMode/MediaStreamLifetimeTests.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0b960686017254a97acbce7557bdaaf5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: