Clamp to positive value when computing latency for an output stream

Diagnosed by jolin@mozilla.com, the same code is also found in Chromium.
This commit is contained in:
Paul Adenot 2024-05-22 15:08:36 +02:00
Родитель b692d65069
Коммит d60b441123
1 изменённых файлов: 3 добавлений и 2 удалений

Просмотреть файл

@ -646,8 +646,9 @@ aaudio_get_latency(cubeb_stream * stm, aaudio_direction_t direction,
// For an output stream, the latency is positive, for an input stream, it's
// negative. It can happen in some instances, e.g. around start of the stream
// that the latency for output is negative, return 0 in this case.
int64_t latency_ns = is_output ? std::max(0ll, app_frame_hw_time - signed_tstamp_ns)
: signed_tstamp_ns - app_frame_hw_time;
int64_t latency_ns = is_output
? std::max(0ll, app_frame_hw_time - signed_tstamp_ns)
: signed_tstamp_ns - app_frame_hw_time;
int64_t latency_frames = stm->sample_rate * latency_ns / NS_PER_S;
LOGV("Latency in frames (%s): %d (%dms)", is_output ? "output" : "input",