aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding
diff options
context:
space:
mode:
authorChristopher Young <c.t.ythegamer@gmail.com>2025-11-08 07:31:02 -0700
committerChristopher Young <c.t.ythegamer@gmail.com>2025-11-08 07:31:02 -0700
commit4cb038574515590611af081b5fe341ff4cb840b2 (patch)
tree847f90cd0fd7db9b7845d0afafdabedd3ecf3b74 /MediaBrowser.MediaEncoding
parent438d992c8b0522f6a17f437ee991c8ef6808d749 (diff)
parent1adf441f1ca9d61c3d6c63df0ea87a870e03632f (diff)
Merge branch 'master' of https://github.com/JadedRain/jellyfin
Diffstat (limited to 'MediaBrowser.MediaEncoding')
-rw-r--r--MediaBrowser.MediaEncoding/Configuration/EncodingConfigurationStore.cs16
-rw-r--r--MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs10
-rw-r--r--MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs9
3 files changed, 32 insertions, 3 deletions
diff --git a/MediaBrowser.MediaEncoding/Configuration/EncodingConfigurationStore.cs b/MediaBrowser.MediaEncoding/Configuration/EncodingConfigurationStore.cs
index 2f158157e8..19c1de9f74 100644
--- a/MediaBrowser.MediaEncoding/Configuration/EncodingConfigurationStore.cs
+++ b/MediaBrowser.MediaEncoding/Configuration/EncodingConfigurationStore.cs
@@ -18,10 +18,16 @@ namespace MediaBrowser.MediaEncoding.Configuration
public void Validate(object oldConfig, object newConfig)
{
- var newPath = ((EncodingOptions)newConfig).TranscodingTempPath;
+ var oldEncodingOptions = (EncodingOptions)oldConfig;
+ var newEncodingOptions = (EncodingOptions)newConfig;
+
+ ArgumentNullException.ThrowIfNull(oldEncodingOptions, nameof(oldConfig));
+ ArgumentNullException.ThrowIfNull(newEncodingOptions, nameof(newConfig));
+
+ var newPath = newEncodingOptions.TranscodingTempPath;
if (!string.IsNullOrWhiteSpace(newPath)
- && !string.Equals(((EncodingOptions)oldConfig).TranscodingTempPath, newPath, StringComparison.Ordinal))
+ && !string.Equals(oldEncodingOptions.TranscodingTempPath, newPath, StringComparison.Ordinal))
{
// Validate
if (!Directory.Exists(newPath))
@@ -33,6 +39,12 @@ namespace MediaBrowser.MediaEncoding.Configuration
newPath));
}
}
+
+ if (!string.IsNullOrWhiteSpace(newEncodingOptions.EncoderAppPath)
+ && !string.Equals(oldEncodingOptions.EncoderAppPath, newEncodingOptions.EncoderAppPath, StringComparison.Ordinal))
+ {
+ throw new InvalidOperationException("Unable to update encoder app path.");
+ }
}
}
}
diff --git a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
index 8350d1613b..b7fef842b3 100644
--- a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
@@ -1122,7 +1122,15 @@ namespace MediaBrowser.MediaEncoding.Encoder
private void StartProcess(ProcessWrapper process)
{
process.Process.Start();
- process.Process.PriorityClass = ProcessPriorityClass.BelowNormal;
+
+ try
+ {
+ process.Process.PriorityClass = ProcessPriorityClass.BelowNormal;
+ }
+ catch (Exception ex)
+ {
+ _logger.LogWarning(ex, "Unable to set process priority to BelowNormal for {ProcessFileName}", process.Process.StartInfo.FileName);
+ }
lock (_runningProcessesLock)
{
diff --git a/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs b/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs
index 00a9ae797d..eb312029a1 100644
--- a/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs
+++ b/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs
@@ -930,6 +930,15 @@ namespace MediaBrowser.MediaEncoding.Probing
{
stream.Rotation = data.Rotation;
}
+
+ // Parse video frame cropping metadata from side_data
+ // TODO: save them and make HW filters to apply them in HWA pipelines
+ else if (string.Equals(data.SideDataType, "Frame Cropping", StringComparison.OrdinalIgnoreCase))
+ {
+ // Streams containing artificially added frame cropping
+ // metadata should not be marked as anamorphic.
+ stream.IsAnamorphic = false;
+ }
}
}