Add robust parsing for force_fps field to handle non-numeric values in video metadata
This commit is contained in:
+13
-2
@@ -127,9 +127,20 @@ try {
|
||||
$fieldExists = $parsedComment.PSObject.Properties.Name -contains 'force_fps'
|
||||
|
||||
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
|
||||
$secondsAt24fps = [Math]::Round($frames / $fps, 1)
|
||||
$valueDisplay = ('{0} frames ({1}s, {2} fps)' -f $frames, $secondsAt24fps, $fps)
|
||||
|
||||
Reference in New Issue
Block a user