aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-06-01 01:42:49 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-06-01 01:42:49 -0400
commit7e609b8fc50888fc5d8c3fa377014118526ebc06 (patch)
treedc3289c17f825f288c2d578a126f4a4a68a2409c /Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs
parent386ed8d34a154766ff202ef86719bed5c89b2ff2 (diff)
update MulticastStream
Diffstat (limited to 'Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs')
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs15
1 files changed, 6 insertions, 9 deletions
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs
index 543d2e373e..19c7111729 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/QueueStream.cs
@@ -14,7 +14,6 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
{
private readonly Stream _outputStream;
private readonly ConcurrentQueue<Tuple<byte[], int, int>> _queue = new ConcurrentQueue<Tuple<byte[], int, int>>();
- private CancellationToken _cancellationToken;
public TaskCompletionSource<bool> TaskCompletion { get; private set; }
public Action<QueueStream> OnFinished { get; set; }
@@ -35,8 +34,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
public void Start(CancellationToken cancellationToken)
{
- _cancellationToken = cancellationToken;
- Task.Run(() => StartInternal());
+ Task.Run(() => StartInternal(cancellationToken));
}
private Tuple<byte[], int, int> Dequeue()
@@ -59,10 +57,9 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
}
}
- public async Task WriteAsync(byte[] bytes, int offset, int count)
+ public async Task WriteAsync(byte[] bytes, int offset, int count, CancellationToken cancellationToken)
{
//return _outputStream.WriteAsync(bytes, offset, count, cancellationToken);
- var cancellationToken = _cancellationToken;
try
{
@@ -82,18 +79,18 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
}
}
- private async Task StartInternal()
+ private async Task StartInternal(CancellationToken cancellationToken)
{
- var cancellationToken = _cancellationToken;
-
try
{
while (true)
{
+ cancellationToken.ThrowIfCancellationRequested();
+
var result = Dequeue();
if (result != null)
{
- await _outputStream.WriteAsync(result.Item1, result.Item2, result.Item3, cancellationToken).ConfigureAwait(false);
+ _outputStream.Write(result.Item1, result.Item2, result.Item3);
}
else
{