Jonathan Thomas
d70e80eac4
Harden playback/cache path for malformed media and concurrent timeline updates
- Invalidate timeline cache on ApplyJsonDiff() clip insert (remove affected frame range).
- Add lock in Timeline::ClearAllCache() for safe concurrent access.
- Make VideoCacheThread cross-thread state safe (atomics + seek-state mutex).
- Lock CacheMemory::Contains() to avoid races.
- Handle malformed audio streams in FFmpegReader by disabling invalid audio and continuing video-only.
- Add FPS/timebase safety fallbacks in FFmpeg frame/PTS math.
- Guard Frame::GetSamplesPerFrame() against invalid inputs.
- Add/adjust regression tests for cache invalidation and invalid rate handling.
2026-02-11 20:11:47 -06:00
..
2023-05-25 15:22:01 -05:00
2025-12-15 23:34:48 -06:00
2026-02-11 20:11:47 -06:00
2025-08-11 23:35:09 -05:00
2021-11-09 06:22:25 -05:00
2021-11-09 06:22:25 -05:00
2022-12-19 13:15:43 -06:00
2022-12-19 13:15:43 -06:00
2023-02-27 22:11:13 -06:00
2024-12-09 15:15:12 -06:00
2022-01-31 15:18:07 -06:00
2023-03-10 01:15:14 -06:00
2023-02-27 22:11:13 -06:00
2025-11-24 18:33:25 -06:00
2025-11-24 18:33:25 -06:00
2025-05-30 16:53:16 -05:00
2025-06-03 09:24:16 -05:00
2025-12-16 18:23:57 -06:00
2025-06-03 09:24:16 -05:00
2026-02-11 20:11:47 -06:00
2026-02-06 23:11:00 -06:00
2021-11-09 06:22:25 -05:00
2025-12-16 18:23:57 -06:00
2021-11-09 06:22:25 -05:00
2025-12-16 18:23:57 -06:00
2021-10-16 01:26:26 -04:00
2025-12-16 18:23:57 -06:00
2025-10-11 16:29:11 -05:00
2022-10-22 22:55:40 -05:00
2025-08-11 14:52:24 -05:00
2022-06-21 11:30:30 -05:00
2021-10-16 01:26:26 -04:00
2025-12-15 23:34:48 -06:00
2021-10-27 01:38:22 -04:00
2021-10-27 01:38:22 -04:00
2021-10-16 01:26:26 -04:00
2021-10-16 01:26:26 -04:00
2021-11-09 06:22:25 -05:00
2021-10-16 01:26:26 -04:00
2021-11-09 06:22:25 -05:00
2021-10-17 23:31:02 -04:00
2021-11-09 06:22:25 -05:00
2021-10-17 23:31:02 -04:00
2025-07-08 00:21:57 -05:00
2025-06-15 16:01:17 -05:00
2022-03-02 16:24:09 -06:00
2022-03-02 16:24:09 -06:00
2023-05-25 16:10:57 -05:00
2023-05-24 17:27:03 -05:00
2025-09-10 22:44:30 -05:00
2021-11-09 06:22:25 -05:00
2025-09-10 22:44:30 -05:00
2025-12-08 17:07:21 -06:00
2021-11-11 07:19:06 -05:00
2026-02-11 20:11:47 -06:00
2026-02-10 12:02:07 -06:00
2025-06-04 20:45:19 -05:00
2025-12-16 18:23:57 -06:00
2025-06-05 19:38:15 -05:00
2023-05-01 15:41:44 -05:00
2021-10-31 07:51:33 -04:00
2026-02-11 20:11:47 -06:00
2025-10-11 13:43:15 -05:00
2026-02-09 22:10:32 -06:00
2025-10-11 13:43:15 -05:00
2025-08-11 14:52:24 -05:00
2025-12-08 18:33:23 -06:00
2021-11-02 12:58:45 -04:00
2021-11-10 23:33:27 -05:00
2021-11-02 12:58:45 -04:00
2021-10-16 01:26:26 -04:00
2021-10-16 01:26:26 -04:00
2025-09-26 18:35:29 -05:00
2023-02-27 22:11:13 -06:00
2021-11-02 12:58:45 -04:00
2021-11-02 12:58:45 -04:00
2026-02-06 23:11:00 -06:00
2026-02-06 23:11:00 -06:00
2021-10-17 23:31:02 -04:00
2021-10-16 01:26:26 -04:00
2025-06-06 15:28:28 -05:00
2023-02-27 22:11:13 -06:00
2021-10-16 01:26:26 -04:00
2025-05-30 16:53:16 -05:00
2021-10-16 01:26:26 -04:00
2021-10-16 01:26:26 -04:00
2021-10-16 01:26:26 -04:00
2021-10-16 01:26:26 -04:00
2021-10-17 23:31:02 -04:00
2025-05-30 17:23:48 -05:00
2025-05-30 17:23:48 -05:00
2023-05-07 16:35:26 +10:00
2021-10-16 01:26:26 -04:00
2025-12-15 23:34:48 -06:00
2021-11-09 06:22:25 -05:00
2022-12-19 13:15:43 -06:00
2022-12-19 13:15:43 -06:00
2023-05-07 16:35:26 +10:00
2021-11-09 06:22:25 -05:00
2025-06-04 22:42:34 -05:00
2025-05-30 16:22:42 -05:00
2025-10-11 16:29:11 -05:00
2021-10-16 01:26:26 -04:00
2021-10-16 01:26:26 -04:00
2025-06-06 15:26:40 -05:00
2026-02-09 22:10:32 -06:00
2021-10-17 23:31:02 -04:00
2021-11-02 12:58:45 -04:00
2021-11-02 12:58:45 -04:00
2026-02-11 20:11:47 -06:00
2025-12-14 23:53:36 -06:00
2021-10-24 02:19:19 -04:00
2023-05-24 17:12:15 -05:00
2024-02-26 16:45:30 -06:00
2024-03-05 10:41:06 -06:00
2024-03-05 10:41:06 -06:00
2024-03-01 16:47:52 -06:00
2021-10-17 23:31:02 -04:00
2025-12-16 18:23:57 -06:00
2021-11-09 06:22:25 -05:00
2022-12-19 13:15:43 -06:00
2021-11-09 06:22:25 -05:00