fix: correct anamorphic video detection (#14640) (#14648)
Some checks failed
Stale PR Check / Check PRs with merge conflicts (push) Has been cancelled
Stale Issue Labeler / Check for stale issues (push) Has been cancelled
CodeQL / Analyze (csharp) (push) Has been cancelled
Merge Conflict Labeler / Labeling (push) Has been cancelled
OpenAPI / OpenAPI - HEAD (push) Has been cancelled
OpenAPI / OpenAPI - BASE (push) Has been cancelled
Tests / run-tests (macos-latest) (push) Has been cancelled
Tests / run-tests (ubuntu-latest) (push) Has been cancelled
Tests / run-tests (windows-latest) (push) Has been cancelled
Project Automation / Project board (push) Has been cancelled
OpenAPI / OpenAPI - Difference (push) Has been cancelled
OpenAPI / OpenAPI - Publish Unstable Spec (push) Has been cancelled
OpenAPI / OpenAPI - Publish Stable Spec (push) Has been cancelled

This commit is contained in:
Gene
2025-08-15 20:52:43 -04:00
committed by GitHub
parent 9eaca73888
commit 28b8d3ee29
2 changed files with 30 additions and 5 deletions

View File

@@ -850,12 +850,36 @@ namespace MediaBrowser.MediaEncoding.Probing
}
}
// stream.IsAnamorphic = string.Equals(streamInfo.sample_aspect_ratio, "0:1", StringComparison.OrdinalIgnoreCase) ||
// string.Equals(stream.AspectRatio, "2.35:1", StringComparison.OrdinalIgnoreCase) ||
// string.Equals(stream.AspectRatio, "2.40:1", StringComparison.OrdinalIgnoreCase);
// http://stackoverflow.com/questions/17353387/how-to-detect-anamorphic-video-with-ffprobe
stream.IsAnamorphic = string.Equals(streamInfo.SampleAspectRatio, "0:1", StringComparison.OrdinalIgnoreCase);
if (string.Equals(streamInfo.SampleAspectRatio, "1:1", StringComparison.OrdinalIgnoreCase))
{
stream.IsAnamorphic = false;
}
else if (!string.Equals(streamInfo.SampleAspectRatio, "0:1", StringComparison.OrdinalIgnoreCase))
{
stream.IsAnamorphic = true;
}
else if (string.Equals(streamInfo.DisplayAspectRatio, "0:1", StringComparison.OrdinalIgnoreCase))
{
stream.IsAnamorphic = false;
}
else if (!string.Equals(
streamInfo.DisplayAspectRatio,
// Force GetAspectRatio() to derive ratio from Width/Height directly by using null DAR
GetAspectRatio(new MediaStreamInfo
{
Width = streamInfo.Width,
Height = streamInfo.Height,
DisplayAspectRatio = null
}),
StringComparison.OrdinalIgnoreCase))
{
stream.IsAnamorphic = true;
}
else
{
stream.IsAnamorphic = false;
}
if (streamInfo.Refs > 0)
{