aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/LiveTv
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-11-21 17:15:36 -0500
committerGitHub <noreply@github.com>2017-11-21 17:15:36 -0500
commitbfe88d50576ef98d99890cde6dedf84d3cf9044f (patch)
treee45797a21eaf7d5046cdab4bc362099512e24bae /Emby.Server.Implementations/LiveTv
parent71ff88284be60fb39a7389e0c4990c94f2207ed4 (diff)
parent77695f8abed3156de04c6bb2496c14a2ab3d90a8 (diff)
Merge pull request #3034 from MediaBrowser/dev
Dev
Diffstat (limited to 'Emby.Server.Implementations/LiveTv')
-rw-r--r--Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs16
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs5
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs22
3 files changed, 34 insertions, 9 deletions
diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
index 9992c71ecf..a4c5645e74 100644
--- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
@@ -1897,7 +1897,15 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
imageSaveFilenameWithoutExtension = "logo";
break;
case ImageType.Thumb:
- imageSaveFilenameWithoutExtension = "landscape";
+ if (program.IsSeries)
+ {
+ imageSaveFilenameWithoutExtension = Path.GetFileNameWithoutExtension(recordingPath) + "-thumb";
+ }
+ else
+ {
+ imageSaveFilenameWithoutExtension = "landscape";
+ }
+
break;
case ImageType.Backdrop:
imageSaveFilenameWithoutExtension = "fanart";
@@ -1921,9 +1929,11 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
private async Task SaveRecordingImages(string recordingPath, LiveTvProgram program)
{
- var image = program.GetImageInfo(ImageType.Primary, 0);
+ var image = program.IsSeries ?
+ (program.GetImageInfo(ImageType.Thumb, 0) ?? program.GetImageInfo(ImageType.Primary, 0)) :
+ (program.GetImageInfo(ImageType.Primary, 0) ?? program.GetImageInfo(ImageType.Thumb, 0));
- if (image != null && program.IsMovie)
+ if (image != null)
{
try
{
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs
index c96d1f3592..e6c9b184e5 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/M3UTunerHost.cs
@@ -152,6 +152,8 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
isRemote = !_networkManager.IsInLocalNetwork(uri.Host);
}
+ var supportsDirectPlay = !info.EnableStreamLooping && info.TunerCount == 0;
+
var mediaSource = new MediaSourceInfo
{
Path = path,
@@ -183,7 +185,8 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
IsInfiniteStream = true,
IsRemote = isRemote,
- IgnoreDts = true
+ IgnoreDts = true,
+ SupportsDirectPlay = supportsDirectPlay
};
mediaSource.InferTotalBitrate();
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs
index cc2cb3e5ee..b8c7c7b18e 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/SharedHttpStream.cs
@@ -88,6 +88,9 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
SetTempFilePath(extension);
var taskCompletionSource = new TaskCompletionSource<bool>();
+
+ var now = DateTime.UtcNow;
+
StartStreaming(response, taskCompletionSource, LiveStreamCancellationTokenSource.Token);
//OpenedMediaSource.Protocol = MediaProtocol.File;
@@ -97,11 +100,6 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
OpenedMediaSource.Path = _appHost.GetLocalApiUrl("127.0.0.1") + "/LiveTv/LiveStreamFiles/" + UniqueId + "/stream.ts";
OpenedMediaSource.Protocol = MediaProtocol.Http;
- if (OpenedMediaSource.SupportsProbing)
- {
- await Task.Delay(3000).ConfigureAwait(false);
- }
-
//OpenedMediaSource.Path = TempFilePath;
//OpenedMediaSource.Protocol = MediaProtocol.File;
@@ -111,6 +109,20 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
//OpenedMediaSource.SupportsDirectStream = true;
//OpenedMediaSource.SupportsTranscoding = true;
await taskCompletionSource.Task.ConfigureAwait(false);
+
+ if (OpenedMediaSource.SupportsProbing)
+ {
+ var elapsed = (DateTime.UtcNow - now).TotalMilliseconds;
+
+ var delay = Convert.ToInt32(3000 - elapsed);
+
+ if (delay > 0)
+ {
+ Logger.Info("Delaying shared stream by {0}ms to allow the buffer to build.", delay);
+
+ await Task.Delay(delay).ConfigureAwait(false);
+ }
+ }
}
protected override void CloseInternal()