23 lines
1.3 KiB
C
23 lines
1.3 KiB
C
/* Снимок часов входящего аудио. PTS принадлежит шкале захвата удалённой стороны.
|
|
* epoch — локальная эпоха устройства; source_epoch — поколение удалённого encoder.
|
|
* valid=0 запрещает продвижение видео по этому снимку. measured отличает аппаратную
|
|
* отметку от оценки backend. Тишина устройства/тоны удерживают PTS, remote mute — нет. */
|
|
#ifndef CALL_CLOCK_H
|
|
#define CALL_CLOCK_H
|
|
#include <stdint.h>
|
|
/* pts_us — первый захваченный сэмпл; INT64_MIN означает отсутствие метки.
|
|
* delay_samples — задержка Opus от encoder. epoch меняется при разрыве захвата. */
|
|
struct call_capture_time {
|
|
int64_t pts_us;
|
|
uint64_t epoch;
|
|
uint32_t delay_samples;
|
|
};
|
|
struct call_clock_snapshot {
|
|
uint64_t epoch, source_epoch, played_samples, written_samples;
|
|
int64_t pts_us;
|
|
uint32_t held_back_us;
|
|
uint32_t rate_ppm; // Фактический шаг source PTS в текущем PCM-участке; 1000000 = 1x, 0 = удержание.
|
|
int valid, measured;
|
|
};
|
|
#endif
|