commit
8a8bf99550
|
@ -187,7 +187,10 @@ namespace Emby.Server.Core.EntryPoints
|
|||
|
||||
private void ClearCreatedRules(object state)
|
||||
{
|
||||
_createdRules = new List<string>();
|
||||
lock (_createdRules)
|
||||
{
|
||||
_createdRules.Clear();
|
||||
}
|
||||
lock (_usnsHandled)
|
||||
{
|
||||
_usnsHandled.Clear();
|
||||
|
@ -236,9 +239,17 @@ namespace Emby.Server.Core.EntryPoints
|
|||
|
||||
var address = device.LocalAddress.ToString();
|
||||
|
||||
lock (_createdRules)
|
||||
{
|
||||
if (!_createdRules.Contains(address))
|
||||
{
|
||||
_createdRules.Add(address);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var success = await CreatePortMap(device, _appHost.HttpPort, _config.Configuration.PublicPort).ConfigureAwait(false);
|
||||
|
||||
|
@ -247,7 +258,6 @@ namespace Emby.Server.Core.EntryPoints
|
|||
await CreatePortMap(device, _appHost.HttpsPort, _config.Configuration.PublicHttpsPort).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<bool> CreatePortMap(INatDevice device, int privatePort, int publicPort)
|
||||
{
|
||||
|
|
|
@ -67,7 +67,11 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
|||
|
||||
private bool CopySubtitles
|
||||
{
|
||||
get { return string.Equals(OutputFormat, "mkv", StringComparison.OrdinalIgnoreCase); }
|
||||
get
|
||||
{
|
||||
return false;
|
||||
//return string.Equals(OutputFormat, "mkv", StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
}
|
||||
|
||||
public string GetOutputPath(MediaSourceInfo mediaSource, string targetFile)
|
||||
|
|
|
@ -298,15 +298,20 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
|||
|
||||
private string GetTunerChannelId(Dictionary<string, string> attributes)
|
||||
{
|
||||
string result;
|
||||
attributes.TryGetValue("tvg-id", out result);
|
||||
var values = new List<string>();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(result))
|
||||
string result;
|
||||
if (attributes.TryGetValue("tvg-id", out result))
|
||||
{
|
||||
attributes.TryGetValue("channel-id", out result);
|
||||
values.Add(result);
|
||||
}
|
||||
|
||||
return result;
|
||||
if (attributes.TryGetValue("channel-id", out result))
|
||||
{
|
||||
values.Add(result);
|
||||
}
|
||||
|
||||
return values.Count == 0 ? null : string.Join("-", values.ToArray());
|
||||
}
|
||||
|
||||
private Dictionary<string, string> ParseExtInf(string line, out string remaining)
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
public bool EnableInternetProviders { get; set; }
|
||||
public bool ImportMissingEpisodes { get; set; }
|
||||
public bool EnableAutomaticSeriesGrouping { get; set; }
|
||||
public bool EnableEmbeddedTitles { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the preferred metadata language.
|
||||
|
|
|
@ -195,8 +195,9 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
}
|
||||
|
||||
await AddExternalSubtitles(video, mediaStreams, options, cancellationToken).ConfigureAwait(false);
|
||||
var libraryOptions = _libraryManager.GetLibraryOptions(video);
|
||||
|
||||
FetchEmbeddedInfo(video, mediaInfo, options);
|
||||
FetchEmbeddedInfo(video, mediaInfo, options, libraryOptions);
|
||||
await FetchPeople(video, mediaInfo, options).ConfigureAwait(false);
|
||||
|
||||
video.IsHD = mediaStreams.Any(i => i.Type == MediaStreamType.Video && i.Width.HasValue && i.Width.Value >= 1260);
|
||||
|
@ -222,7 +223,6 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
|
||||
NormalizeChapterNames(chapters);
|
||||
|
||||
var libraryOptions = _libraryManager.GetLibraryOptions(video);
|
||||
var extractDuringScan = false;
|
||||
if (libraryOptions != null)
|
||||
{
|
||||
|
@ -344,9 +344,9 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
}
|
||||
}
|
||||
|
||||
private void FetchEmbeddedInfo(Video video, Model.MediaInfo.MediaInfo data, MetadataRefreshOptions options)
|
||||
private void FetchEmbeddedInfo(Video video, Model.MediaInfo.MediaInfo data, MetadataRefreshOptions refreshOptions, LibraryOptions libraryOptions)
|
||||
{
|
||||
var isFullRefresh = options.MetadataRefreshMode == MetadataRefreshMode.FullRefresh;
|
||||
var isFullRefresh = refreshOptions.MetadataRefreshMode == MetadataRefreshMode.FullRefresh;
|
||||
|
||||
if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.OfficialRating))
|
||||
{
|
||||
|
@ -418,9 +418,7 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
|
||||
if (!video.IsLocked && !video.LockedFields.Contains(MetadataFields.Name))
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(data.Name))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(video.Name) || (string.Equals(video.Name, Path.GetFileNameWithoutExtension(video.Path), StringComparison.OrdinalIgnoreCase) && !video.ProviderIds.Any()))
|
||||
if (!string.IsNullOrWhiteSpace(data.Name) && libraryOptions.EnableEmbeddedTitles)
|
||||
{
|
||||
// Don't use the embedded name for extras because it will often be the same name as the movie
|
||||
if (!video.ExtraType.HasValue && !video.IsOwnedItem)
|
||||
|
@ -429,7 +427,6 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If we don't have a ProductionYear try and get it from PremiereDate
|
||||
if (video.PremiereDate.HasValue && !video.ProductionYear.HasValue)
|
||||
|
@ -481,7 +478,7 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
/// </summary>
|
||||
/// <param name="video">The video.</param>
|
||||
/// <param name="currentStreams">The current streams.</param>
|
||||
/// <param name="options">The options.</param>
|
||||
/// <param name="options">The refreshOptions.</param>
|
||||
/// <param name="cancellationToken">The cancellation token.</param>
|
||||
/// <returns>Task.</returns>
|
||||
private async Task AddExternalSubtitles(Video video,
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyVersion("3.2.1.114")]
|
||||
[assembly: AssemblyVersion("3.2.1.115")]
|
||||
|
|
Loading…
Reference in New Issue
Block a user