The allowed values of the hardware parameters depend on the hardware's capabilities.
OK but, overwrite the buffer with silence depend of software, no? Why the
buffer is not overwrite with silence with this pcm setup? It is as documentation.
PCM:
ALSA <-> PulseAudio PCM I/O Plugin Its setup is: stream : PLAYBACK access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 1 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 720 period_size : 240 period_time : 5000 tstamp_mode : NONE period_step : 1 avail_min : 240 period_event : 0 start_threshold : 240 stop_threshold : 720 silence_threshold: 0 silence_size : 6485183463413514240 boundary : 6485183463413514240
Pulse plugin 's minimum periods is three.
len = decoder(&decoded_data,t_data);
pcmreturn = snd_pcm_writei(pcm_handle, decoded_data, len);/*In most cases there are UNDERRUN...*/
If len > 720 (buffer_size), you need to write three periods, start playback, receive data, peform decode while waiting for the sound card/plugin playback one period and write another period
Pulseaudio is a sound server which mix several playback streams, silence size may has no effect since the alsa sink may use different period size/buffer size or disable period wakeup when using timer scheduling