Browse Source

fix: Audio stream dispose (#1667)

* Fix audio dispose

* Missed a few
tags/2.3.0
Paulo GitHub 4 years ago
parent
commit
a2af9857ca
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 41 additions and 6 deletions
  1. +3
    -0
      src/Discord.Net.WebSocket/Audio/Streams/BufferedWriteStream.cs
  2. +4
    -2
      src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs
  3. +5
    -3
      src/Discord.Net.WebSocket/Audio/Streams/OpusEncodeStream.cs
  4. +7
    -0
      src/Discord.Net.WebSocket/Audio/Streams/RTPReadStream.cs
  5. +8
    -1
      src/Discord.Net.WebSocket/Audio/Streams/RTPWriteStream.cs
  6. +7
    -0
      src/Discord.Net.WebSocket/Audio/Streams/SodiumDecryptStream.cs
  7. +7
    -0
      src/Discord.Net.WebSocket/Audio/Streams/SodiumEncryptStream.cs

+ 3
- 0
src/Discord.Net.WebSocket/Audio/Streams/BufferedWriteStream.cs View File

@@ -61,14 +61,17 @@ namespace Discord.Audio.Streams


_task = Run(); _task = Run();
} }

protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing) if (disposing)
{ {
_disposeTokenSource?.Cancel(); _disposeTokenSource?.Cancel();
_disposeTokenSource?.Dispose(); _disposeTokenSource?.Dispose();
_cancelTokenSource?.Cancel();
_cancelTokenSource?.Dispose(); _cancelTokenSource?.Dispose();
_queueLock?.Dispose(); _queueLock?.Dispose();
_next.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }


+ 4
- 2
src/Discord.Net.WebSocket/Audio/Streams/OpusDecodeStream.cs View File

@@ -68,10 +68,12 @@ namespace Discord.Audio.Streams


protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
base.Dispose(disposing);

if (disposing) if (disposing)
{
_decoder.Dispose(); _decoder.Dispose();
_next.Dispose();
}
base.Dispose(disposing);
} }
} }
} }

+ 5
- 3
src/Discord.Net.WebSocket/Audio/Streams/OpusEncodeStream.cs View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


@@ -89,10 +89,12 @@ namespace Discord.Audio.Streams


protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
base.Dispose(disposing);

if (disposing) if (disposing)
{
_encoder.Dispose(); _encoder.Dispose();
_next.Dispose();
}
base.Dispose(disposing);
} }
} }
} }

+ 7
- 0
src/Discord.Net.WebSocket/Audio/Streams/RTPReadStream.cs View File

@@ -76,5 +76,12 @@ namespace Discord.Audio.Streams
(buffer[extensionOffset + 3]); (buffer[extensionOffset + 3]);
return extensionOffset + 4 + (extensionLength * 4); return extensionOffset + 4 + (extensionLength * 4);
} }

protected override void Dispose(bool disposing)
{
if (disposing)
_next.Dispose();
base.Dispose(disposing);
}
} }
} }

+ 8
- 1
src/Discord.Net.WebSocket/Audio/Streams/RTPWriteStream.cs View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;


@@ -69,5 +69,12 @@ namespace Discord.Audio.Streams
{ {
await _next.ClearAsync(cancelToken).ConfigureAwait(false); await _next.ClearAsync(cancelToken).ConfigureAwait(false);
} }

protected override void Dispose(bool disposing)
{
if (disposing)
_next.Dispose();
base.Dispose(disposing);
}
} }
} }

+ 7
- 0
src/Discord.Net.WebSocket/Audio/Streams/SodiumDecryptStream.cs View File

@@ -44,5 +44,12 @@ namespace Discord.Audio.Streams
{ {
await _next.ClearAsync(cancelToken).ConfigureAwait(false); await _next.ClearAsync(cancelToken).ConfigureAwait(false);
} }

protected override void Dispose(bool disposing)
{
if (disposing)
_next.Dispose();
base.Dispose(disposing);
}
} }
} }

+ 7
- 0
src/Discord.Net.WebSocket/Audio/Streams/SodiumEncryptStream.cs View File

@@ -60,5 +60,12 @@ namespace Discord.Audio.Streams
{ {
await _next.ClearAsync(cancelToken).ConfigureAwait(false); await _next.ClearAsync(cancelToken).ConfigureAwait(false);
} }

protected override void Dispose(bool disposing)
{
if (disposing)
_next.Dispose();
base.Dispose(disposing);
}
} }
} }

Loading…
Cancel
Save