<html><head></head><body><span class="viv-signature"></span>On Tuesday 01 November 2022 14:11:05 (+01:00), Nicolas Dufresne wrote:<br><br>> Le mardi 01 novembre 2022 à 10:13 +0000, Michiel Konstapel via gstreamer-devel a<br>> écrit :<br>> > Forgive me for ranting.... These undocumented and<br>> > unimplemented methods/properties make me worry: am I just looking for ghosts?<br>> > Does this all Just Work for everyone and should I just leave things at the<br>> > defaults and move on? Many elements expose properties that seem like they<br>> > involve important tradeoffs to make given a specific use case, but then give<br>> > no information on what the various options do and especially *why/when* you<br>> > would want them. Although they seem important, they are hardly mentioned on<br>> > the mailing list. Source diving sometimes turns up some code or comments, or<br>> > sometimes it just turns out that the exposed knob doesn't even do anything :-/<br>> > Does this mean I have ventured into an area where I'm not supposed to be, or<br>> > is this legitimately missing functionality/documentation?<br>> > <br>> > Not saying that I don't hugely appreciate all the work that's gone into<br>> > gstreamer, and I love hacking on this stuff, but boy does it get frustrating<br>> > at times!<br>> <br>> I believe commercial implementation, were this strongly matter will change a HW<br>> PLL to adjust the HW clock to their system/network clock. This should happen in<br>> combination of slave-method=none on the source and slave-method=custom on the<br>> sink. Be aware that I have never implemented such an advanced solution myself.<br>> <br>> The alternative would be dynamic software resampling, see slave-method=resample<br>> in alsasink, but this has been broken for age, and we don't have anyone working<br>> on it. Audio servers like PipeWire and PulseAudio might already handle this<br>> transparently, that might explain why only alsasrc/sink users reports this.<div><br></div><div><span class="viv-signature-below"><br></span></div><div><span class="viv-signature-below">Thanks Nicolas!</span></div><div><span class="viv-signature-below"><br></span></div><div><span class="viv-signature-below">Since we're not playing back the audio locally but only streaming it over the network, there are no audio sinks involved. We have multiple sources streaming to a central mixer, so I think it's up to each individual source to sync its audio samples to the NTP system time. </span>We are using <a href="https://rode.com/en/microphones/wireless/wirelessgoii">wireless USB microphones</a> which don't appear to have any controls for finetuning their sampling rates.</div><div><span class="viv-signature-below"><br></span></div><div><span class="viv-signature-below">Does someone on the list have a</span>ny advice on how to approach this? Should we be using pulsesrc instead of alsasrc? Are there any existing elements that will do the software resampling? I found https://gstreamer-devel.narkive.com/oUoa2zeg/asynchrounous-audio-sample-rate-conversion-with-gstreamer but the thread ends just as it gets interesting ;-)</div><div><br></div><div>Down-the-rabbit-holingly yours,</div><div>Michiel</div></body></html>