aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-03-27 15:31:24 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-03-27 15:31:24 -0400
commit7d3aa60db0800a6dd8a59dbdb9ce28e3ca06ba26 (patch)
tree5c6a0b961abcc6e2c68464314f0e70e2e4ed70ee /Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
parentc071ec551b61a843e83c8b4c9af5e0c50ea9127e (diff)
update hdhr udp stream
Diffstat (limited to 'Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs')
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs37
1 files changed, 26 insertions, 11 deletions
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
index e3d0d1eba..281632590 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
@@ -35,13 +35,21 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
if (bytesRead > 0)
{
- byte[] copy = new byte[bytesRead];
- Buffer.BlockCopy(buffer, 0, copy, 0, bytesRead);
-
var allStreams = _outputStreams.ToList();
- foreach (var stream in allStreams)
+
+ if (allStreams.Count == 1)
{
- stream.Value.Queue(copy, 0, copy.Length);
+ await allStreams[0].Value.WriteAsync(buffer, 0, bytesRead).ConfigureAwait(false);
+ }
+ else
+ {
+ byte[] copy = new byte[bytesRead];
+ Buffer.BlockCopy(buffer, 0, copy, 0, bytesRead);
+
+ foreach (var stream in allStreams)
+ {
+ stream.Value.Queue(copy, 0, copy.Length);
+ }
}
if (onStarted != null)
@@ -79,14 +87,21 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
if (bytesRead > 0)
{
- byte[] copy = new byte[bytesRead];
- Buffer.BlockCopy(data.Buffer, RtpHeaderBytes, copy, 0, bytesRead);
-
var allStreams = _outputStreams.ToList();
- foreach (var stream in allStreams)
+
+ if (allStreams.Count == 1)
{
- //stream.Value.Queue(data.Buffer, RtpHeaderBytes, bytesRead);
- stream.Value.Queue(copy, 0, copy.Length);
+ await allStreams[0].Value.WriteAsync(data.Buffer, 0, bytesRead).ConfigureAwait(false);
+ }
+ else
+ {
+ byte[] copy = new byte[bytesRead];
+ Buffer.BlockCopy(data.Buffer, RtpHeaderBytes, copy, 0, bytesRead);
+
+ foreach (var stream in allStreams)
+ {
+ stream.Value.Queue(copy, 0, copy.Length);
+ }
}
if (onStarted != null)