Add robust parsing for force_fps field to handle non-numeric values in video metadata

This commit is contained in:
2026-05-31 21:02:37 -04:00
parent 567af452f1
commit 5bf1b5caae
+13 -2
View File
@@ -127,9 +127,20 @@ try {
$fieldExists = $parsedComment.PSObject.Properties.Name -contains 'force_fps' $fieldExists = $parsedComment.PSObject.Properties.Name -contains 'force_fps'
if ($fieldExists) { if ($fieldExists) {
$fps = [double]$parsedComment.force_fps # force_fps may be a number (e.g. 30) or a non-numeric mode string
# (e.g. "control" in some WanGP/LTX presets). Only override the
# default when the value parses as a positive number.
$forceFpsRaw = $parsedComment.force_fps
$parsedFps = 0.0
if ([double]::TryParse(
[string]$forceFpsRaw,
[System.Globalization.NumberStyles]::Float,
[System.Globalization.CultureInfo]::InvariantCulture,
[ref]$parsedFps) -and $parsedFps -gt 0) {
$fps = $parsedFps
}
} }
$frames = [int]$fieldValue $frames = [int]$fieldValue
$secondsAt24fps = [Math]::Round($frames / $fps, 1) $secondsAt24fps = [Math]::Round($frames / $fps, 1)
$valueDisplay = ('{0} frames ({1}s, {2} fps)' -f $frames, $secondsAt24fps, $fps) $valueDisplay = ('{0} frames ({1}s, {2} fps)' -f $frames, $secondsAt24fps, $fps)