pipewire: security-manager: add patch to grant dbus privilege to pipewire
[AGL/meta-agl-devel.git] / meta-pipewire / recipes-multimedia / pipewire / pipewire / 0011-gst-pwaudioringbuffer-make-the-buffer-size-sensitive.patch
1 From 6e289d0058d71bc433d1918a8bbf3305f3e4f517 Mon Sep 17 00:00:00 2001
2 From: Julian Bouzas <julian.bouzas@collabora.com>
3 Date: Tue, 7 May 2019 10:36:35 -0400
4 Subject: [PATCH] gst/pwaudioringbuffer: make the buffer size sensitive to the
5  number of channels
6
7 Upstream-Status: Submitted [https://github.com/PipeWire/pipewire/pull/140]
8 ---
9  src/gst/gstpwaudioringbuffer.c | 6 ++++--
10  src/gst/gstpwaudioringbuffer.h | 1 +
11  2 files changed, 5 insertions(+), 2 deletions(-)
12
13 diff --git a/src/gst/gstpwaudioringbuffer.c b/src/gst/gstpwaudioringbuffer.c
14 index 989b2cd7..181304e8 100644
15 --- a/src/gst/gstpwaudioringbuffer.c
16 +++ b/src/gst/gstpwaudioringbuffer.c
17 @@ -246,17 +246,18 @@ on_stream_format_changed (void *data, const struct spa_pod *format)
18    const struct spa_pod *params[1];
19    struct spa_pod_builder b = { NULL };
20    uint8_t buffer[512];
21 +  const gint b_size = self->segsize * self->channels;
22  
23    spa_pod_builder_init (&b, buffer, sizeof (buffer));
24    params[0] = spa_pod_builder_add_object (&b,
25        SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers,
26        SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(16, 1, INT32_MAX),
27        SPA_PARAM_BUFFERS_blocks,  SPA_POD_Int(1),
28 -      SPA_PARAM_BUFFERS_size,    SPA_POD_Int(self->segsize),
29 +      SPA_PARAM_BUFFERS_size,    SPA_POD_Int(b_size),
30        SPA_PARAM_BUFFERS_stride,  SPA_POD_Int(self->bpf),
31        SPA_PARAM_BUFFERS_align,   SPA_POD_Int(16));
32  
33 -  GST_DEBUG_OBJECT (self->elem, "doing finish format, buffer size:%d", self->segsize);
34 +  GST_DEBUG_OBJECT (self->elem, "doing finish format, buffer size:%d", b_size);
35    pw_stream_finish_format (self->stream, 0, params, 1);
36  }
37  
38 @@ -402,6 +403,7 @@ gst_pw_audio_ring_buffer_acquire (GstAudioRingBuffer *buf,
39    self->segsize = spec->segsize;
40    self->bpf = GST_AUDIO_INFO_BPF (&spec->info);
41    self->rate = GST_AUDIO_INFO_RATE (&spec->info);
42 +  self->channels = GST_AUDIO_INFO_CHANNELS (&spec->info);
43    self->segoffset = 0;
44  
45    /* connect stream */
46 diff --git a/src/gst/gstpwaudioringbuffer.h b/src/gst/gstpwaudioringbuffer.h
47 index f47f668a..f600f012 100644
48 --- a/src/gst/gstpwaudioringbuffer.h
49 +++ b/src/gst/gstpwaudioringbuffer.h
50 @@ -64,6 +64,7 @@ struct _GstPwAudioRingBuffer
51    gint segsize;
52    gint bpf;
53    gint rate;
54 +  gint channels;
55  
56    /* on_stream_process() state */
57    gint segoffset;
58 -- 
59 2.20.1
60