Keep 60 fps downsampling away from half-period ties

This commit is contained in:
evgeny committed 2026-10-15 02:05:29 +02:00
1 parent ee9af6533d
commit fe2ccb07e1
1 file changed
+2 -2
+2 -2
View File
@@ -1,7 +1,7 @@
#pragma once #pragma once
#include <cstdint> #include <cstdint>
// Сетка 30 fps с допуском половины периода: дрожание PTS не превращает 30 fps в 15. // Сетка 30 fps с допуском четверти периода: дрожание PTS не превращает 30 fps в 15.
class CallVideoCadence { class CallVideoCadence {
int64_t origin = -1, lastSlot = -1; int64_t origin = -1, lastSlot = -1;
public: public:
@@ -9,7 +9,7 @@ public:
if (origin < 0) origin = pts; if (origin < 0) origin = pts;
if (pts < origin) return false; if (pts < origin) return false;
const int64_t elapsed = pts - origin; const int64_t elapsed = pts - origin;
const int64_t slot = (elapsed / 1000000) * 30 + ((elapsed % 1000000) * 30 + 500000) / 1000000; const int64_t slot = (elapsed / 1000000) * 30 + ((elapsed % 1000000) * 30 + 250000) / 1000000;
if (slot <= lastSlot) return false; if (slot <= lastSlot) return false;
lastSlot = slot; lastSlot = slot;
return true; return true;