[alsa-devel] Use of snd_pcm_format_set_silence
Hello,
I have an application where in I need to silence the first few samples of the buffer that is read from snd_pcm_readi(). In order to do this, I call the snd_pcm_format_set_silence() providing the same buffer that the snd_pcm_readi() reads to.
1) By doing this, is there going to be a timing delay due to the use of snd_pcm_format_set_silence()? 2) Is snd_pcm_format_set_silence() the correct function to achieve this goal or are there better methods? Please do let me know.
Thank you, Ankhit
Ankhit Vivekananda wrote:
I have an application where in I need to silence the first few samples of the buffer that is read from snd_pcm_readi(). In order to do this, I call the snd_pcm_format_set_silence() providing the same buffer that the snd_pcm_readi() reads to.
- By doing this, is there going to be a timing delay due to the use of
snd_pcm_format_set_silence()?
That function just modifies memory; it does not affect any PCM device.
- Is snd_pcm_format_set_silence() the correct function to achieve this
goal or are there better methods?
You already know your sample format; memset(0) might be simpler.
Regards, Clemens
Hello Clemens,
Thanks for your response. Just to clarify, the snd_pcm_format_set_silence() would simply *replace* the actual buffer read from snd_pcm_readi() to zeros(since my application is using signed 32 bit little endian format). There would be no delay induced in doing so. Correct?
Regards, Ankhit
On Wed, Jan 20, 2016 at 3:56 PM, Clemens Ladisch clemens@ladisch.de wrote:
Ankhit Vivekananda wrote:
I have an application where in I need to silence the first few samples of the buffer that is read from snd_pcm_readi(). In order to do this, I call the snd_pcm_format_set_silence() providing the same buffer that the snd_pcm_readi() reads to.
- By doing this, is there going to be a timing delay due to the use of
snd_pcm_format_set_silence()?
That function just modifies memory; it does not affect any PCM device.
- Is snd_pcm_format_set_silence() the correct function to achieve this
goal or are there better methods?
You already know your sample format; memset(0) might be simpler.
Regards, Clemens
Ankhit Vivekananda wrote:
the snd_pcm_format_set_silence() would simply /replace/ the actual buffer read from snd_pcm_readi() to zeros(since my application is using signed 32 bit little endian format).
Yes.
There would be no delay induced in doing so.
Yes; this function does not block.
Regards, Clemens
Hello Clemens,
Thank you very much for the confirmation.
Regards, Ankhit
On Thu, Jan 21, 2016 at 1:43 AM, Clemens Ladisch clemens@ladisch.de wrote:
Ankhit Vivekananda wrote:
the snd_pcm_format_set_silence() would simply /replace/ the actual buffer read from snd_pcm_readi() to zeros(since my application is using signed 32 bit little endian format).
Yes.
There would be no delay induced in doing so.
Yes; this function does not block.
Regards, Clemens
participants (2)
-
Ankhit Vivekananda
-
Clemens Ladisch