internal static List<AudioOutputDescription> GetSubOutputDescription(AudioOutputDescriptionStructure module, VlcManager manager, VlcMediaPlayerInstance mediaPlayerInstance)
 {
     var result = new List<AudioOutputDescription>();
     result.Add(new AudioOutputDescription(module.Name, module.Description, manager, mediaPlayerInstance));
     if (module.NextAudioOutputDescription != IntPtr.Zero)
     {
         AudioOutputDescriptionStructure nextModule = (AudioOutputDescriptionStructure)Marshal.PtrToStructure(module.NextAudioOutputDescription, typeof(AudioOutputDescriptionStructure));
         var data = GetSubOutputDescription(nextModule, manager, mediaPlayerInstance);
         result.AddRange(data);
     }
     return result;
 }
 public void ReleaseAudioOutputDescription(AudioOutputDescriptionStructure description)
 {
     GetInteropDelegate<ReleaseAudioOutputDescription>().Invoke(description);
 }
 public void SetAudioOutput(AudioOutputDescriptionStructure output)
 {
     SetAudioOutput(output.Name);
 }