Maik Scholz
2016-04-29 19:11:49 UTC
Hi,
in some use cases (broadcast digital radio or IP radio), the transmitter
is sending an audio stream with a nominal sampling rate (e.g. 48kHz).
When a receiver, expecting 48KHz, wants to play these samples on a local
sound sink, then there is always the problem,
that the transmitter clock slightly differs from the receiver clock.
For that issue, I need an asynchronous sampling rate converter!
Is this possible the available gstreamer plugins?
Do audioresample support asynchronous clocks?
_My example:_
My Transmitter (sending samples with *(48-1)*kHz):
gst-launch-0.10 audiotestsrc freq=300 ! audio/x-raw-int,
endianness="(int)1234", signed="(boolean)true", width="(int)16",
depth="(int)16", rate="(int)*47*000", channels="(int)1" ! tcpclientsink
host=localhost port=3000
My Receiver: (Expeting 48kHz)
gst-launch-0.10 tcpserversrc host=localhost port=3000 ! audio/x-raw-int,
endianness="(int)1234", signed="(boolean)true", width="(int)16",
depth="(int)16", rate="(int)48000", channels="(int)1" ! audioconvert !
audioresample ! audio/x-raw-int, endianness="(int)1234",
signed="(boolean)true", width="(int)16", depth="(int)16",
rate="(int)48000", channels="(int)1" ! autoaudiosink
Because the transmitter clock (47kHz) differs from the receiver clock
(48kHz), the sound drops over short time.
Thank you for any hint in advance.
Maik
in some use cases (broadcast digital radio or IP radio), the transmitter
is sending an audio stream with a nominal sampling rate (e.g. 48kHz).
When a receiver, expecting 48KHz, wants to play these samples on a local
sound sink, then there is always the problem,
that the transmitter clock slightly differs from the receiver clock.
For that issue, I need an asynchronous sampling rate converter!
Is this possible the available gstreamer plugins?
Do audioresample support asynchronous clocks?
_My example:_
My Transmitter (sending samples with *(48-1)*kHz):
gst-launch-0.10 audiotestsrc freq=300 ! audio/x-raw-int,
endianness="(int)1234", signed="(boolean)true", width="(int)16",
depth="(int)16", rate="(int)*47*000", channels="(int)1" ! tcpclientsink
host=localhost port=3000
My Receiver: (Expeting 48kHz)
gst-launch-0.10 tcpserversrc host=localhost port=3000 ! audio/x-raw-int,
endianness="(int)1234", signed="(boolean)true", width="(int)16",
depth="(int)16", rate="(int)48000", channels="(int)1" ! audioconvert !
audioresample ! audio/x-raw-int, endianness="(int)1234",
signed="(boolean)true", width="(int)16", depth="(int)16",
rate="(int)48000", channels="(int)1" ! autoaudiosink
Because the transmitter clock (47kHz) differs from the receiver clock
(48kHz), the sound drops over short time.
Thank you for any hint in advance.
Maik