On Mon, Jul 3, 2023 at 9:25 PM Takashi Iwai tiwai@suse.de wrote:
On Mon, 03 Jul 2023 15:12:55 +0200, Hans Verkuil wrote:
On 03/07/2023 14:53, Mark Brown wrote:
On Mon, Jul 03, 2023 at 02:07:10PM +0200, Takashi Iwai wrote:
Shengjiu Wang wrote:
There is no such memory to memory interface defined in ALSA. Seems ALSA is not designed for M2M cases.
There is no restriction to implement memory-to-memory capture in ALSA framework. It'd be a matter of the setup of PCM capture source, and you can create a corresponding kcontrol element to switch the mode or assign a dedicated PCM substream, for example. It's just that there was little demand for that.
Yeah, it's not a terrible idea. We might use it more if we ever get better support for DSP audio, routing between the DSP and external devices if driven from the CPU would be a memory to memory thing.
I'm not much against adding the audio capture feature to V4L2, though, if it really makes sense. But creating a crafted /dev/audio* doesn't look like a great idea to me, at least.
I've still not looked at the code at all.
My main concern is that these cross-subsystem drivers are a pain to maintain. So there have to be good reasons to do this.
Also it is kind of weird to have to use the V4L2 API in userspace to deal with a specific audio conversion. Quite unexpected.
But in the end, that's a decision I can't make.
So I wait for that feedback. Note that if the decision is made that this can use V4L2, then there is quite a lot more that needs to be done: documentation, new compliance tests, etc. It's adding a new API, and that comes with additional work...
All agreed. Especially in this case, it doesn't have to be in V4L2 API, as it seems.
(Though, the support of audio on V4L2 might be useful if it's closely tied with the a stream. But that's another story.)
audio is a stream, for this m2m audio case, V4L2 is the best choice I found.
I know there is API change for V4L2, but V4L2 is a good framework for memory to memory, I think it is worth to do this change.
if implement this M2M case in ALSA, we may need to create a sound card and open it twice for playback and capture, it is complicated to do this, and I am not sure if there is any other issue besides these. I can't find an example in the ALSA framework for this case.
best regards wang shengjiu
thanks,
Takashi