native macos backend, reduce latency

This commit is contained in:
Boof2015
2026-03-21 19:07:47 -04:00
parent 78d8be23a3
commit c6fce51a42
12 changed files with 1304 additions and 112 deletions
+3
View File
@@ -13,6 +13,9 @@ export interface CaptureSourceDescriptor {
id: string
label: string
kind: CaptureMode
isDefault?: boolean
sampleRate?: number
channelCount?: number
}
export interface CaptureBackendSupportEntry {
+47
View File
@@ -0,0 +1,47 @@
export interface NativeMacOSCaptureSupport {
available: boolean
reason: string | null
}
export interface NativeMacOSCaptureSource {
id: string
label: string
kind: 'system'
isDefault: boolean
sampleRate: number
channelCount: number
}
export interface NativeMacOSCaptureStartResult {
sampleRate: number
channelCount: number
deviceId: string
deviceLabel: string
}
export interface NativeMacOSCapturedChunk {
left: Float32Array
right: Float32Array
channelCount: number
capturedAtMilliseconds: number
sequence: number
}
export interface NativeMacOSCaptureDrainResult {
chunks: NativeMacOSCapturedChunk[]
overwriteCount: number
queueDepth: number
}
export interface NativeMacOSCaptureAPI {
getSupport: () => NativeMacOSCaptureSupport
listOutputDevices: () => NativeMacOSCaptureSource[]
start: (deviceId?: string) => NativeMacOSCaptureStartResult
stop: () => void
drain: (maxChunks?: number) => NativeMacOSCaptureDrainResult
nowMilliseconds: () => number
}
export interface NativeCaptureAPI {
macosCapture: NativeMacOSCaptureAPI
}