Re: Question about hw_param with Ctrl-Z + fg

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Apr 4 2017 14:57, Kuninori Morimoto wrote:
Ctrl-Z case
	- aplay xxx.wav
=>	- hw_param
	- SNDRV_PCM_TRIGGER_START
	- Ctrl-Z
	- SNDRV_PCM_TRIGGER_STOP
	- fg
=>	- ## no hw_param here
	- SNDRV_PCM_TRIGGER_START
	- Ctrl-C (stop)
	- SNDRV_PCM_TRIGGER_STOP

No issues.

I think it better to implement what you want in any .prepare
callbacks, instead of the .be_hw_params_fixup callback, because in
this case, PCM substream lapses into XRUN state in call graph from
your hw IRQ handler. Typical applications recover from this state by
calling ioctl(PREPARE), without any call of ioctl(HW_PARAMS).

Actually, you can see applications call ioctl(PREPARE), before you see
call of 'struct snd_pcm_ops.trigger(START)'.

Hmm...
Above .be_hw_params_fixup is used to convert sampling rate or channel
number or some other related things between SoC / Codec as DPCM feature.
Thus, I can't switch to .be_hw_params_fixup to .prepare I guess.
But Mark, am I misunderstanding ?

In 'struct snd_pcm_ops.prepare' callback, configured parameters of PCM substream are available via members of 'struct snd_pcm_runtime'. The runtime is a member of 'struct snd_pcm_substream'. It's available in any of .prepare callbacks in ALSA SoC part.


Regards

Takashi Sakamoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux