2,065 karma · joined July 20, 2008
I don't want to get stuck on lowest common denominator WebRTC, that pales in comparison with a native application like Zoom.
https://blogs.gnome.org/rbultje/2017/07/14/writing-x86-simd-...
In practice this clock is generated via the PC clock so it isn't the same clock at all: https://chromium.googlesource.com/external/webrtc/+/lkgr/mod...
RTCP SRs are sent quite rarely (defaulting to 1s for video, 5s for audio) so quite poor for precise clock recovery required in professional applications.
Probably practical implementations just use buffer fullness to drive their resampler.
>I have had no problems with measuring NTP drift. As the clocks change I would measure.
Did you read the article? NTP is not the same as the video/audio clock which is what you need to care about. I have to now take a drink even though it's 5am here in Singapore.
> Common Clock for Audio and Video
No idea what sequence numbers have to do with clocks here. Maybe you mean a mapping of absolute time to relative time in RTCP? If the RTCP SR value for absolute time is using NTP (or any other wrong clock as it's not mandated to match audio/video clock), then it's by definition impossible to know how to sync audio and video after several wraparounds of each RTP timestamp.
> WebRTC provides playoutDelay.
This is not the same as a defined, video frame or audio sample accurate delay (ten milliseconds as a unit...) to allow for variations in frame size to maximise quality. It also appears to mix up network delays vs VBV delays. They are separate delays and are handled at different layers of the stack.
> You can transport anything you want via RTP or DataChannels
None of this is standardised and therefore requires control of both ends. Also high end applications need Uncompressed Audio and for the above RTP timestamp reasons this can't be precisely synced with video.
Also Linus' ARM rant for good measure: https://lkml.org/lkml/2012/7/15/133
And imagine the stuff they didn't upstream...I'm sure that's part of some magic SDK that only works on one version of glibc and kernel.
Completely incomparable to web, enterprise and mobile (android and co is a part of the embedded trashfire of course). They all have their problems but are minor league compared to embedded development hell.
Embedded development takes BoM reduction to the extreme and piles all the technical debt onto software.
The crux of the post is simple and obvious to anyone who's ever actually developed "low-level" (used loosely) video libraries. Microservices are not suited for video because exchange of video between microservices is substantially more costly than bits of JSON.
https://blogs.gnome.org/rbultje/2017/07/14/writing-x86-simd-...
I can't speak for Windows and Mac but in ALSA this isn't possible.
So for AES67 receive, in principle no as PTP stack exists for RPI yet. You could cheat like the majority of manufacturers do and just play the audio as it arrives instead of using the timestamps. You'd also need a way of drifting the audio out clock to match the frequency of the PTP clock. If you didn't care about bitexact audio, you can resample, though ALSAs clock measurement kind of sucks.