[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: virtio-snd and snapshots (e.g. in QEMU) when audio is active
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.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]