(frameRateStr: string | undefined)
| 236 | } |
| 237 | |
| 238 | function parseFrameRate(frameRateStr: string | undefined): number { |
| 239 | if (!frameRateStr) return 0; |
| 240 | const parts = frameRateStr.split("/"); |
| 241 | if (parts.length === 2) { |
| 242 | const num = parseFloat(parts[0] ?? ""); |
| 243 | const den = parseFloat(parts[1] ?? ""); |
| 244 | if (den !== 0) return Math.round((num / den) * 100) / 100; |
| 245 | } |
| 246 | return parseFloat(frameRateStr) || 0; |
| 247 | } |
| 248 | |
| 249 | /** |
| 250 | * Probe a media file (video, image, or container) and return normalized metadata. |
no outgoing calls
no test coverage detected