Remove useless checks and dead code (#13405)

* Remove useless checks and dead code

* Enable adaptive bitrate streaming again

* Disable adaptive bitrate streaming by default
This commit is contained in:
Bond-009 2025-01-28 11:29:22 +01:00 committed by GitHub
commit bcdffa74a8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 30 additions and 75 deletions

View File

@ -754,14 +754,7 @@ namespace Emby.Server.Implementations.Library
if (folder.Id.IsEmpty()) if (folder.Id.IsEmpty())
{ {
if (string.IsNullOrEmpty(folder.Path)) folder.Id = GetNewItemId(folder.Path, folder.GetType());
{
folder.Id = GetNewItemId(folder.GetType().Name, folder.GetType());
}
else
{
folder.Id = GetNewItemId(folder.Path, folder.GetType());
}
} }
var dbItem = GetItemById(folder.Id) as BasePluginFolder; var dbItem = GetItemById(folder.Id) as BasePluginFolder;

View File

@ -308,39 +308,40 @@ namespace Emby.Server.Implementations.Library
} }
} }
var mediaTypes = new List<MediaType>(); MediaType[] mediaTypes = [];
if (includeItemTypes.Length == 0) if (includeItemTypes.Length == 0)
{ {
HashSet<MediaType> tmpMediaTypes = [];
foreach (var parent in parents.OfType<ICollectionFolder>()) foreach (var parent in parents.OfType<ICollectionFolder>())
{ {
switch (parent.CollectionType) switch (parent.CollectionType)
{ {
case CollectionType.books: case CollectionType.books:
mediaTypes.Add(MediaType.Book); tmpMediaTypes.Add(MediaType.Book);
mediaTypes.Add(MediaType.Audio); tmpMediaTypes.Add(MediaType.Audio);
break; break;
case CollectionType.music: case CollectionType.music:
mediaTypes.Add(MediaType.Audio); tmpMediaTypes.Add(MediaType.Audio);
break; break;
case CollectionType.photos: case CollectionType.photos:
mediaTypes.Add(MediaType.Photo); tmpMediaTypes.Add(MediaType.Photo);
mediaTypes.Add(MediaType.Video); tmpMediaTypes.Add(MediaType.Video);
break; break;
case CollectionType.homevideos: case CollectionType.homevideos:
mediaTypes.Add(MediaType.Photo); tmpMediaTypes.Add(MediaType.Photo);
mediaTypes.Add(MediaType.Video); tmpMediaTypes.Add(MediaType.Video);
break; break;
default: default:
mediaTypes.Add(MediaType.Video); tmpMediaTypes.Add(MediaType.Video);
break; break;
} }
} }
mediaTypes = mediaTypes.Distinct().ToList(); mediaTypes = tmpMediaTypes.ToArray();
} }
var excludeItemTypes = includeItemTypes.Length == 0 && mediaTypes.Count == 0 var excludeItemTypes = includeItemTypes.Length == 0 && mediaTypes.Length == 0
? new[] ? new[]
{ {
BaseItemKind.Person, BaseItemKind.Person,
@ -366,14 +367,9 @@ namespace Emby.Server.Implementations.Library
Limit = limit * 5, Limit = limit * 5,
IsPlayed = isPlayed, IsPlayed = isPlayed,
DtoOptions = options, DtoOptions = options,
MediaTypes = mediaTypes.ToArray() MediaTypes = mediaTypes
}; };
if (parents.Count == 0)
{
return _libraryManager.GetItemList(query, false);
}
return _libraryManager.GetItemList(query, parents); return _libraryManager.GetItemList(query, parents);
} }
} }

View File

@ -57,7 +57,7 @@ namespace Jellyfin.Api.Auth
var claims = new[] var claims = new[]
{ {
new Claim(ClaimTypes.Name, authorizationInfo.User?.Username ?? string.Empty), new Claim(ClaimTypes.Name, authorizationInfo.User.Username),
new Claim(ClaimTypes.Role, role), new Claim(ClaimTypes.Role, role),
new Claim(InternalClaimTypes.UserId, authorizationInfo.UserId.ToString("N", CultureInfo.InvariantCulture)), new Claim(InternalClaimTypes.UserId, authorizationInfo.UserId.ToString("N", CultureInfo.InvariantCulture)),
new Claim(InternalClaimTypes.DeviceId, authorizationInfo.DeviceId), new Claim(InternalClaimTypes.DeviceId, authorizationInfo.DeviceId),

View File

@ -459,7 +459,7 @@ public class DynamicHlsController : BaseJellyfinApiController
[FromQuery] int? videoStreamIndex, [FromQuery] int? videoStreamIndex,
[FromQuery] EncodingContext? context, [FromQuery] EncodingContext? context,
[FromQuery] Dictionary<string, string> streamOptions, [FromQuery] Dictionary<string, string> streamOptions,
[FromQuery] bool enableAdaptiveBitrateStreaming = true, [FromQuery] bool enableAdaptiveBitrateStreaming = false,
[FromQuery] bool enableTrickplay = true, [FromQuery] bool enableTrickplay = true,
[FromQuery] bool enableAudioVbrEncoding = true, [FromQuery] bool enableAudioVbrEncoding = true,
[FromQuery] bool alwaysBurnInSubtitleWhenTranscoding = false) [FromQuery] bool alwaysBurnInSubtitleWhenTranscoding = false)
@ -634,7 +634,7 @@ public class DynamicHlsController : BaseJellyfinApiController
[FromQuery] int? videoStreamIndex, [FromQuery] int? videoStreamIndex,
[FromQuery] EncodingContext? context, [FromQuery] EncodingContext? context,
[FromQuery] Dictionary<string, string> streamOptions, [FromQuery] Dictionary<string, string> streamOptions,
[FromQuery] bool enableAdaptiveBitrateStreaming = true, [FromQuery] bool enableAdaptiveBitrateStreaming = false,
[FromQuery] bool enableAudioVbrEncoding = true) [FromQuery] bool enableAudioVbrEncoding = true)
{ {
var streamingRequest = new HlsAudioRequestDto var streamingRequest = new HlsAudioRequestDto

View File

@ -222,7 +222,7 @@ public class UniversalAudioController : BaseJellyfinApiController
TranscodeReasons = mediaSource.TranscodeReasons == 0 ? null : mediaSource.TranscodeReasons.ToString(), TranscodeReasons = mediaSource.TranscodeReasons == 0 ? null : mediaSource.TranscodeReasons.ToString(),
Context = EncodingContext.Static, Context = EncodingContext.Static,
StreamOptions = new Dictionary<string, string>(), StreamOptions = new Dictionary<string, string>(),
EnableAdaptiveBitrateStreaming = true, EnableAdaptiveBitrateStreaming = false,
EnableAudioVbrEncoding = enableAudioVbrEncoding EnableAudioVbrEncoding = enableAudioVbrEncoding
}; };

View File

@ -267,7 +267,7 @@ public class DynamicHlsHelper
if (EnableAdaptiveBitrateStreaming(state, isLiveStream, enableAdaptiveBitrateStreaming, _httpContextAccessor.HttpContext.GetNormalizedRemoteIP())) if (EnableAdaptiveBitrateStreaming(state, isLiveStream, enableAdaptiveBitrateStreaming, _httpContextAccessor.HttpContext.GetNormalizedRemoteIP()))
{ {
var requestedVideoBitrate = state.VideoRequest is null ? 0 : state.VideoRequest.VideoBitRate ?? 0; var requestedVideoBitrate = state.VideoRequest?.VideoBitRate ?? 0;
// By default, vary by just 200k // By default, vary by just 200k
var variation = GetBitrateVariation(totalBitrate); var variation = GetBitrateVariation(totalBitrate);
@ -526,9 +526,7 @@ public class DynamicHlsHelper
return false; return false;
} }
// Having problems in android return state.VideoRequest?.VideoBitRate.HasValue ?? false;
return false;
// return state.VideoRequest.VideoBitRate.HasValue;
} }
private void AddSubtitles(StreamState state, IEnumerable<MediaStream> subtitles, StringBuilder builder, ClaimsPrincipal user) private void AddSubtitles(StreamState state, IEnumerable<MediaStream> subtitles, StringBuilder builder, ClaimsPrincipal user)
@ -616,7 +614,7 @@ public class DynamicHlsHelper
&& state.VideoStream is not null && state.VideoStream is not null
&& state.VideoStream.Level.HasValue) && state.VideoStream.Level.HasValue)
{ {
levelString = state.VideoStream.Level.Value.ToString(CultureInfo.InvariantCulture) ?? string.Empty; levelString = state.VideoStream.Level.Value.ToString(CultureInfo.InvariantCulture);
} }
else else
{ {

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Net; using System.Net;
using System.Net.Sockets; using System.Net.Sockets;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
@ -102,7 +103,7 @@ public static partial class NetworkUtils
Span<byte> bytes = stackalloc byte[mask.AddressFamily == AddressFamily.InterNetwork ? NetworkConstants.IPv4MaskBytes : NetworkConstants.IPv6MaskBytes]; Span<byte> bytes = stackalloc byte[mask.AddressFamily == AddressFamily.InterNetwork ? NetworkConstants.IPv4MaskBytes : NetworkConstants.IPv6MaskBytes];
if (!mask.TryWriteBytes(bytes, out var bytesWritten)) if (!mask.TryWriteBytes(bytes, out var bytesWritten))
{ {
Console.WriteLine("Unable to write address bytes, only ${bytesWritten} bytes written."); Console.WriteLine("Unable to write address bytes, only {0} bytes written.", bytesWritten.ToString(CultureInfo.InvariantCulture));
} }
var zeroed = false; var zeroed = false;

View File

@ -1242,11 +1242,6 @@ namespace MediaBrowser.Controller.Entities
return false; return false;
} }
if (request.GenreIds.Count > 0)
{
return false;
}
if (request.VideoTypes.Length > 0) if (request.VideoTypes.Length > 0)
{ {
return false; return false;

View File

@ -134,7 +134,7 @@ namespace MediaBrowser.Controller.Entities.TV
var series = Series; var series = Series;
if (series is not null) if (series is not null)
{ {
return series.PresentationUniqueKey + "-" + (IndexNumber ?? 0).ToString("000", CultureInfo.InvariantCulture); return series.PresentationUniqueKey + "-" + IndexNumber.Value.ToString("000", CultureInfo.InvariantCulture);
} }
} }

View File

@ -1087,12 +1087,12 @@ namespace MediaBrowser.Model.Dlna
_logger.LogDebug( _logger.LogDebug(
"Transcode Result for Profile: {Profile}, Path: {Path}, PlayMethod: {PlayMethod}, AudioStreamIndex: {AudioStreamIndex}, SubtitleStreamIndex: {SubtitleStreamIndex}, Reasons: {TranscodeReason}", "Transcode Result for Profile: {Profile}, Path: {Path}, PlayMethod: {PlayMethod}, AudioStreamIndex: {AudioStreamIndex}, SubtitleStreamIndex: {SubtitleStreamIndex}, Reasons: {TranscodeReason}",
options.Profile?.Name ?? "Anonymous Profile", options.Profile.Name ?? "Anonymous Profile",
item.Path ?? "Unknown path", item.Path ?? "Unknown path",
playlistItem?.PlayMethod, playlistItem.PlayMethod,
audioStream?.Index, audioStream?.Index,
playlistItem?.SubtitleStreamIndex, playlistItem.SubtitleStreamIndex,
playlistItem?.TranscodeReasons); playlistItem.TranscodeReasons);
} }
private static int GetDefaultAudioBitrate(string? audioCodec, int? audioChannels) private static int GetDefaultAudioBitrate(string? audioCodec, int? audioChannels)

View File

@ -361,7 +361,7 @@ namespace MediaBrowser.Providers.MediaInfo
blurayVideoStream.Codec = ffmpegVideoStream.Codec; blurayVideoStream.Codec = ffmpegVideoStream.Codec;
blurayVideoStream.BitRate = blurayVideoStream.BitRate.GetValueOrDefault() == 0 ? ffmpegVideoStream.BitRate : blurayVideoStream.BitRate; blurayVideoStream.BitRate = blurayVideoStream.BitRate.GetValueOrDefault() == 0 ? ffmpegVideoStream.BitRate : blurayVideoStream.BitRate;
blurayVideoStream.Width = blurayVideoStream.Width.GetValueOrDefault() == 0 ? ffmpegVideoStream.Width : blurayVideoStream.Width; blurayVideoStream.Width = blurayVideoStream.Width.GetValueOrDefault() == 0 ? ffmpegVideoStream.Width : blurayVideoStream.Width;
blurayVideoStream.Height = blurayVideoStream.Height.GetValueOrDefault() == 0 ? ffmpegVideoStream.Width : blurayVideoStream.Height; blurayVideoStream.Height = blurayVideoStream.Height.GetValueOrDefault() == 0 ? ffmpegVideoStream.Height : blurayVideoStream.Height;
blurayVideoStream.ColorRange = ffmpegVideoStream.ColorRange; blurayVideoStream.ColorRange = ffmpegVideoStream.ColorRange;
blurayVideoStream.ColorSpace = ffmpegVideoStream.ColorSpace; blurayVideoStream.ColorSpace = ffmpegVideoStream.ColorSpace;
blurayVideoStream.ColorTransfer = ffmpegVideoStream.ColorTransfer; blurayVideoStream.ColorTransfer = ffmpegVideoStream.ColorTransfer;

View File

@ -124,22 +124,7 @@ namespace Jellyfin.LiveTv.IO
private string GetCommandLineArgs(MediaSourceInfo mediaSource, string inputTempFile, string targetFile) private string GetCommandLineArgs(MediaSourceInfo mediaSource, string inputTempFile, string targetFile)
{ {
string videoArgs; string videoArgs = "-codec:v:0 copy -fflags +genpts";
if (EncodeVideo(mediaSource))
{
const int MaxBitrate = 25000000;
videoArgs = string.Format(
CultureInfo.InvariantCulture,
"-codec:v:0 libx264 -force_key_frames \"expr:gte(t,n_forced*5)\" {0} -pix_fmt yuv420p -preset superfast -crf 23 -b:v {1} -maxrate {1} -bufsize ({1}*2) -profile:v high -level 41",
GetOutputSizeParam(),
MaxBitrate);
}
else
{
videoArgs = "-codec:v:0 copy";
}
videoArgs += " -fflags +genpts";
var flags = new List<string>(); var flags = new List<string>();
if (mediaSource.IgnoreDts) if (mediaSource.IgnoreDts)
@ -205,19 +190,6 @@ namespace Jellyfin.LiveTv.IO
private static string GetAudioArgs(MediaSourceInfo mediaSource) private static string GetAudioArgs(MediaSourceInfo mediaSource)
{ {
return "-codec:a:0 copy"; return "-codec:a:0 copy";
// var audioChannels = 2;
// var audioStream = mediaStreams.FirstOrDefault(i => i.Type == MediaStreamType.Audio);
// if (audioStream is not null)
// {
// audioChannels = audioStream.Channels ?? audioChannels;
// }
// return "-codec:a:0 aac -strict experimental -ab 320000";
}
private static bool EncodeVideo(MediaSourceInfo mediaSource)
{
return false;
} }
protected string GetOutputSizeParam() protected string GetOutputSizeParam()