[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 05/12] virtio-sound: prepare PCM streams
From: |
Marc-André Lureau |
Subject: |
Re: [PATCH v5 05/12] virtio-sound: prepare PCM streams |
Date: |
Sat, 29 Jul 2023 15:00:30 +0400 |
Hi
On Sat, Jul 29, 2023 at 2:39 PM Emmanouil Pitsidianakis
<manos.pitsidianakis@linaro.org> wrote:
> +
> +/*
> + * Prepares a VirtIOSound card stream.
> + * Returns the response status code. (VIRTIO_SND_S_*).
> + *
> + * @s: VirtIOSound device
> + * @stream_id: stream id
> + */
> +static uint32_t virtio_snd_pcm_prepare_impl(VirtIOSound *s, uint32_t
> stream_id)
> +{
> + audsettings as;
> + VirtIOSoundPCMParams *params;
> + VirtIOSoundPCMStream *stream;
> +
> + if (!s->pcm->streams ||
> + !s->pcm->pcm_params ||
> + !s->pcm->pcm_params[stream_id]) {
> + return VIRTIO_SND_S_BAD_MSG;
> + }
> +
> + params = virtio_snd_pcm_get_params(s, stream_id);
> + if (!params) {
> + return VIRTIO_SND_S_BAD_MSG;
> + }
> +
> + virtio_snd_get_qemu_audsettings(&as, params);
> +
> + stream = g_new0(VirtIOSoundPCMStream, 1);
> +
> + stream->id = stream_id;
> + stream->pcm = s->pcm;
> + stream->direction = stream_id < s->snd_conf.streams / 2 +
> + (s->snd_conf.streams & 1) ? VIRTIO_SND_D_OUTPUT : VIRTIO_SND_D_INPUT;
> + stream->info.hdr.hda_fn_nid = VIRTIO_SOUND_HDA_FN_NID;
> + stream->features = 0;
> + stream->channels_min = 1;
> + stream->channels_max = as.nchannels;
> + stream->formats = supported_formats;
> + stream->rates = supported_rates;
> + stream->s = s;
> +
> + stream->buffer_bytes = params->buffer_bytes;
> + stream->period_bytes = params->period_bytes;
> +
> + stream->positions[0] = VIRTIO_SND_CHMAP_FL;
> + stream->positions[1] = VIRTIO_SND_CHMAP_FR;
> +
> + stream->as = as;
> + stream->desired_as = stream->as;
> + qemu_mutex_init(&stream->queue_mutex);
> + QSIMPLEQ_INIT(&stream->queue);
> +
> + s->pcm->streams[stream_id] = stream;
Same remark as v4:
Shouldn't it close & free the existing stream? Or return an error?
- [PATCH v5 00/12] Add VIRTIO sound card, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 01/12] Add virtio-sound device stub, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 02/12] Add virtio-sound-pci device, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 03/12] virtio-sound: handle control messages and streams, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 04/12] virtio-sound: set PCM stream parameters, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 05/12] virtio-sound: prepare PCM streams, Emmanouil Pitsidianakis, 2023/07/29
- Re: [PATCH v5 05/12] virtio-sound: prepare PCM streams,
Marc-André Lureau <=
- [PATCH v5 06/12] virtio-sound: handle VIRTIO_SND_R_PCM_INFO request, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 07/12] virtio-sound: handle VIRTIO_SND_R_PCM_{START,STOP}, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 08/12] virtio-sound: handle VIRTIO_SND_PCM_SET_PARAMS, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 09/12] virtio-sound: handle VIRTIO_SND_R_PCM_PREPARE, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 10/12] virtio-sound: handle VIRTIO_SND_PCM_RELEASE, Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 11/12] virtio-sound: implement audio output (TX), Emmanouil Pitsidianakis, 2023/07/29
- [PATCH v5 12/12] virtio-sound: implement audio capture (RX), Emmanouil Pitsidianakis, 2023/07/29