Browse Source

Keep 60 fps downsampling away from half-period ties

master
evgeny 4 days ago
parent
commit
fe2ccb07e1
  1. 4
      tools/chatgui/src/call_video_cadence.h

4
tools/chatgui/src/call_video_cadence.h

@ -1,7 +1,7 @@
#pragma once
#include <cstdint>
// Сетка 30 fps с допуском половины периода: дрожание PTS не превращает 30 fps в 15.
// Сетка 30 fps с допуском четверти периода: дрожание PTS не превращает 30 fps в 15.
class CallVideoCadence {
int64_t origin = -1, lastSlot = -1;
public:
@ -9,7 +9,7 @@ public:
if (origin < 0) origin = pts;
if (pts < origin) return false;
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;
lastSlot = slot;
return true;

Loading…
Cancel
Save