public void OnAudioFilterRead(float[] data, int channels) { DeckLinkManager manager = DeckLinkManager.Instance; if (manager == null) { return; } _mutex.WaitOne(); foreach (var deviceIndex in _registeredDevices) { var device = manager.GetDevice(deviceIndex); if (device == null) { _mutex.ReleaseMutex(); return; } short[] buffer = new short[data.Length]; for (int i = 0; i < data.Length; ++i) { buffer[i] = (short)(data[i] * 32767f); } DeckLinkPlugin.OutputAudio(deviceIndex, buffer, buffer.Length * 2); } _mutex.ReleaseMutex(); }