mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-07-09 07:10:34 +02:00
Use ? and ?? where applicable
This commit is contained in:
parent
6a3f9253db
commit
961f48f5bc
|
@ -258,7 +258,7 @@ namespace MediaBrowser.Api
|
|||
|
||||
public void ReportTranscodingProgress(TranscodingJob job, StreamState state, TimeSpan? transcodingPosition, float? framerate, double? percentComplete, long? bytesTranscoded, int? bitRate)
|
||||
{
|
||||
var ticks = transcodingPosition.HasValue ? transcodingPosition.Value.Ticks : (long?)null;
|
||||
var ticks = transcodingPosition?.Ticks;
|
||||
|
||||
if (job != null)
|
||||
{
|
||||
|
@ -561,10 +561,7 @@ namespace MediaBrowser.Api
|
|||
|
||||
lock (job.ProcessLock)
|
||||
{
|
||||
if (job.TranscodingThrottler != null)
|
||||
{
|
||||
job.TranscodingThrottler.Stop().GetAwaiter().GetResult();
|
||||
}
|
||||
job.TranscodingThrottler?.Stop().GetAwaiter().GetResult();
|
||||
|
||||
var process = job.Process;
|
||||
|
||||
|
|
|
@ -274,35 +274,25 @@ namespace MediaBrowser.Api
|
|||
private T GetItemFromSlugName<T>(ILibraryManager libraryManager, string name, DtoOptions dtoOptions)
|
||||
where T : BaseItem, new()
|
||||
{
|
||||
var result = libraryManager.GetItemList(new InternalItemsQuery
|
||||
var result = (libraryManager.GetItemList(new InternalItemsQuery
|
||||
{
|
||||
Name = name.Replace(BaseItem.SlugChar, '&'),
|
||||
IncludeItemTypes = new[] { typeof(T).Name },
|
||||
DtoOptions = dtoOptions
|
||||
|
||||
}).OfType<T>().FirstOrDefault();
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
result = libraryManager.GetItemList(new InternalItemsQuery
|
||||
}).OfType<T>().FirstOrDefault() ?? libraryManager.GetItemList(new InternalItemsQuery
|
||||
{
|
||||
Name = name.Replace(BaseItem.SlugChar, '/'),
|
||||
IncludeItemTypes = new[] { typeof(T).Name },
|
||||
DtoOptions = dtoOptions
|
||||
|
||||
}).OfType<T>().FirstOrDefault();
|
||||
}
|
||||
|
||||
if (result == null)
|
||||
{
|
||||
result = libraryManager.GetItemList(new InternalItemsQuery
|
||||
}).OfType<T>().FirstOrDefault()) ?? libraryManager.GetItemList(new InternalItemsQuery
|
||||
{
|
||||
Name = name.Replace(BaseItem.SlugChar, '?'),
|
||||
IncludeItemTypes = new[] { typeof(T).Name },
|
||||
DtoOptions = dtoOptions
|
||||
|
||||
}).OfType<T>().FirstOrDefault();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -391,7 +391,6 @@ namespace MediaBrowser.Api
|
|||
}
|
||||
|
||||
return (SeriesStatus)Enum.Parse(typeof(SeriesStatus), item.Status, true);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -327,15 +327,11 @@ namespace MediaBrowser.Api.Library
|
|||
|
||||
try
|
||||
{
|
||||
var mediaPath = request.PathInfo;
|
||||
|
||||
if (mediaPath == null)
|
||||
{
|
||||
mediaPath = new MediaPathInfo
|
||||
var mediaPath = request.PathInfo ?? new MediaPathInfo
|
||||
{
|
||||
Path = request.Path
|
||||
};
|
||||
}
|
||||
|
||||
_libraryManager.AddMediaPath(request.Name, mediaPath);
|
||||
}
|
||||
finally
|
||||
|
|
|
@ -248,14 +248,8 @@ namespace MediaBrowser.Api.Playback
|
|||
if (state.VideoRequest != null
|
||||
&& string.Equals(state.OutputVideoCodec, "copy", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
if (string.Equals(state.OutputAudioCodec, "copy", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
logFilePrefix = "ffmpeg-remux";
|
||||
}
|
||||
else
|
||||
{
|
||||
logFilePrefix = "ffmpeg-directstream";
|
||||
}
|
||||
logFilePrefix = string.Equals(state.OutputAudioCodec, "copy", StringComparison.OrdinalIgnoreCase)
|
||||
? "ffmpeg-remux" : "ffmpeg-directstream";
|
||||
}
|
||||
|
||||
var logFilePath = Path.Combine(ServerConfigurationManager.ApplicationPaths.LogDirectoryPath, logFilePrefix + "-" + Guid.NewGuid() + ".txt");
|
||||
|
@ -862,14 +856,7 @@ namespace MediaBrowser.Api.Playback
|
|||
{
|
||||
var caps = DeviceManager.GetCapabilities(state.Request.DeviceId);
|
||||
|
||||
if (caps != null)
|
||||
{
|
||||
state.DeviceProfile = caps.DeviceProfile;
|
||||
}
|
||||
else
|
||||
{
|
||||
state.DeviceProfile = DlnaManager.GetProfile(headers);
|
||||
}
|
||||
state.DeviceProfile = caps != null ? caps.DeviceProfile : DlnaManager.GetProfile(headers);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|||
|
||||
if (isLive)
|
||||
{
|
||||
job = job ?? ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlist, TranscodingJobType);
|
||||
job ??= ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlist, TranscodingJobType);
|
||||
|
||||
if (job != null)
|
||||
{
|
||||
|
@ -156,7 +156,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|||
|
||||
var playlistText = GetMasterPlaylistFileText(playlist, videoBitrate + audioBitrate, baselineStreamBitrate);
|
||||
|
||||
job = job ?? ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlist, TranscodingJobType);
|
||||
job ??= ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlist, TranscodingJobType);
|
||||
|
||||
if (job != null)
|
||||
{
|
||||
|
|
|
@ -284,7 +284,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|||
//}
|
||||
|
||||
Logger.LogDebug("returning {0} [general case]", segmentPath);
|
||||
job = job ?? ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlistPath, TranscodingJobType);
|
||||
job ??= ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlistPath, TranscodingJobType);
|
||||
return await GetSegmentResult(state, playlistPath, segmentPath, segmentExtension, requestedIndex, job, cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
|
@ -934,7 +934,7 @@ namespace MediaBrowser.Api.Playback.Hls
|
|||
|
||||
var framerate = state.VideoStream?.RealFrameRate;
|
||||
|
||||
if (framerate != null && framerate.HasValue)
|
||||
if (framerate.HasValue)
|
||||
{
|
||||
// This is to make sure keyframe interval is limited to our segment,
|
||||
// as forcing keyframes is not enough.
|
||||
|
|
|
@ -583,7 +583,7 @@ namespace MediaBrowser.Api.Playback
|
|||
private long? GetMaxBitrate(long? clientMaxBitrate, User user)
|
||||
{
|
||||
var maxBitrate = clientMaxBitrate;
|
||||
var remoteClientMaxBitrate = user == null ? 0 : user.Policy.RemoteClientBitrateLimit;
|
||||
var remoteClientMaxBitrate = user?.Policy.RemoteClientBitrateLimit ?? 0;
|
||||
|
||||
if (remoteClientMaxBitrate <= 0)
|
||||
{
|
||||
|
|
|
@ -167,7 +167,7 @@ namespace MediaBrowser.Api.Playback
|
|||
AudioCodec = request.AudioCodec,
|
||||
Protocol = request.TranscodingProtocol,
|
||||
BreakOnNonKeyFrames = request.BreakOnNonKeyFrames,
|
||||
MaxAudioChannels = request.TranscodingAudioChannels.HasValue ? request.TranscodingAudioChannels.Value.ToString(CultureInfo.InvariantCulture) : null
|
||||
MaxAudioChannels = request.TranscodingAudioChannels?.ToString(CultureInfo.InvariantCulture)
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -279,7 +279,7 @@ namespace MediaBrowser.Api
|
|||
if (!item.ChannelId.Equals(Guid.Empty))
|
||||
{
|
||||
var channel = _libraryManager.GetItemById(item.ChannelId);
|
||||
result.ChannelName = channel == null ? null : channel.Name;
|
||||
result.ChannelName = channel?.Name;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -316,12 +316,8 @@ namespace MediaBrowser.Api
|
|||
|
||||
private void SetBackdropImageInfo(SearchHint hint, BaseItem item)
|
||||
{
|
||||
var itemWithImage = item.HasImage(ImageType.Backdrop) ? item : null;
|
||||
|
||||
if (itemWithImage == null)
|
||||
{
|
||||
itemWithImage = GetParentWithImage<BaseItem>(item, ImageType.Backdrop);
|
||||
}
|
||||
var itemWithImage = (item.HasImage(ImageType.Backdrop) ? item : null)
|
||||
?? GetParentWithImage<BaseItem>(item, ImageType.Backdrop);
|
||||
|
||||
if (itemWithImage != null)
|
||||
{
|
||||
|
|
|
@ -92,10 +92,7 @@ namespace MediaBrowser.Api
|
|||
{
|
||||
lock (_timerLock)
|
||||
{
|
||||
if (KillTimer != null)
|
||||
{
|
||||
KillTimer.Change(Timeout.Infinite, Timeout.Infinite);
|
||||
}
|
||||
KillTimer?.Change(Timeout.Infinite, Timeout.Infinite);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -442,14 +442,7 @@ namespace MediaBrowser.Api
|
|||
|
||||
var season = series.GetSeasons(user, dtoOptions).FirstOrDefault(i => i.IndexNumber == request.Season.Value);
|
||||
|
||||
if (season == null)
|
||||
{
|
||||
episodes = new List<BaseItem>();
|
||||
}
|
||||
else
|
||||
{
|
||||
episodes = ((Season)season).GetEpisodes(user, dtoOptions);
|
||||
}
|
||||
episodes = season == null ? new List<BaseItem>() : ((Season)season).GetEpisodes(user, dtoOptions);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -138,32 +138,17 @@ namespace MediaBrowser.Api
|
|||
var videosWithVersions = items.Where(i => i.MediaSourceCount > 1)
|
||||
.ToList();
|
||||
|
||||
var primaryVersion = videosWithVersions.FirstOrDefault();
|
||||
|
||||
if (primaryVersion == null)
|
||||
var primaryVersion = videosWithVersions.FirstOrDefault() ?? items.OrderBy(i =>
|
||||
{
|
||||
primaryVersion = items.OrderBy(i =>
|
||||
{
|
||||
if (i.Video3DFormat.HasValue)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (i.VideoType != Model.Entities.VideoType.VideoFile)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return (i.Video3DFormat.HasValue || i.VideoType != Model.Entities.VideoType.VideoFile) ? 1 : 0;
|
||||
})
|
||||
.ThenByDescending(i =>
|
||||
{
|
||||
var stream = i.GetDefaultVideoStream();
|
||||
|
||||
return stream == null || stream.Width == null ? 0 : stream.Width.Value;
|
||||
return stream?.Width ?? 0;
|
||||
|
||||
}).First();
|
||||
}
|
||||
|
||||
var list = primaryVersion.LinkedAlternateVersions.ToList();
|
||||
|
||||
|
|
Loading…
Reference in a new issue