timestampNTP_RTC_u64 doesn't set first 32 bits of timestamp
The second last line of timestampNTP_RTC_u64 reads:
t |= (70LL * 365 + 17) * 24 * 60 * 60 + ts.tv_sec;
Instead of:
t |= (70LL * 365 + 17) * 24 * 60 * 60 + ts.tv_sec << 32;
This leaves the data intended for the first 32 bits in the last 32 bits and no data in the first 32 bits. I'm quite new to this field so this may be intentional for reasons I do not understand, but it seems to result in NTP timestamps sent in RTCP packets that do not give the correct time.