1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
From 37e66c9e55f556558088d9f6b2200d4341a37f04 Mon Sep 17 00:00:00 2001
From: Michael Olbrich <m.olbrich@pengutronix.de>
Date: Tue, 18 Jun 2019 09:53:12 +0200
Subject: [PATCH] deviceprovider: fix probing without starting
self->type is needed in registry_event_global() so it must be set in
gst_pipewire_device_provider_probe() as well.
self->devices is initialized as NULL when probing is started. So it should
be just a simple GList* pointer.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
src/gst/gstpipewiredeviceprovider.c | 8 ++++++--
src/gst/gstpipewiredeviceprovider.h | 2 +-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/gst/gstpipewiredeviceprovider.c b/src/gst/gstpipewiredeviceprovider.c
index b6472d96..02b38c2e 100644
--- a/src/gst/gstpipewiredeviceprovider.c
+++ b/src/gst/gstpipewiredeviceprovider.c
@@ -265,7 +265,7 @@ static void do_add_node(void *data)
nd->dev = new_node (self, nd);
if (nd->dev) {
if(self->list_only)
- *self->devices = g_list_prepend (*self->devices, gst_object_ref_sink (nd->dev));
+ self->devices = g_list_prepend (self->devices, gst_object_ref_sink (nd->dev));
else
gst_device_provider_device_add (GST_DEVICE_PROVIDER (self), nd->dev);
}
@@ -555,6 +555,8 @@ gst_pipewire_device_provider_probe (GstDeviceProvider * provider)
t = pw_core_get_type(c);
+ self->type = pw_core_get_type (c);
+
if (!(r = pw_remote_new (c, NULL, sizeof(*data))))
goto failed;
@@ -612,7 +614,9 @@ gst_pipewire_device_provider_probe (GstDeviceProvider * provider)
pw_core_destroy (c);
pw_loop_destroy (l);
- return *self->devices;
+ self->type = NULL;
+
+ return self->devices;
failed:
pw_loop_destroy (l);
diff --git a/src/gst/gstpipewiredeviceprovider.h b/src/gst/gstpipewiredeviceprovider.h
index 81622605..3cf2d41b 100644
--- a/src/gst/gstpipewiredeviceprovider.h
+++ b/src/gst/gstpipewiredeviceprovider.h
@@ -98,7 +98,7 @@ struct _GstPipeWireDeviceProvider {
gboolean end;
gboolean list_only;
- GList **devices;
+ GList *devices;
};
struct _GstPipeWireDeviceProviderClass {
|