Explorar o código

update recording screens

Luke Pulverenti %!s(int64=8) %!d(string=hai) anos
pai
achega
d94598a75e

+ 3 - 1
MediaBrowser.Api/Playback/BaseStreamingService.cs

@@ -367,6 +367,8 @@ namespace MediaBrowser.Api.Playback
                 {
                     param += " -crf 23";
                 }
+
+                param += " -tune zerolatency";
             }
 
             else if (string.Equals(videoEncoder, "libx265", StringComparison.OrdinalIgnoreCase))
@@ -1232,7 +1234,7 @@ namespace MediaBrowser.Api.Playback
 
         private void StartThrottler(StreamState state, TranscodingJob transcodingJob)
         {
-            if (EnableThrottling(state) && !string.Equals(state.OutputVideoCodec, "copy", StringComparison.OrdinalIgnoreCase))
+            if (EnableThrottling(state))
             {
                 transcodingJob.TranscodingThrottler = state.TranscodingThrottler = new TranscodingThrottler(transcodingJob, Logger, ServerConfigurationManager);
                 state.TranscodingThrottler.Start();

+ 2 - 0
MediaBrowser.Controller/Entities/IHasMetadata.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Collections.Generic;
 
 namespace MediaBrowser.Controller.Entities
 {
@@ -62,5 +63,6 @@ namespace MediaBrowser.Controller.Entities
 
         int? GetInheritedParentalRatingValue();
         int InheritedParentalRatingValue { get; set; }
+        List<string> GetInheritedTags();
     }
 }

+ 0 - 21
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -108,11 +108,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
         {
             get
             {
-                if (_hasExternalEncoder)
-                {
-                    return "External";
-                }
-
                 if (string.IsNullOrWhiteSpace(FFMpegPath))
                 {
                     return null;
@@ -177,12 +172,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
         {
             ConfigureEncoderPaths();
 
-            if (_hasExternalEncoder)
-            {
-                LogPaths();
-                return;
-            }
-
             // If the path was passed in, save it into config now.
             var encodingOptions = GetEncodingOptions();
             var appPath = encodingOptions.EncoderAppPath;
@@ -207,11 +196,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
 
         public async Task UpdateEncoderPath(string path, string pathType)
         {
-            if (_hasExternalEncoder)
-            {
-                return;
-            }
-
             Tuple<string, string> newPaths;
 
             if (string.Equals(pathType, "system", StringComparison.OrdinalIgnoreCase))
@@ -256,11 +240,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
 
         private void ConfigureEncoderPaths()
         {
-            if (_hasExternalEncoder)
-            {
-                return;
-            }
-
             var appPath = GetEncodingOptions().EncoderAppPath;
 
             if (string.IsNullOrWhiteSpace(appPath))

+ 18 - 0
MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs

@@ -843,6 +843,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
                 if (recordingEndDate <= DateTime.UtcNow)
                 {
                     _logger.Warn("Recording timer fired for timer {0}, Id: {1}, but the program has already ended.", timer.Name, timer.Id);
+                    _timerProvider.Delete(timer);
                     return;
                 }
 
@@ -1273,6 +1274,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
                         writer.WriteElementString("rating", timer.CommunityRating.Value.ToString(CultureInfo.InvariantCulture));
                     }
 
+                    if (timer.IsSports)
+                    {
+                        AddGenre(timer.Genres, "Sports");
+                    }
+                    if (timer.IsKids)
+                    {
+                        AddGenre(timer.Genres, "Kids");
+                    }
+
                     foreach (var genre in timer.Genres)
                     {
                         writer.WriteElementString("genre", genre);
@@ -1294,6 +1304,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
             }
         }
 
+        private void AddGenre(List<string> genres, string genre)
+        {
+            if (!genres.Contains(genre, StringComparer.OrdinalIgnoreCase))
+            {
+                genres.Add(genre);
+            }
+        }
+
         private ProgramInfo GetProgramInfoFromCache(string channelId, string programId)
         {
             var epgData = GetEpgDataForChannel(channelId);

+ 16 - 8
MediaBrowser.Server.Implementations/LiveTv/Listings/SchedulesDirect.cs

@@ -339,13 +339,18 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
                     channelNumber = channelNumber.TrimStart('0');
 
                     _logger.Debug("Found channel: " + channelNumber + " in Schedules Direct");
-                    if (root.stations != null)
+
+                    var schChannel = (root.stations ?? new List<ScheduleDirect.Station>()).FirstOrDefault(item => string.Equals(item.stationID, map.stationID, StringComparison.OrdinalIgnoreCase));
+                    if (schChannel != null)
                     {
-                        var schChannel = root.stations.FirstOrDefault(item => string.Equals(item.stationID, map.stationID, StringComparison.OrdinalIgnoreCase));
-                        if (schChannel != null)
+                        AddToChannelPairCache(listingsId, channelNumber, schChannel);
+                    }
+                    else
+                    {
+                        AddToChannelPairCache(listingsId, channelNumber, new ScheduleDirect.Station
                         {
-                            AddToChannelPairCache(listingsId, channelNumber, schChannel);
-                        }
+                            stationID = map.stationID
+                        });
                     }
                 }
                 _logger.Info("Added " + GetChannelPairCacheCount(listingsId) + " channels to the dictionary");
@@ -361,8 +366,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
                             channel.ImageUrl = station.logo.URL;
                             channel.HasImage = true;
                         }
-                        string channelName = station.name;
-                        channel.Name = channelName;
+
+                        if (!string.IsNullOrWhiteSpace(station.name))
+                        {
+                            channel.Name = station.name;
+                        }
                     }
                     else
                     {
@@ -993,7 +1001,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv.Listings
                     var name = channelNumber;
                     var station = GetStation(listingsId, channelNumber, null);
 
-                    if (station != null)
+                    if (station != null && !string.IsNullOrWhiteSpace(station.name))
                     {
                         name = station.name;
                     }

+ 17 - 0
MediaBrowser.Server.Startup.Common/ApplicationHost.cs

@@ -870,6 +870,23 @@ namespace MediaBrowser.Server.Startup.Common
         {
             CertificatePath = GetCertificatePath(true);
 
+            try
+            {
+                ServerManager.Start(GetUrlPrefixes(), CertificatePath);
+                return;
+            }
+            catch (Exception ex)
+            {
+                Logger.ErrorException("Error starting http server", ex);
+
+                if (HttpPort == 8096)
+                {
+                    throw;
+                }
+            }
+
+            HttpPort = 8096;
+
             try
             {
                 ServerManager.Start(GetUrlPrefixes(), CertificatePath);