All of lore.kernel.org
 help / color / mirror / Atom feed
* [virtio-dev] virtio-snd and snapshots (e.g. in QEMU) when audio is active
@ 2023-07-19 23:21 Roman Kiryanov
  2023-07-20 15:40 ` Stefan Hajnoczi
  2023-07-21  7:44 ` Matias Ezequiel Vara Larsen
  0 siblings, 2 replies; 5+ messages in thread
From: Roman Kiryanov @ 2023-07-19 23:21 UTC (permalink / raw)
  To: virtio-dev; +Cc: JP Cottin, Jorge Moreira Broche

Hi,

I work in Android Studio Emulator and we use virtio-snd (implemented
ourselves) for audio output/input. According to the spec (1.2), the
device has one TX virtqueue for all output streams and one RX
virtqueue for all input streams. Each stream may and usually have more
than one period (I request 4 periods).

Because virtqueues are shared between streams (if there are more than
one stream in the same direction), I cannot fetch vq messages when a
stream needs one. I fetch vq messages (and put them into my own buffer
to process them later) when the kernel puts them into a vq. I hope
this is correct. I think I tried processing them immediately (at least
for TX) but the kernel was not happy with this because I was draining
the buffer too fast causing XRUN.

If a snapshot request comes when audio streams are active I may have
several unprocessed messages for several streams for both TX and RX.
In my case messages are VirtQueueElement* which I don't think can be
saved directly.

Could you please advise what a device is expected to do in this case?

Thank you.

Regards,
Roman.

---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-07-22  5:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-19 23:21 [virtio-dev] virtio-snd and snapshots (e.g. in QEMU) when audio is active Roman Kiryanov
2023-07-20 15:40 ` Stefan Hajnoczi
2023-07-22  5:15   ` Roman Kiryanov
2023-07-21  7:44 ` Matias Ezequiel Vara Larsen
2023-07-22  5:19   ` Roman Kiryanov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.