2015-07-24 19:16 GMT+08:00 Martin Geier martin.geier@streamunlimited.com:
Patch with fixed name and description.
Martin
On 24.07.2015 10:21, Takashi Iwai wrote:
On Fri, 24 Jul 2015 09:52:14 +0200, Martin Geier wrote:
Thanks for help,
in attachment is patch with suggest change. Is the patch acceptable?
I prefer a bit clearer name like params_saved or such, but yes, it's what I had in my mind, too. Could you tidy it up and resubmit with the more description -- why it's needed and what does it? Last but not least, it'd be helpful if you give also signed-off-by tag.
thanks,
Takashi
Martin
On 23.07.2015 10:11, Takashi Iwai wrote:
On Tue, 21 Jul 2015 10:52:01 +0200, Martin Geier wrote:
Hallo,
I tried to configure alsa device with snd_pcm_set_params function, requested parameters was: channel 2, rate: 22050, soft_resample: 1, latency: 50000
Function snd_pcm_hw_params_set_buffer_time_near and snd_pcm_hw_param_set_near is called with: min: 50000, max: 50000, mindir: 0, maxdir: -1
and input params was:
ACCESS: RW_INTERLEAVED FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: 16 FRAME_BITS: 32 CHANNELS: 2 RATE: 22050 PERIOD_TIME: (362 743039) PERIOD_SIZE: [8 16384] PERIOD_BYTES: [32 65536] PERIODS: [2 19] BUFFER_TIME: (725 1486078) BUFFER_SIZE: [16 32768] BUFFER_BYTES: [64 131072] TICK_TIME: ALL
unfortunately, this function fails, on function snd_pcm_hw_param_set_first:
ALSA ERROR hw_params: set_near (BUFFER_TIME) value = 50000 : Invalid argument ACCESS: RW_INTERLEAVED FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: 16 FRAME_BITS: 32 CHANNELS: 2 RATE: 22050 PERIOD_TIME: (4580 5533) PERIOD_SIZE: NONE PERIOD_BYTES: [404 488] PERIODS: 10 BUFFER_TIME: (50022 50023) BUFFER_SIZE: 1103 BUFFER_BYTES: 4412 TICK_TIME: ALL
This shouldn't be problem because in snd_pcm_set_params is snd_pcm_hw_params_set_period_time_near called. This function should be called with same params as snd_pcm_hw_params_set_buffer_time_near but the input params are:
snd_pcm_hw_param_set_near: min: 12500, max: 12500, mindir: 0, maxdir: -1 hw_params: snd_pcm_hw_param_set_near (PERIOD_TIME) ACCESS: RW_INTERLEAVED FORMAT: S16_LE SUBFORMAT: STD SAMPLE_BITS: 16 FRAME_BITS: 32 CHANNELS: 2 RATE: 22050 PERIOD_TIME: (4580 5533) PERIOD_SIZE: NONE PERIOD_BYTES: [404 488] PERIODS: 10 BUFFER_TIME: (50022 50023) BUFFER_SIZE: 1103 BUFFER_BYTES: 4412 TICK_TIME: ALL
What is the period time and buffer time after applied your patch ?
Are latency always <= 50ms ?