#include "screencast/utils/clock.h" #include #include int main () { assert ( sc::rtp_timestamp_from_ns ( 0 ) == 0u ); assert ( sc::rtp_timestamp_from_ns ( 1'000'000'000ULL ) == 90'000u ); assert ( sc::rtp_timestamp_from_ns ( 500'000'000ULL ) == 45'000u ); assert ( sc::rtp_timestamp_from_ns ( 16'666'667ULL ) == 1'500u ); // A multiple of the wrap period should wrap back to zero. // Period in ns = ceil(2^32 * 100_000 / 9) because the helper uses // integer floor division (ns * 9 / 100_000). constexpr uint64_t period_ns = ( ( 1ULL << 32 ) * 100'000ULL + 9ULL - 1ULL ) / 9ULL; static_assert ( sc::rtp_timestamp_from_ns ( period_ns ) == 0u ); static_assert ( sc::rtp_timestamp_from_ns ( period_ns + 1'000'000'000ULL ) == 90'000u ); return 0; }