commit
d0ce1cc319
|
@ -2648,7 +2648,7 @@ namespace Emby.Server.Implementations.Data
|
||||||
{
|
{
|
||||||
//Logger.Debug("{2} query time: {0}ms. Query: {1}",
|
//Logger.Debug("{2} query time: {0}ms. Query: {1}",
|
||||||
// Convert.ToInt32(elapsed),
|
// Convert.ToInt32(elapsed),
|
||||||
// cmd.CommandText,
|
// commandText,
|
||||||
// methodName);
|
// methodName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3617,10 +3617,12 @@ namespace Emby.Server.Implementations.Data
|
||||||
var index = 0;
|
var index = 0;
|
||||||
foreach (var type in query.TrailerTypes)
|
foreach (var type in query.TrailerTypes)
|
||||||
{
|
{
|
||||||
clauses.Add("TrailerTypes like @TrailerTypes" + index);
|
var paramName = "@TrailerTypes" + index;
|
||||||
|
|
||||||
|
clauses.Add("TrailerTypes like " + paramName);
|
||||||
if (statement != null)
|
if (statement != null)
|
||||||
{
|
{
|
||||||
statement.TryBind("@TrailerTypes" + index, "%" + type + "%");
|
statement.TryBind(paramName, "%" + type + "%");
|
||||||
}
|
}
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
@ -4201,7 +4203,7 @@ namespace Emby.Server.Implementations.Data
|
||||||
|
|
||||||
var paramName = "@ExcludeProviderId" + index;
|
var paramName = "@ExcludeProviderId" + index;
|
||||||
//excludeIds.Add("(COALESCE((select value from ProviderIds where ItemId=Guid and Name = '" + pair.Key + "'), '') <> " + paramName + ")");
|
//excludeIds.Add("(COALESCE((select value from ProviderIds where ItemId=Guid and Name = '" + pair.Key + "'), '') <> " + paramName + ")");
|
||||||
excludeIds.Add("ProviderIds not like " + paramName);
|
excludeIds.Add("(ProviderIds is null or ProviderIds not like " + paramName + ")");
|
||||||
if (statement != null)
|
if (statement != null)
|
||||||
{
|
{
|
||||||
statement.TryBind(paramName, "%" + pair.Key + "=" + pair.Value + "%");
|
statement.TryBind(paramName, "%" + pair.Key + "=" + pair.Value + "%");
|
||||||
|
|
|
@ -105,21 +105,26 @@ namespace Emby.Server.Implementations.Intros
|
||||||
trailerTypes.Clear();
|
trailerTypes.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
var trailerResult = _libraryManager.GetItemList(new InternalItemsQuery(user)
|
// hack - can't filter by user library because local trailers get TopParentId =null in the db.
|
||||||
|
// for now we have to use a post-query filter afterwards to solve that
|
||||||
|
var trailerResult = _libraryManager.GetItemList(new InternalItemsQuery
|
||||||
{
|
{
|
||||||
IncludeItemTypes = new[] { typeof(Trailer).Name },
|
IncludeItemTypes = new[] { typeof(Trailer).Name },
|
||||||
TrailerTypes = trailerTypes.ToArray(),
|
TrailerTypes = trailerTypes.ToArray(),
|
||||||
SimilarTo = item,
|
SimilarTo = item,
|
||||||
IsPlayed = config.EnableIntrosForWatchedContent ? (bool?)null : false,
|
//IsPlayed = config.EnableIntrosForWatchedContent ? (bool?)null : false,
|
||||||
MaxParentalRating = config.EnableIntrosParentalControl ? ratingLevel : null,
|
MaxParentalRating = config.EnableIntrosParentalControl ? ratingLevel : null,
|
||||||
BlockUnratedItems = config.EnableIntrosParentalControl ? new[] { UnratedItem.Trailer } : new UnratedItem[] { },
|
BlockUnratedItems = config.EnableIntrosParentalControl ? new[] { UnratedItem.Trailer } : new UnratedItem[] { },
|
||||||
|
|
||||||
// Account for duplicates by imdb id, since the database doesn't support this yet
|
// Account for duplicates by imdb id, since the database doesn't support this yet
|
||||||
Limit = config.TrailerLimit * 2,
|
Limit = config.TrailerLimit * 4,
|
||||||
SourceTypes = sourceTypes.ToArray(),
|
SourceTypes = sourceTypes.ToArray(),
|
||||||
MinSimilarityScore = 0
|
MinSimilarityScore = 0
|
||||||
|
})
|
||||||
}).Where(i => string.IsNullOrWhiteSpace(i.GetProviderId(MetadataProviders.Imdb)) || !string.Equals(i.GetProviderId(MetadataProviders.Imdb), item.GetProviderId(MetadataProviders.Imdb), StringComparison.OrdinalIgnoreCase)).Take(config.TrailerLimit);
|
.Where(i => string.IsNullOrWhiteSpace(i.GetProviderId(MetadataProviders.Imdb)) || !string.Equals(i.GetProviderId(MetadataProviders.Imdb), item.GetProviderId(MetadataProviders.Imdb), StringComparison.OrdinalIgnoreCase))
|
||||||
|
.Where(i => i.IsVisibleStandalone(user))
|
||||||
|
.Where(i => config.EnableIntrosForWatchedContent || !i.IsPlayed(user))
|
||||||
|
.Take(config.TrailerLimit);
|
||||||
|
|
||||||
candidates.AddRange(trailerResult.Select(i => new ItemWithTrailer
|
candidates.AddRange(trailerResult.Select(i => new ItemWithTrailer
|
||||||
{
|
{
|
||||||
|
|
|
@ -240,14 +240,49 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_logger.Info("Killing ffmpeg recording process for {0}", _targetPath);
|
_logger.Info("Stopping ffmpeg recording process for {0}", _targetPath);
|
||||||
|
|
||||||
//process.Kill();
|
//process.Kill();
|
||||||
_process.StandardInput.WriteLine("q");
|
_process.StandardInput.WriteLine("q");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
_logger.ErrorException("Error killing transcoding job for {0}", ex, _targetPath);
|
_logger.ErrorException("Error stopping recording transcoding job for {0}", ex, _targetPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_hasExited)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.Info("Calling recording process.WaitForExit for {0}", _targetPath);
|
||||||
|
|
||||||
|
if (_process.WaitForExit(5000))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.ErrorException("Error waiting for recording process to exit for {0}", ex, _targetPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_hasExited)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_logger.Info("Killing ffmpeg recording process for {0}", _targetPath);
|
||||||
|
|
||||||
|
_process.Kill();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.ErrorException("Error killing recording transcoding job for {0}", ex, _targetPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,7 +160,8 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts
|
||||||
|
|
||||||
Id = channel.Path.GetMD5().ToString("N"),
|
Id = channel.Path.GetMD5().ToString("N"),
|
||||||
IsInfiniteStream = true,
|
IsInfiniteStream = true,
|
||||||
SupportsDirectStream = false
|
SupportsDirectStream = false,
|
||||||
|
IsRemote = true
|
||||||
};
|
};
|
||||||
|
|
||||||
return new List<MediaSourceInfo> { mediaSource };
|
return new List<MediaSourceInfo> { mediaSource };
|
||||||
|
|
|
@ -68,7 +68,8 @@ namespace MediaBrowser.Controller.Channels
|
||||||
Id = id,
|
Id = id,
|
||||||
ReadAtNativeFramerate = ReadAtNativeFramerate,
|
ReadAtNativeFramerate = ReadAtNativeFramerate,
|
||||||
SupportsDirectStream = false,
|
SupportsDirectStream = false,
|
||||||
SupportsDirectPlay = SupportsDirectPlay
|
SupportsDirectPlay = SupportsDirectPlay,
|
||||||
|
IsRemote = true
|
||||||
};
|
};
|
||||||
|
|
||||||
var bitrate = (AudioBitrate ?? 0) + (VideoBitrate ?? 0);
|
var bitrate = (AudioBitrate ?? 0) + (VideoBitrate ?? 0);
|
||||||
|
|
|
@ -1590,14 +1590,17 @@ namespace MediaBrowser.Controller.Entities
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var userCollectionFolders = user.RootFolder.GetChildren(user, true).Select(i => i.Id).ToList();
|
var itemCollectionFolders = LibraryManager.GetCollectionFolders(this).Select(i => i.Id).ToList();
|
||||||
var itemCollectionFolders = LibraryManager.GetCollectionFolders(this).Select(i => i.Id);
|
|
||||||
|
|
||||||
|
if (itemCollectionFolders.Count > 0)
|
||||||
|
{
|
||||||
|
var userCollectionFolders = user.RootFolder.GetChildren(user, true).Select(i => i.Id).ToList();
|
||||||
if (!itemCollectionFolders.Any(userCollectionFolders.Contains))
|
if (!itemCollectionFolders.Any(userCollectionFolders.Contains))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1250,8 +1250,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
lock (_runningProcesses)
|
lock (_runningProcesses)
|
||||||
{
|
{
|
||||||
proceses = _runningProcesses.ToList();
|
proceses = _runningProcesses.ToList();
|
||||||
}
|
|
||||||
_runningProcesses.Clear();
|
_runningProcesses.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var process in proceses)
|
foreach (var process in proceses)
|
||||||
{
|
{
|
||||||
|
@ -1321,16 +1321,16 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
lock (_mediaEncoder._runningProcesses)
|
|
||||||
{
|
|
||||||
_mediaEncoder._runningProcesses.Remove(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
DisposeProcess(process);
|
DisposeProcess(process);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DisposeProcess(IProcess process)
|
private void DisposeProcess(IProcess process)
|
||||||
{
|
{
|
||||||
|
lock (_mediaEncoder._runningProcesses)
|
||||||
|
{
|
||||||
|
_mediaEncoder._runningProcesses.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
process.Dispose();
|
process.Dispose();
|
||||||
|
|
|
@ -21,6 +21,11 @@ namespace MediaBrowser.Model.Dto
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Differentiate internet url vs local network
|
||||||
|
/// </summary>
|
||||||
|
public bool IsRemote { get; set; }
|
||||||
|
|
||||||
public string ETag { get; set; }
|
public string ETag { get; set; }
|
||||||
public long? RunTimeTicks { get; set; }
|
public long? RunTimeTicks { get; set; }
|
||||||
public bool ReadAtNativeFramerate { get; set; }
|
public bool ReadAtNativeFramerate { get; set; }
|
||||||
|
|
|
@ -92,6 +92,11 @@ namespace MediaBrowser.Model.Entities
|
||||||
{
|
{
|
||||||
attributes.Add(StringHelper.FirstToUpper(Language));
|
attributes.Add(StringHelper.FirstToUpper(Language));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
attributes.Add("Und");
|
||||||
|
}
|
||||||
|
|
||||||
if (IsDefault)
|
if (IsDefault)
|
||||||
{
|
{
|
||||||
attributes.Add("Default");
|
attributes.Add("Default");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user