aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/LiveTv/TunerHosts/MulticastStream.cs
diff options
context:
space:
mode:
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)