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();
        }