mirror of
https://github.com/immich-app/immich
synced 2026-08-22 13:13:05 +00:00
probePackets() accumulates raw ffprobe packet values in time_base units without normalization. When time_base has a large denominator (e.g. nanosecond 1/1e9 from IP cameras) or when PTS values use the MPEG-TS absolute clock (~5.5e9 at 90kHz), the accumulated values overflow int32 columns in asset_keyframe (totalDuration, pts, accDuration, ownDuration), causing PostgresError during AssetExtractMetadata. Two normalization strategies applied: 1. Subtract first PTS from all packets (handles MPEG-TS absolute PTS clock that starts at ~5.5e9 regardless of clip length) 2. Rescale all values when timeBase > 90000 (handles nanosecond time_base where any clip > 2.1s overflows int32) The rescaled timeBase is returned in VideoPacketInfo and used for asset_video.timeBase, preserving the fps ratio used by HLS. Fixes #29600 |
||
|---|---|---|
| .. | ||
| bin | ||
| src | ||
| test | ||
| .gitignore | ||
| .npmignore | ||
| .prettierignore | ||
| .prettierrc | ||
| Dockerfile | ||
| Dockerfile.dev | ||
| eslint.config.mjs | ||
| helmet.json | ||
| mise.toml | ||
| nest-cli.json | ||
| package.json | ||
| tsconfig.build.json | ||
| tsconfig.json | ||