diff options
author | Wim Taymans <wtaymans@redhat.com> | 2016-10-12 17:27:29 +0200 |
---|---|---|
committer | Wim Taymans <wtaymans@redhat.com> | 2016-10-12 17:27:29 +0200 |
commit | 82414810e82207e92095c36e897a347828ca9c06 (patch) | |
tree | 07ca9d92df0d9f05ec51ce907b368f9f301a0e60 | |
parent | 6b3bb79e70b53b598ad628e334b4a1418601f6f4 (diff) |
avoid deref
We can avoid a deref when we use container_of to get from the interface
to the handle.
-rw-r--r-- | pinos/modules/spa/spa-alsa-monitor.c | 15 | ||||
-rw-r--r-- | pinos/modules/spa/spa-audiotestsrc.c | 21 | ||||
-rw-r--r-- | pinos/modules/spa/spa-v4l2-monitor.c | 14 | ||||
-rw-r--r-- | pinos/modules/spa/spa-videotestsrc.c | 25 | ||||
-rw-r--r-- | pinos/server/client-node.c | 24 | ||||
-rw-r--r-- | pinos/server/node.c | 21 | ||||
-rw-r--r-- | spa/include/spa/clock.h | 2 | ||||
-rw-r--r-- | spa/include/spa/defs.h | 40 | ||||
-rw-r--r-- | spa/include/spa/monitor.h | 2 | ||||
-rw-r--r-- | spa/include/spa/node.h | 2 | ||||
-rw-r--r-- | spa/plugins/alsa/alsa-monitor.c | 10 | ||||
-rw-r--r-- | spa/plugins/alsa/alsa-sink.c | 50 | ||||
-rw-r--r-- | spa/plugins/alsa/alsa-source.c | 64 | ||||
-rw-r--r-- | spa/plugins/audiomixer/audiomixer.c | 60 | ||||
-rw-r--r-- | spa/plugins/audiotestsrc/audiotestsrc.c | 62 | ||||
-rw-r--r-- | spa/plugins/ffmpeg/ffmpeg-dec.c | 50 | ||||
-rw-r--r-- | spa/plugins/ffmpeg/ffmpeg-enc.c | 50 | ||||
-rw-r--r-- | spa/plugins/remote/proxy.c | 78 | ||||
-rw-r--r-- | spa/plugins/v4l2/v4l2-monitor.c | 10 | ||||
-rw-r--r-- | spa/plugins/v4l2/v4l2-source.c | 64 | ||||
-rw-r--r-- | spa/plugins/videotestsrc/videotestsrc.c | 62 | ||||
-rw-r--r-- | spa/plugins/volume/volume.c | 50 | ||||
-rw-r--r-- | spa/plugins/xv/xv-sink.c | 42 |
23 files changed, 433 insertions, 385 deletions
diff --git a/pinos/modules/spa/spa-alsa-monitor.c b/pinos/modules/spa/spa-alsa-monitor.c index 62f54b86..393b2e78 100644 --- a/pinos/modules/spa/spa-alsa-monitor.c +++ b/pinos/modules/spa/spa-alsa-monitor.c @@ -38,6 +38,7 @@ typedef struct { uint32_t node; + uint32_t clock; } URI; struct _PinosSpaALSAMonitorPrivate @@ -105,7 +106,7 @@ add_item (PinosSpaALSAMonitor *this, SpaMonitorItem *item) SpaResult res; SpaHandle *handle; PinosNode *node; - void *iface; + void *node_iface, *clock_iface; PinosProperties *props = NULL; g_debug ("alsa-monitor %p: add: \"%s\" (%s)", this, item->name, item->id); @@ -119,8 +120,12 @@ add_item (PinosSpaALSAMonitor *this, SpaMonitorItem *item) g_error ("can't make factory instance: %d", res); return; } - if ((res = spa_handle_get_interface (handle, priv->uri.node, &iface)) < 0) { - g_error ("can't get MONITOR interface: %d", res); + if ((res = spa_handle_get_interface (handle, priv->uri.node, &node_iface)) < 0) { + g_error ("can't get NODE interface: %d", res); + return; + } + if ((res = spa_handle_get_interface (handle, priv->uri.clock, &clock_iface)) < 0) { + g_error ("can't get CLOCK interface: %d", res); return; } @@ -138,7 +143,8 @@ add_item (PinosSpaALSAMonitor *this, SpaMonitorItem *item) node = g_object_new (PINOS_TYPE_NODE, "daemon", priv->daemon, "name", item->factory->name, - "node", iface, + "node", node_iface, + "clock", clock_iface, "properties", props, NULL); @@ -203,6 +209,7 @@ monitor_constructed (GObject * object) G_OBJECT_CLASS (pinos_spa_alsa_monitor_parent_class)->constructed (object); priv->uri.node = spa_id_map_get_id (priv->daemon->map, SPA_NODE_URI); + priv->uri.clock = spa_id_map_get_id (priv->daemon->map, SPA_CLOCK_URI); while (TRUE) { SpaMonitorItem *item; diff --git a/pinos/modules/spa/spa-audiotestsrc.c b/pinos/modules/spa/spa-audiotestsrc.c index 3aa7317f..827fa030 100644 --- a/pinos/modules/spa/spa-audiotestsrc.c +++ b/pinos/modules/spa/spa-audiotestsrc.c @@ -31,6 +31,8 @@ struct _PinosSpaAudioTestSrcPrivate { PinosRingbuffer *ringbuffer; + + SpaHandle *handle; }; enum { @@ -40,9 +42,8 @@ enum { G_DEFINE_TYPE (PinosSpaAudioTestSrc, pinos_spa_audiotestsrc, PINOS_TYPE_NODE); static SpaResult -make_node (PinosDaemon *daemon, SpaNode **node, const char *lib, const char *name) +make_node (PinosDaemon *daemon, SpaHandle **handle, SpaNode **node, const char *lib, const char *name) { - SpaHandle *handle; SpaResult res; void *hnd, *state = NULL; SpaEnumHandleFactoryFunc enum_func; @@ -68,16 +69,16 @@ make_node (PinosDaemon *daemon, SpaNode **node, const char *lib, const char *nam if (strcmp (factory->name, name)) continue; - handle = calloc (1, factory->size); + *handle = calloc (1, factory->size); if ((res = spa_handle_factory_init (factory, - handle, + *handle, NULL, daemon->support, daemon->n_support)) < 0) { g_error ("can't make factory instance: %d", res); return res; } - if ((res = spa_handle_get_interface (handle, + if ((res = spa_handle_get_interface (*handle, spa_id_map_get_id (daemon->map, SPA_NODE_URI), &iface)) < 0) { g_error ("can't get interface %d", res); @@ -145,12 +146,12 @@ src_constructed (GObject * object) static void src_finalize (GObject * object) { - PinosNode *node = PINOS_NODE (object); PinosSpaAudioTestSrc *src = PINOS_SPA_AUDIOTESTSRC (object); + PinosSpaAudioTestSrcPrivate *priv = src->priv; g_debug ("audiotestsrc %p: dispose", src); - spa_handle_clear (node->node->handle); - g_free (node->node->handle); + spa_handle_clear (priv->handle); + g_free (priv->handle); G_OBJECT_CLASS (pinos_spa_audiotestsrc_parent_class)->finalize (object); } @@ -182,8 +183,10 @@ pinos_spa_audiotestsrc_new (PinosDaemon *daemon, PinosNode *node; SpaNode *n; SpaResult res; + SpaHandle *handle; if ((res = make_node (daemon, + &handle, &n, "build/spa/plugins/audiotestsrc/libspa-audiotestsrc.so", "audiotestsrc")) < 0) { @@ -198,5 +201,7 @@ pinos_spa_audiotestsrc_new (PinosDaemon *daemon, "node", n, NULL); + PINOS_SPA_AUDIOTESTSRC (node)->priv->handle = handle; + return node; } diff --git a/pinos/modules/spa/spa-v4l2-monitor.c b/pinos/modules/spa/spa-v4l2-monitor.c index 8d8170cf..0f0d0139 100644 --- a/pinos/modules/spa/spa-v4l2-monitor.c +++ b/pinos/modules/spa/spa-v4l2-monitor.c @@ -38,6 +38,7 @@ typedef struct { uint32_t node; + uint32_t clock; } URI; struct _PinosSpaV4l2MonitorPrivate @@ -105,7 +106,8 @@ add_item (PinosSpaV4l2Monitor *this, SpaMonitorItem *item) SpaResult res; SpaHandle *handle; PinosNode *node; - void *iface; + void *node_iface; + void *clock_iface; PinosProperties *props = NULL; g_debug ("v4l2-monitor %p: add: \"%s\" (%s)", this, item->name, item->id); @@ -119,10 +121,14 @@ add_item (PinosSpaV4l2Monitor *this, SpaMonitorItem *item) g_error ("can't make factory instance: %d", res); return; } - if ((res = spa_handle_get_interface (handle, priv->uri.node, &iface)) < 0) { + if ((res = spa_handle_get_interface (handle, priv->uri.node, &node_iface)) < 0) { g_error ("can't get NODE interface: %d", res); return; } + if ((res = spa_handle_get_interface (handle, priv->uri.clock, &clock_iface)) < 0) { + g_error ("can't get CLOCK interface: %d", res); + return; + } if (item->info) { unsigned int i; @@ -138,7 +144,8 @@ add_item (PinosSpaV4l2Monitor *this, SpaMonitorItem *item) node = g_object_new (PINOS_TYPE_NODE, "daemon", priv->daemon, "name", item->factory->name, - "node", iface, + "node", node_iface, + "clock", clock_iface, "properties", props, NULL); @@ -203,6 +210,7 @@ monitor_constructed (GObject * object) G_OBJECT_CLASS (pinos_spa_v4l2_monitor_parent_class)->constructed (object); priv->uri.node = spa_id_map_get_id (priv->daemon->map, SPA_NODE_URI); + priv->uri.clock = spa_id_map_get_id (priv->daemon->map, SPA_CLOCK_URI); while (TRUE) { SpaMonitorItem *item; diff --git a/pinos/modules/spa/spa-videotestsrc.c b/pinos/modules/spa/spa-videotestsrc.c index 8fab2af1..b6068456 100644 --- a/pinos/modules/spa/spa-videotestsrc.c +++ b/pinos/modules/spa/spa-videotestsrc.c @@ -29,7 +29,7 @@ struct _PinosSpaVideoTestSrcPrivate { - gint dummy; + SpaHandle *handle; }; enum { @@ -39,9 +39,8 @@ enum { G_DEFINE_TYPE (PinosSpaVideoTestSrc, pinos_spa_videotestsrc, PINOS_TYPE_NODE); static SpaResult -make_node (PinosDaemon *daemon, SpaNode **node, const char *lib, const char *name) +make_node (PinosDaemon *daemon, SpaHandle **handle, SpaNode **node, const char *lib, const char *name) { - SpaHandle *handle; SpaResult res; void *hnd, *state = NULL; SpaEnumHandleFactoryFunc enum_func; @@ -67,14 +66,14 @@ make_node (PinosDaemon *daemon, SpaNode **node, const char *lib, const char *nam if (strcmp (factory->name, name)) continue; - handle = calloc (1, factory->size); - if ((res = factory->init (factory, handle, NULL, daemon->support, daemon->n_support)) < 0) { + *handle = calloc (1, factory->size); + if ((res = spa_handle_factory_init (factory, *handle, NULL, daemon->support, daemon->n_support)) < 0) { g_error ("can't make factory instance: %d", res); return res; } - if ((res = handle->get_interface (handle, - spa_id_map_get_id (daemon->map, SPA_NODE_URI), - &iface)) < 0) { + if ((res = spa_handle_get_interface (*handle, + spa_id_map_get_id (daemon->map, SPA_NODE_URI), + &iface)) < 0) { g_error ("can't get interface %d", res); return res; } @@ -113,12 +112,12 @@ set_property (GObject *object, static void source_finalize (GObject * object) { - PinosNode *node = PINOS_NODE (object); PinosSpaVideoTestSrc *source = PINOS_SPA_VIDEOTESTSRC (object); + PinosSpaVideoTestSrcPrivate *priv = source->priv; g_debug ("spa-source %p: dispose", source); - spa_handle_clear (node->node->handle); - g_free (node->node->handle); + spa_handle_clear (priv->handle); + g_free (priv->handle); G_OBJECT_CLASS (pinos_spa_videotestsrc_parent_class)->finalize (object); } @@ -149,8 +148,10 @@ pinos_spa_videotestsrc_new (PinosDaemon *daemon, PinosNode *node; SpaNode *n; SpaResult res; + SpaHandle *handle; if ((res = make_node (daemon, + &handle, &n, "build/spa/plugins/videotestsrc/libspa-videotestsrc.so", "videotestsrc")) < 0) { @@ -165,5 +166,7 @@ pinos_spa_videotestsrc_new (PinosDaemon *daemon, "node", n, NULL); + PINOS_SPA_VIDEOTESTSRC (node)->priv->handle = handle; + return node; } diff --git a/pinos/server/client-node.c b/pinos/server/client-node.c index c30003be..eab8db7b 100644 --- a/pinos/server/client-node.c +++ b/pinos/server/client-node.c @@ -44,6 +44,7 @@ struct _PinosClientNodePrivate { int fd; GSocket *sockets[2]; + SpaHandle *handle; }; #define PINOS_CLIENT_NODE_GET_PRIVATE(obj) \ @@ -181,7 +182,6 @@ pinos_client_node_dispose (GObject * object) static void pinos_client_node_finalize (GObject * object) { - PinosNode *node = PINOS_NODE (object); PinosClientNode *this = PINOS_CLIENT_NODE (object); PinosClientNodePrivate *priv = this->priv; @@ -189,8 +189,8 @@ pinos_client_node_finalize (GObject * object) g_clear_object (&priv->sockets[0]); g_clear_object (&priv->sockets[1]); - spa_handle_clear (node->node->handle); - g_free (node->node->handle); + spa_handle_clear (priv->handle); + g_free (priv->handle); G_OBJECT_CLASS (pinos_client_node_parent_class)->finalize (object); } @@ -228,9 +228,8 @@ pinos_client_node_init (PinosClientNode * node) } static SpaResult -make_node (PinosDaemon *daemon, SpaNode **node, const char *lib, const char *name) +make_node (PinosDaemon *daemon, SpaHandle **handle, SpaNode **node, const char *lib, const char *name) { - SpaHandle *handle; SpaResult res; void *hnd, *state = NULL; SpaEnumHandleFactoryFunc enum_func; @@ -256,16 +255,16 @@ make_node (PinosDaemon *daemon, SpaNode **node, const char *lib, const char *nam if (strcmp (factory->name, name)) continue; - handle = calloc (1, factory->size); + *handle = calloc (1, factory->size); if ((res = factory->init (factory, - handle, + *handle, NULL, daemon->support, daemon->n_support)) < 0) { g_error ("can't make factory instance: %d", res); return res; } - if ((res = handle->get_interface (handle, + if ((res = spa_handle_get_interface (*handle, spa_id_map_get_id (daemon->map, SPA_NODE_URI), &iface)) < 0) { g_error ("can't get interface %d", res); @@ -296,10 +295,13 @@ pinos_client_node_new (PinosDaemon *daemon, { SpaNode *n; SpaResult res; + SpaHandle *handle; + PinosNode *node; g_return_val_if_fail (PINOS_IS_DAEMON (daemon), NULL); if ((res = make_node (daemon, + &handle, &n, "build/spa/plugins/remote/libspa-remote.so", "proxy")) < 0) { @@ -307,11 +309,15 @@ pinos_client_node_new (PinosDaemon *daemon, return NULL; } - return g_object_new (PINOS_TYPE_CLIENT_NODE, + node = g_object_new (PINOS_TYPE_CLIENT_NODE, "daemon", daemon, "client", client, "name", name, "properties", properties, "node", n, NULL); + + PINOS_CLIENT_NODE (node)->priv->handle = handle; + + return node; } diff --git a/pinos/server/node.c b/pinos/server/node.c index d848515b..59d2bd7a 100644 --- a/pinos/server/node.c +++ b/pinos/server/node.c @@ -112,6 +112,7 @@ enum PROP_NAME, PROP_PROPERTIES, PROP_NODE, + PROP_CLOCK, }; enum @@ -587,6 +588,10 @@ pinos_node_get_property (GObject *_object, g_value_set_pointer (value, this->node); break; + case PROP_CLOCK: + g_value_set_pointer (value, this->clock); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (this, prop_id, pspec); break; @@ -638,14 +643,20 @@ pinos_node_set_property (GObject *_object, case PROP_NODE: { - void *iface; this->node = g_value_get_pointer (value); +#if 0 + void *iface; if (this->node->handle->get_interface (this->node->handle, spa_id_map_get_id (priv->daemon->map, SPA_CLOCK_URI), &iface) >= 0) this->clock = iface; +#endif break; } + case PROP_CLOCK: + this->clock = g_value_get_pointer (value); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (this, prop_id, pspec); break; @@ -854,6 +865,14 @@ pinos_node_class_init (PinosNodeClass * klass) G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, + PROP_CLOCK, + g_param_spec_pointer ("clock", + "Clock", + "The SPA clock", + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_RTLOOP, g_param_spec_object ("rt-loop", "RTLoop", diff --git a/spa/include/spa/clock.h b/spa/include/spa/clock.h index ed689701..25912f4e 100644 --- a/spa/include/spa/clock.h +++ b/spa/include/spa/clock.h @@ -51,8 +51,6 @@ typedef enum { * The main processing clocks. */ struct _SpaClock { - /* pointer to the handle owning this interface */ - SpaHandle *handle; /* the total size of this clock. This can be used to expand this * structure in the future */ size_t size; diff --git a/spa/include/spa/defs.h b/spa/include/spa/defs.h index a319d0b2..e1ee41d6 100644 --- a/spa/include/spa/defs.h +++ b/spa/include/spa/defs.h @@ -116,6 +116,46 @@ typedef void (*SpaNotify) (void *data); # define SPA_PRINTF_FUNC(fmt, arg1) #endif +#ifndef SPA_LIKELY +#ifdef __GNUC__ +#define SPA_LIKELY(x) (__builtin_expect(!!(x),1)) +#define SPA_UNLIKELY(x) (__builtin_expect(!!(x),0)) +#else +#define SPA_LIKELY(x) (x) +#define SPA_UNLIKELY(x) (x) +#endif +#endif + + +#define spa_return_if_fail (log, expr) \ + do { \ + if (SPA_UNLIKELY (!(expr))) { \ + spa_log_debug(log, "Assertion '%s' failed\n", #expr); \ + return; \ + } \ + } while(false) + +#define spa_return_val_if_fail (log, expr, val) \ + do { \ + if (SPA_UNLIKELY(!(expr))) { \ + spa_log_debug (log, "Assertion '%s' failed\n", #expr); \ + return (val); \ + } \ + } while(false) + +/* spa_assert_se() is an assert which guarantees side effects of x, + * i.e. is never optimized away, regardless of NDEBUG or FASTPATH. */ +#define spa_assert_se (expr) \ + do { \ + if (SPA_UNLIKELY(!(expr))) { \ + spa_log_error("Assertion '%s' failed, Aborting\n.", #expr); \ + abort(); \ + } \ + } while (false) + +/* Does exactly nothing */ +#define spa_nop() do {} while (false) + #ifdef __cplusplus } /* extern "C" */ diff --git a/spa/include/spa/monitor.h b/spa/include/spa/monitor.h index 065b8220..bac7aecd 100644 --- a/spa/include/spa/monitor.h +++ b/spa/include/spa/monitor.h @@ -98,8 +98,6 @@ typedef void (*SpaMonitorEventCallback) (SpaMonitor *monitor, * The device monitor interface. */ struct _SpaMonitor { - /* pointer to the handle owning this interface */ - SpaHandle *handle; /** * SpaMonitor::info * diff --git a/spa/include/spa/node.h b/spa/include/spa/node.h index 72418bb8..07abf25e 100644 --- a/spa/include/spa/node.h +++ b/spa/include/spa/node.h @@ -148,8 +148,6 @@ typedef void (*SpaNodeEventCallback) (SpaNode *node, * The main processing nodes. */ struct _SpaNode { - /* pointer to the handle owning this interface */ - SpaHandle *handle; /* the total size of this node. This can be used to expand this * structure in the future */ size_t size; diff --git a/spa/plugins/alsa/alsa-monitor.c b/spa/plugins/alsa/alsa-monitor.c index 47055072..447822c3 100644 --- a/spa/plugins/alsa/alsa-monitor.c +++ b/spa/plugins/alsa/alsa-monitor.c @@ -247,10 +247,10 @@ spa_alsa_monitor_set_event_callback (SpaMonitor *monitor, SpaResult res; SpaALSAMonitor *this; - if (monitor == NULL || monitor->handle == NULL) + if (monitor == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSAMonitor *) monitor->handle; + this = SPA_CONTAINER_OF (monitor, SpaALSAMonitor, monitor); this->event_cb = callback; this->user_data = user_data; @@ -299,10 +299,10 @@ spa_alsa_monitor_enum_items (SpaMonitor *monitor, struct udev_list_entry *devices; struct udev_device *dev; - if (monitor == NULL || monitor->handle == NULL || item == NULL || state == NULL) + if (monitor == NULL || item == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSAMonitor *) monitor->handle; + this = SPA_CONTAINER_OF (monitor, SpaALSAMonitor, monitor); if ((res = alsa_udev_open (this)) < 0) return res; @@ -344,7 +344,6 @@ again: static const SpaMonitor alsamonitor = { NULL, - NULL, sizeof (SpaMonitor), spa_alsa_monitor_set_event_callback, spa_alsa_monitor_enum_items, @@ -413,7 +412,6 @@ alsa_monitor_init (const SpaHandleFactory *factory, this->uri.monitor = spa_id_map_get_id (this->map, SPA_MONITOR_URI); this->monitor = alsamonitor; - this->monitor.handle = handle; return SPA_RESULT_OK; } diff --git a/spa/plugins/alsa/alsa-sink.c b/spa/plugins/alsa/alsa-sink.c index 10d58ae2..c8fd06c6 100644 --- a/spa/plugins/alsa/alsa-sink.c +++ b/spa/plugins/alsa/alsa-sink.c @@ -114,10 +114,10 @@ spa_alsa_sink_node_get_props (SpaNode *node, { SpaALSASink *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -133,10 +133,10 @@ spa_alsa_sink_node_set_props (SpaNode *node, SpaALSAProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); p = &this->props[1]; if (props == NULL) { @@ -155,10 +155,10 @@ spa_alsa_sink_node_send_command (SpaNode *node, { SpaALSASink *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -190,10 +190,10 @@ spa_alsa_sink_node_set_event_callback (SpaNode *node, { SpaALSASink *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); this->event_cb = event; this->user_data = user_data; @@ -208,7 +208,7 @@ spa_alsa_sink_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -230,7 +230,7 @@ spa_alsa_sink_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports > 0 && input_ids != NULL) @@ -267,10 +267,10 @@ spa_alsa_sink_node_port_enum_formats (SpaNode *node, SpaALSASink *this; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -307,10 +307,10 @@ spa_alsa_sink_node_port_set_format (SpaNode *node, SpaALSASink *this; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -357,10 +357,10 @@ spa_alsa_sink_node_port_get_format (SpaNode *node, { SpaALSASink *this; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -381,10 +381,10 @@ spa_alsa_sink_node_port_get_info (SpaNode *node, { SpaALSASink *this; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -433,13 +433,13 @@ spa_alsa_sink_node_port_alloc_buffers (SpaNode *node, { SpaALSASink *this; - if (node == NULL || node->handle == NULL || buffers == NULL) + if (node == NULL || buffers == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); if (!this->have_format) return SPA_RESULT_NO_FORMAT; @@ -455,10 +455,10 @@ spa_alsa_sink_node_port_get_status (SpaNode *node, { SpaALSASink *this; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -477,10 +477,10 @@ spa_alsa_sink_node_port_push_input (SpaNode *node, unsigned int i; bool have_error = false, have_enough = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASink, node); for (i = 0; i < n_info; i++) { if (info[i].port_id != 0) { @@ -540,7 +540,6 @@ spa_alsa_sink_node_port_push_event (SpaNode *node, static const SpaNode alsasink_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -624,7 +623,6 @@ alsa_sink_init (const SpaHandleFactory *factory, this->uri.node = spa_id_map_get_id (this->map, SPA_NODE_URI); this->node = alsasink_node; - this->node.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; this->stream = SND_PCM_STREAM_PLAYBACK; diff --git a/spa/plugins/alsa/alsa-source.c b/spa/plugins/alsa/alsa-source.c index dee7c81d..06e01250 100644 --- a/spa/plugins/alsa/alsa-source.c +++ b/spa/plugins/alsa/alsa-source.c @@ -116,10 +116,10 @@ spa_alsa_source_node_get_props (SpaNode *node, { SpaALSASource *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -135,10 +135,10 @@ spa_alsa_source_node_set_props (SpaNode *node, SpaALSAProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); p = &this->props[1]; if (props == NULL) { @@ -157,10 +157,10 @@ spa_alsa_source_node_send_command (SpaNode *node, { SpaALSASource *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -194,10 +194,10 @@ spa_alsa_source_node_set_event_callback (SpaNode *node, { SpaALSASource *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); this->event_cb = event; this->user_data = user_data; @@ -212,7 +212,7 @@ spa_alsa_source_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -234,7 +234,7 @@ spa_alsa_source_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_output_ports > 0 && output_ids != NULL) @@ -271,10 +271,10 @@ spa_alsa_source_node_port_enum_formats (SpaNode *node, SpaALSASource *this; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -336,10 +336,10 @@ spa_alsa_source_node_port_set_format (SpaNode *node, SpaALSASource *this; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -392,10 +392,10 @@ spa_alsa_source_node_port_get_format (SpaNode *node, { SpaALSASource *this; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -416,10 +416,10 @@ spa_alsa_source_node_port_get_info (SpaNode *node, { SpaALSASource *this; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -458,13 +458,13 @@ spa_alsa_source_node_port_use_buffers (SpaNode *node, SpaResult res; int i; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); if (!this->have_format) return SPA_RESULT_NO_FORMAT; @@ -517,13 +517,13 @@ spa_alsa_source_node_port_alloc_buffers (SpaNode *node, { SpaALSASource *this; - if (node == NULL || node->handle == NULL || buffers == NULL) + if (node == NULL || buffers == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); if (this->n_buffers == 0) return SPA_RESULT_NO_FORMAT; @@ -539,10 +539,10 @@ spa_alsa_source_node_port_get_status (SpaNode *node, { SpaALSASource *this; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -569,10 +569,10 @@ spa_alsa_source_node_port_pull_output (SpaNode *node, unsigned int i; bool have_error = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); for (i = 0; i < n_info; i++) { SpaALSABuffer *b; @@ -614,10 +614,10 @@ spa_alsa_source_node_port_reuse_buffer (SpaNode *node, { SpaALSASource *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) node->handle; + this = SPA_CONTAINER_OF (node, SpaALSASource, node); if (port_id != 0) return SPA_RESULT_INVALID_PORT; @@ -643,7 +643,6 @@ spa_alsa_source_node_port_push_event (SpaNode *node, } static const SpaNode alsasource_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -692,10 +691,10 @@ spa_alsa_source_clock_get_time (SpaClock *clock, { SpaALSASource *this; - if (clock == NULL || clock->handle == NULL) + if (clock == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaALSASource *) clock->handle; + this = SPA_CONTAINER_OF (clock, SpaALSASource, clock); if (rate) *rate = SPA_USEC_PER_SEC; @@ -708,7 +707,6 @@ spa_alsa_source_clock_get_time (SpaClock *clock, } static const SpaClock alsasource_clock = { - NULL, sizeof (SpaClock), NULL, SPA_CLOCK_STATE_STOPPED, @@ -779,9 +777,7 @@ alsa_source_init (const SpaHandleFactory *factory, this->uri.clock = spa_id_map_get_id (this->map, SPA_CLOCK_URI); this->node = alsasource_node; - this->node.handle = handle; this->clock = alsasource_clock; - this->clock.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; this->stream = SND_PCM_STREAM_CAPTURE; diff --git a/spa/plugins/audiomixer/audiomixer.c b/spa/plugins/audiomixer/audiomixer.c index 931e66a9..74775923 100644 --- a/spa/plugins/audiomixer/audiomixer.c +++ b/spa/plugins/audiomixer/audiomixer.c @@ -112,10 +112,10 @@ spa_audiomixer_node_get_props (SpaNode *node, { SpaAudioMixer *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -131,10 +131,10 @@ spa_audiomixer_node_set_props (SpaNode *node, SpaAudioMixerProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); p = &this->props[1]; if (props == NULL) { @@ -158,10 +158,10 @@ spa_audiomixer_node_send_command (SpaNode *node, { SpaAudioMixer *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -191,10 +191,10 @@ spa_audiomixer_node_set_event_callback (SpaNode *node, { SpaAudioMixer *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); this->event_cb = event; this->user_data = user_data; @@ -209,7 +209,7 @@ spa_audiomixer_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -234,10 +234,10 @@ spa_audiomixer_node_get_port_ids (SpaNode *node, SpaAudioMixer *this; int i, idx; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (input_ids) { for (i = 0, idx = 0; i < MAX_PORTS && idx < n_input_ports; i++) { @@ -258,10 +258,10 @@ spa_audiomixer_node_add_port (SpaNode *node, { SpaAudioMixer *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (!CHECK_FREE_IN_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -287,10 +287,10 @@ spa_audiomixer_node_remove_port (SpaNode *node, { SpaAudioMixer *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (!CHECK_IN_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -320,10 +320,10 @@ spa_audiomixer_node_port_enum_formats (SpaNode *node, SpaAudioMixerPort *port; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -358,10 +358,10 @@ spa_audiomixer_node_port_set_format (SpaNode *node, SpaAudioMixerPort *port; SpaResult res; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -390,10 +390,10 @@ spa_audiomixer_node_port_get_format (SpaNode *node, SpaAudioMixer *this; SpaAudioMixerPort *port; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -417,10 +417,10 @@ spa_audiomixer_node_port_get_info (SpaNode *node, SpaAudioMixer *this; SpaAudioMixerPort *port; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -480,10 +480,10 @@ spa_audiomixer_node_port_get_status (SpaNode *node, SpaAudioMixer *this; SpaAudioMixerPort *port; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -506,10 +506,10 @@ spa_audiomixer_node_port_push_input (SpaNode *node, unsigned int i; bool have_error = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (this->out_ports[0].status.flags & SPA_PORT_STATUS_FLAG_HAVE_OUTPUT) return SPA_RESULT_HAVE_ENOUGH_INPUT; @@ -684,10 +684,10 @@ spa_audiomixer_node_port_pull_output (SpaNode *node, int i; bool have_error = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioMixer *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioMixer, node); if (!CHECK_OUT_PORT (this, SPA_DIRECTION_OUTPUT, info->port_id)) return SPA_RESULT_INVALID_PORT; @@ -731,7 +731,6 @@ spa_audiomixer_node_port_push_event (SpaNode *node, } static const SpaNode audiomixer_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -815,7 +814,6 @@ spa_audiomixer_init (const SpaHandleFactory *factory, this->uri.node = spa_id_map_get_id (this->map, SPA_NODE_URI); this->node = audiomixer_node; - this->node.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_audiomixer_props (&this->props[1]); diff --git a/spa/plugins/audiotestsrc/audiotestsrc.c b/spa/plugins/audiotestsrc/audiotestsrc.c index d302251d..2ead498c 100644 --- a/spa/plugins/audiotestsrc/audiotestsrc.c +++ b/spa/plugins/audiotestsrc/audiotestsrc.c @@ -187,10 +187,10 @@ spa_audiotestsrc_node_get_props (SpaNode *node, { SpaAudioTestSrc *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -206,10 +206,10 @@ spa_audiotestsrc_node_set_props (SpaNode *node, SpaAudioTestSrcProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); p = &this->props[1]; if (props == NULL) { @@ -346,10 +346,10 @@ spa_audiotestsrc_node_send_command (SpaNode *node, { SpaAudioTestSrc *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -413,10 +413,10 @@ spa_audiotestsrc_node_set_event_callback (SpaNode *node, { SpaAudioTestSrc *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (event_cb == NULL && this->event_cb) { spa_poll_remove_item (this->data_loop, &this->timer); @@ -438,7 +438,7 @@ spa_audiotestsrc_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -460,7 +460,7 @@ spa_audiotestsrc_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_output_ports > 0 && output_ids != NULL) @@ -496,10 +496,10 @@ spa_audiotestsrc_node_port_enum_formats (SpaNode *node, SpaAudioTestSrc *this; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -546,10 +546,10 @@ spa_audiotestsrc_node_port_set_format (SpaNode *node, SpaAudioTestSrc *this; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -600,10 +600,10 @@ spa_audiotestsrc_node_port_get_format (SpaNode *node, { SpaAudioTestSrc *this; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -624,10 +624,10 @@ spa_audiotestsrc_node_port_get_info (SpaNode *node, { SpaAudioTestSrc *this; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -665,10 +665,10 @@ spa_audiotestsrc_node_port_use_buffers (SpaNode *node, SpaAudioTestSrc *this; unsigned int i; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -726,10 +726,10 @@ spa_audiotestsrc_node_port_alloc_buffers (SpaNode *node, { SpaAudioTestSrc *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -751,10 +751,10 @@ spa_audiotestsrc_node_port_get_status (SpaNode *node, { SpaAudioTestSrc *this; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -785,10 +785,10 @@ spa_audiotestsrc_node_port_pull_output (SpaNode *node, unsigned int i; bool have_error = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); for (i = 0; i < n_info; i++) { ATSBuffer *b; @@ -830,10 +830,10 @@ spa_audiotestsrc_node_port_reuse_buffer (SpaNode *node, SpaAudioTestSrc *this; ATSBuffer *b; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaAudioTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaAudioTestSrc, node); if (port_id != 0) return SPA_RESULT_INVALID_PORT; @@ -868,7 +868,6 @@ spa_audiotestsrc_node_port_push_event (SpaNode *node, } static const SpaNode audiotestsrc_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -918,7 +917,7 @@ spa_audiotestsrc_clock_get_time (SpaClock *clock, struct timespec now; uint64_t tnow; - if (clock == NULL || clock->handle == NULL) + if (clock == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (rate) @@ -936,7 +935,6 @@ spa_audiotestsrc_clock_get_time (SpaClock *clock, } static const SpaClock audiotestsrc_clock = { - NULL, sizeof (SpaClock), NULL, SPA_CLOCK_STATE_STOPPED, @@ -1020,9 +1018,7 @@ audiotestsrc_init (const SpaHandleFactory *factory, this->uri.clock = spa_id_map_get_id (this->map, SPA_CLOCK_URI); this->node = audiotestsrc_node; - this->node.handle = handle; this->clock = audiotestsrc_clock; - this->clock.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_audiotestsrc_props (&this->props[1]); diff --git a/spa/plugins/ffmpeg/ffmpeg-dec.c b/spa/plugins/ffmpeg/ffmpeg-dec.c index 0b42a9c4..815e3992 100644 --- a/spa/plugins/ffmpeg/ffmpeg-dec.c +++ b/spa/plugins/ffmpeg/ffmpeg-dec.c @@ -96,10 +96,10 @@ spa_ffmpeg_dec_node_get_props (SpaNode *node, { SpaFFMpegDec *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -115,10 +115,10 @@ spa_ffmpeg_dec_node_set_props (SpaNode *node, SpaFFMpegDecProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); p = &this->props[1]; if (props == NULL) { @@ -143,10 +143,10 @@ spa_ffmpeg_dec_node_send_command (SpaNode *node, { SpaFFMpegDec *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -176,10 +176,10 @@ spa_ffmpeg_dec_node_set_event_callback (SpaNode *node, { SpaFFMpegDec *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); this->event_cb = event; this->user_data = user_data; @@ -194,7 +194,7 @@ spa_ffmpeg_dec_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -216,7 +216,7 @@ spa_ffmpeg_dec_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports > 0 && input_ids != NULL) @@ -256,10 +256,10 @@ spa_ffmpeg_dec_node_port_enum_formats (SpaNode *node, SpaFFMpegPort *port; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -294,10 +294,10 @@ spa_ffmpeg_dec_node_port_set_format (SpaNode *node, SpaFFMpegPort *port; SpaResult res; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -329,10 +329,10 @@ spa_ffmpeg_dec_node_port_get_format (SpaNode *node, SpaFFMpegDec *this; SpaFFMpegPort *port; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -356,10 +356,10 @@ spa_ffmpeg_dec_node_port_get_info (SpaNode *node, SpaFFMpegDec *this; SpaFFMpegPort *port; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -395,7 +395,7 @@ spa_ffmpeg_dec_node_port_use_buffers (SpaNode *node, SpaBuffer **buffers, uint32_t n_buffers) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (!IS_VALID_PORT (node, direction, port_id)) @@ -425,10 +425,10 @@ spa_ffmpeg_dec_node_port_get_status (SpaNode *node, SpaFFMpegDec *this; SpaFFMpegPort *port; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -457,10 +457,10 @@ spa_ffmpeg_dec_node_port_pull_output (SpaNode *node, unsigned int i; bool have_error = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegDec *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegDec, node); for (i = 0; i < n_info; i++) { if (info[i].port_id != 0) { @@ -488,7 +488,7 @@ spa_ffmpeg_dec_node_port_reuse_buffer (SpaNode *node, uint32_t port_id, uint32_t buffer_id) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (port_id != 0) @@ -508,7 +508,6 @@ spa_ffmpeg_dec_node_port_push_event (SpaNode *node, static const SpaNode ffmpeg_dec_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -581,7 +580,6 @@ spa_ffmpeg_dec_init (SpaHandle *handle, this->uri.node = spa_id_map_get_id (this->map, SPA_NODE_URI); this->node = ffmpeg_dec_node; - this->node.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_ffmpeg_dec_props (&this->props[1]); diff --git a/spa/plugins/ffmpeg/ffmpeg-enc.c b/spa/plugins/ffmpeg/ffmpeg-enc.c index d5dd9ab5..9baf5e14 100644 --- a/spa/plugins/ffmpeg/ffmpeg-enc.c +++ b/spa/plugins/ffmpeg/ffmpeg-enc.c @@ -108,10 +108,10 @@ spa_ffmpeg_enc_node_get_props (SpaNode *node, { SpaFFMpegEnc *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -127,10 +127,10 @@ spa_ffmpeg_enc_node_set_props (SpaNode *node, SpaFFMpegEncProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); p = &this->props[1]; if (props == NULL) { @@ -149,10 +149,10 @@ spa_ffmpeg_enc_node_send_command (SpaNode *node, { SpaFFMpegEnc *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -182,10 +182,10 @@ spa_ffmpeg_enc_node_set_event_callback (SpaNode *node, { SpaFFMpegEnc *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); this->event_cb = event; this->user_data = user_data; @@ -200,7 +200,7 @@ spa_ffmpeg_enc_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -222,7 +222,7 @@ spa_ffmpeg_enc_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports > 0 && input_ids != NULL) @@ -262,10 +262,10 @@ spa_ffmpeg_enc_node_port_enum_formats (SpaNode *node, SpaFFMpegPort *port; int index; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -300,10 +300,10 @@ spa_ffmpeg_enc_node_port_set_format (SpaNode *node, SpaFFMpegPort *port; SpaResult res; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -338,10 +338,10 @@ spa_ffmpeg_enc_node_port_get_format (SpaNode *node, SpaFFMpegEnc *this; SpaFFMpegPort *port; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -365,10 +365,10 @@ spa_ffmpeg_enc_node_port_get_info (SpaNode *node, SpaFFMpegEnc *this; SpaFFMpegPort *port; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -404,7 +404,7 @@ spa_ffmpeg_enc_node_port_use_buffers (SpaNode *node, SpaBuffer **buffers, uint32_t n_buffers) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (!IS_VALID_PORT (node, direction, port_id)) @@ -434,10 +434,10 @@ spa_ffmpeg_enc_node_port_get_status (SpaNode *node, SpaFFMpegEnc *this; SpaFFMpegPort *port; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); if (!IS_VALID_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -466,10 +466,10 @@ spa_ffmpeg_enc_node_port_pull_output (SpaNode *node, unsigned int i; bool have_error = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaFFMpegEnc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaFFMpegEnc, node); for (i = 0; i < n_info; i++) { @@ -498,7 +498,7 @@ spa_ffmpeg_enc_node_port_reuse_buffer (SpaNode *node, uint32_t port_id, uint32_t buffer_id) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (port_id != 0) @@ -517,7 +517,6 @@ spa_ffmpeg_enc_node_port_push_event (SpaNode *node, } static const SpaNode ffmpeg_enc_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -590,7 +589,6 @@ spa_ffmpeg_enc_init (SpaHandle *handle, this->uri.node = spa_id_map_get_id (this->map, SPA_NODE_URI); this->node = ffmpeg_enc_node; - this->node.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_ffmpeg_enc_props (&this->props[1]); diff --git a/spa/plugins/remote/proxy.c b/spa/plugins/remote/proxy.c index 1b829d8e..a536e3e6 100644 --- a/spa/plugins/remote/proxy.c +++ b/spa/plugins/remote/proxy.c @@ -196,10 +196,10 @@ spa_proxy_node_get_props (SpaNode *node, { SpaProxy *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -215,10 +215,10 @@ spa_proxy_node_set_props (SpaNode *node, SpaProxyProps *op, *np; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); op = &this->props[1]; np = &this->props[0]; @@ -248,10 +248,10 @@ spa_proxy_node_send_command (SpaNode *node, SpaProxy *this; SpaResult res = SPA_RESULT_OK; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -314,10 +314,10 @@ spa_proxy_node_set_event_callback (SpaNode *node, { SpaProxy *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); this->event_cb = event; this->user_data = user_data; @@ -333,10 +333,10 @@ spa_proxy_node_get_n_ports (SpaNode *node, { SpaProxy *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (n_input_ports) *n_input_ports = this->n_inputs; @@ -360,10 +360,10 @@ spa_proxy_node_get_port_ids (SpaNode *node, SpaProxy *this; int c, i; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (input_ids) { for (c = 0, i = 0; i < MAX_INPUTS && c < n_input_ports; i++) { @@ -485,10 +485,10 @@ spa_proxy_node_add_port (SpaNode *node, SpaProxy *this; SpaProxyPort *port; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_FREE_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -506,10 +506,10 @@ spa_proxy_node_remove_port (SpaNode *node, { SpaProxy *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -531,10 +531,10 @@ spa_proxy_node_port_enum_formats (SpaNode *node, SpaProxyPort *port; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -566,10 +566,10 @@ spa_proxy_node_port_set_format (SpaNode *node, uint8_t buf[128]; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -600,10 +600,10 @@ spa_proxy_node_port_get_format (SpaNode *node, SpaProxy *this; SpaProxyPort *port; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -627,10 +627,10 @@ spa_proxy_node_port_get_info (SpaNode *node, SpaProxy *this; SpaProxyPort *port; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -669,10 +669,10 @@ spa_proxy_node_port_get_status (SpaNode *node, SpaProxy *this; SpaProxyPort *port; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -708,10 +708,10 @@ spa_proxy_node_port_use_buffers (SpaNode *node, SpaControlMemRef *memref; void *p; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); spa_log_info (this->log, "proxy %p: use buffers %p %u\n", this, buffers, n_buffers); if (!CHECK_PORT (this, direction, port_id)) @@ -870,10 +870,10 @@ spa_proxy_node_port_alloc_buffers (SpaNode *node, SpaProxy *this; SpaProxyPort *port; - if (node == NULL || node->handle == NULL || buffers == NULL) + if (node == NULL || buffers == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -942,10 +942,10 @@ spa_proxy_node_port_push_input (SpaNode *node, uint8_t buf[64]; SpaResult res; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); spa_control_builder_init_into (&builder, buf, sizeof(buf), NULL, 0); @@ -1007,10 +1007,10 @@ spa_proxy_node_port_pull_output (SpaNode *node, bool have_error = false; bool need_more = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); for (i = 0; i < n_info; i++) { if (!CHECK_OUT_PORT (this, SPA_DIRECTION_OUTPUT, info[i].port_id)) { @@ -1055,10 +1055,10 @@ spa_proxy_node_port_reuse_buffer (SpaNode *node, SpaNodeEvent ne; SpaNodeEventReuseBuffer rb; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); if (!CHECK_OUT_PORT (this, SPA_DIRECTION_OUTPUT, port_id)) return SPA_RESULT_INVALID_PORT; @@ -1090,10 +1090,10 @@ spa_proxy_node_port_push_event (SpaNode *node, { SpaProxy *this; - if (node == NULL || node->handle == NULL || event == NULL) + if (node == NULL || event == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaProxy *) node->handle; + this = SPA_CONTAINER_OF (node, SpaProxy, node); switch (event->type) { default: @@ -1277,7 +1277,6 @@ proxy_on_fd_events (SpaPollNotifyData *data) } static const SpaNode proxy_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -1382,7 +1381,6 @@ proxy_init (const SpaHandleFactory *factory, this->uri.node = spa_id_map_get_id (this->map, SPA_NODE_URI); this->node = proxy_node; - this->node.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_proxy_props (&this->props[1]); diff --git a/spa/plugins/v4l2/v4l2-monitor.c b/spa/plugins/v4l2/v4l2-monitor.c index 30aa6846..06a7eeb0 100644 --- a/spa/plugins/v4l2/v4l2-monitor.c +++ b/spa/plugins/v4l2/v4l2-monitor.c @@ -218,10 +218,10 @@ spa_v4l2_monitor_set_event_callback (SpaMonitor *monitor, SpaResult res; SpaV4l2Monitor *this; - if (monitor == NULL || monitor->handle == NULL) + if (monitor == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Monitor *) monitor->handle; + this = SPA_CONTAINER_OF (monitor, SpaV4l2Monitor, monitor); this->event_cb = callback; this->user_data = user_data; @@ -271,10 +271,10 @@ spa_v4l2_monitor_enum_items (SpaMonitor *monitor, struct udev_list_entry *devices; struct udev_device *dev; - if (monitor == NULL || monitor->handle == NULL || item == NULL || state == NULL) + if (monitor == NULL || item == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Monitor *) monitor->handle; + this = SPA_CONTAINER_OF (monitor, SpaV4l2Monitor, monitor); if ((res = v4l2_udev_open (this)) < 0) return res; @@ -316,7 +316,6 @@ spa_v4l2_monitor_enum_items (SpaMonitor *monitor, static const SpaMonitor v4l2monitor = { NULL, - NULL, sizeof (SpaMonitor), spa_v4l2_monitor_set_event_callback, spa_v4l2_monitor_enum_items, @@ -385,7 +384,6 @@ v4l2_monitor_init (const SpaHandleFactory *factory, this->uri.monitor = spa_id_map_get_id (this->map, SPA_MONITOR_URI); this->monitor = v4l2monitor; - this->monitor.handle = handle; return SPA_RESULT_OK; } diff --git a/spa/plugins/v4l2/v4l2-source.c b/spa/plugins/v4l2/v4l2-source.c index 89420dee..a5584451 100644 --- a/spa/plugins/v4l2/v4l2-source.c +++ b/spa/plugins/v4l2/v4l2-source.c @@ -186,10 +186,10 @@ spa_v4l2_source_node_get_props (SpaNode *node, { SpaV4l2Source *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -205,10 +205,10 @@ spa_v4l2_source_node_set_props (SpaNode *node, SpaV4l2SourceProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); p = &this->props[1]; if (props == NULL) { @@ -228,10 +228,10 @@ spa_v4l2_source_node_send_command (SpaNode *node, SpaV4l2Source *this; SpaResult res; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -288,10 +288,10 @@ spa_v4l2_source_node_set_event_callback (SpaNode *node, { SpaV4l2Source *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); this->event_cb = event; this->user_data = user_data; @@ -306,7 +306,7 @@ spa_v4l2_source_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -328,7 +328,7 @@ spa_v4l2_source_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_output_ports > 0 && output_ids != NULL) @@ -382,10 +382,10 @@ spa_v4l2_source_node_port_enum_formats (SpaNode *node, SpaV4l2Source *this; SpaResult res; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -408,10 +408,10 @@ spa_v4l2_source_node_port_set_format (SpaNode *node, V4l2Format *f, *tf; size_t fs; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -477,10 +477,10 @@ spa_v4l2_source_node_port_get_format (SpaNode *node, SpaV4l2Source *this; SpaV4l2State *state; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -503,10 +503,10 @@ spa_v4l2_source_node_port_get_info (SpaNode *node, { SpaV4l2Source *this; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -545,10 +545,10 @@ spa_v4l2_source_node_port_use_buffers (SpaNode *node, SpaV4l2State *state; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -588,10 +588,10 @@ spa_v4l2_source_node_port_alloc_buffers (SpaNode *node, SpaV4l2State *state; SpaResult res; - if (node == NULL || node->handle == NULL || buffers == NULL) + if (node == NULL || buffers == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -621,10 +621,10 @@ spa_v4l2_source_node_port_get_status (SpaNode *node, { SpaV4l2Source *this; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -652,10 +652,10 @@ spa_v4l2_source_node_port_pull_output (SpaNode *node, unsigned int i; bool have_error = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); for (i = 0; i < n_info; i++) { V4l2Buffer *b; @@ -699,10 +699,10 @@ spa_v4l2_source_node_port_reuse_buffer (SpaNode *node, SpaV4l2State *state; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) node->handle; + this = SPA_CONTAINER_OF (node, SpaV4l2Source, node); if (port_id != 0) return SPA_RESULT_INVALID_PORT; @@ -731,7 +731,6 @@ spa_v4l2_source_node_port_push_event (SpaNode *node, static const SpaNode v4l2source_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -781,10 +780,10 @@ spa_v4l2_source_clock_get_time (SpaClock *clock, SpaV4l2Source *this; SpaV4l2State *state; - if (clock == NULL || clock->handle == NULL) + if (clock == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaV4l2Source *) clock->handle; + this = SPA_CONTAINER_OF (clock, SpaV4l2Source, clock); state = &this->state[0]; if (rate) @@ -798,7 +797,6 @@ spa_v4l2_source_clock_get_time (SpaClock *clock, } static const SpaClock v4l2source_clock = { - NULL, sizeof (SpaClock), NULL, SPA_CLOCK_STATE_STOPPED, @@ -874,9 +872,7 @@ v4l2_source_init (const SpaHandleFactory *factory, this->uri.clock = spa_id_map_get_id (this->map, SPA_CLOCK_URI); this->node = v4l2source_node; - this->node.handle = handle; this->clock = v4l2source_clock; - this->clock.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_v4l2_source_props (&this->props[1]); diff --git a/spa/plugins/videotestsrc/videotestsrc.c b/spa/plugins/videotestsrc/videotestsrc.c index c185333c..eb02cb40 100644 --- a/spa/plugins/videotestsrc/videotestsrc.c +++ b/spa/plugins/videotestsrc/videotestsrc.c @@ -140,10 +140,10 @@ spa_videotestsrc_node_get_props (SpaNode *node, { SpaVideoTestSrc *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -159,10 +159,10 @@ spa_videotestsrc_node_set_props (SpaNode *node, SpaVideoTestSrcProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); p = &this->props[1]; if (props == NULL) { @@ -294,10 +294,10 @@ spa_videotestsrc_node_send_command (SpaNode *node, { SpaVideoTestSrc *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -361,10 +361,10 @@ spa_videotestsrc_node_set_event_callback (SpaNode *node, { SpaVideoTestSrc *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (event_cb == NULL && this->event_cb) { spa_poll_remove_item (this->data_loop, &this->timer); @@ -386,7 +386,7 @@ spa_videotestsrc_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -408,7 +408,7 @@ spa_videotestsrc_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_output_ports > 0 && output_ids != NULL) @@ -444,10 +444,10 @@ spa_videotestsrc_node_port_enum_formats (SpaNode *node, SpaVideoTestSrc *this; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -494,10 +494,10 @@ spa_videotestsrc_node_port_set_format (SpaNode *node, SpaVideoTestSrc *this; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -549,10 +549,10 @@ spa_videotestsrc_node_port_get_format (SpaNode *node, { SpaVideoTestSrc *this; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -573,10 +573,10 @@ spa_videotestsrc_node_port_get_info (SpaNode *node, { SpaVideoTestSrc *this; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -614,10 +614,10 @@ spa_videotestsrc_node_port_use_buffers (SpaNode *node, SpaVideoTestSrc *this; unsigned int i; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -675,10 +675,10 @@ spa_videotestsrc_node_port_alloc_buffers (SpaNode *node, { SpaVideoTestSrc *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -700,10 +700,10 @@ spa_videotestsrc_node_port_get_status (SpaNode *node, { SpaVideoTestSrc *this; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -733,10 +733,10 @@ spa_videotestsrc_node_port_pull_output (SpaNode *node, unsigned int i; bool have_error = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); for (i = 0; i < n_info; i++) { VTSBuffer *b; @@ -778,10 +778,10 @@ spa_videotestsrc_node_port_reuse_buffer (SpaNode *node, SpaVideoTestSrc *this; VTSBuffer *b; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVideoTestSrc *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVideoTestSrc, node); if (port_id != 0) return SPA_RESULT_INVALID_PORT; @@ -816,7 +816,6 @@ spa_videotestsrc_node_port_push_event (SpaNode *node, } static const SpaNode videotestsrc_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -866,7 +865,7 @@ spa_videotestsrc_clock_get_time (SpaClock *clock, struct timespec now; uint64_t tnow; - if (clock == NULL || clock->handle == NULL) + if (clock == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (rate) @@ -884,7 +883,6 @@ spa_videotestsrc_clock_get_time (SpaClock *clock, } static const SpaClock videotestsrc_clock = { - NULL, sizeof (SpaClock), NULL, SPA_CLOCK_STATE_STOPPED, @@ -964,9 +962,7 @@ videotestsrc_init (const SpaHandleFactory *factory, this->uri.clock = spa_id_map_get_id (this->map, SPA_CLOCK_URI); this->node = videotestsrc_node; - this->node.handle = handle; this->clock = videotestsrc_clock; - this->clock.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_videotestsrc_props (&this->props[1]); diff --git a/spa/plugins/volume/volume.c b/spa/plugins/volume/volume.c index d5192768..6ffc29d0 100644 --- a/spa/plugins/volume/volume.c +++ b/spa/plugins/volume/volume.c @@ -122,10 +122,10 @@ spa_volume_node_get_props (SpaNode *node, { SpaVolume *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -141,10 +141,10 @@ spa_volume_node_set_props (SpaNode *node, SpaVolumeProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); p = &this->props[1]; if (props == NULL) { @@ -162,10 +162,10 @@ spa_volume_node_send_command (SpaNode *node, { SpaVolume *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -195,10 +195,10 @@ spa_volume_node_set_event_callback (SpaNode *node, { SpaVolume *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); this->event_cb = event; this->user_data = user_data; @@ -213,7 +213,7 @@ spa_volume_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -235,7 +235,7 @@ spa_volume_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports > 0 && input_ids) @@ -274,10 +274,10 @@ spa_volume_node_port_enum_formats (SpaNode *node, SpaVolume *this; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -310,10 +310,10 @@ spa_volume_node_port_set_format (SpaNode *node, SpaVolumePort *port; SpaResult res; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -342,10 +342,10 @@ spa_volume_node_port_get_format (SpaNode *node, SpaVolume *this; SpaVolumePort *port; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -369,10 +369,10 @@ spa_volume_node_port_get_info (SpaNode *node, SpaVolume *this; SpaVolumePort *port; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -432,10 +432,10 @@ spa_volume_node_port_get_status (SpaNode *node, SpaVolume *this; SpaVolumePort *port; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -461,10 +461,10 @@ spa_volume_node_port_push_input (SpaNode *node, bool have_error = false; bool have_enough = false; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); for (i = 0; i < n_info; i++) { SpaVolumePort *port; @@ -545,10 +545,10 @@ spa_volume_node_port_pull_output (SpaNode *node, uint16_t *src, *dst; double volume; - if (node == NULL || node->handle == NULL || n_info == 0 || info == NULL) + if (node == NULL || n_info == 0 || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaVolume *) node->handle; + this = SPA_CONTAINER_OF (node, SpaVolume, node); if (info[0].port_id != 0) return SPA_RESULT_INVALID_PORT; @@ -627,7 +627,6 @@ spa_volume_node_port_push_event (SpaNode *node, } static const SpaNode volume_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -711,7 +710,6 @@ volume_init (const SpaHandleFactory *factory, this->uri.node = spa_id_map_get_id (this->map, SPA_NODE_URI); this->node = volume_node; - this->node.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_volume_props (&this->props[1]); diff --git a/spa/plugins/xv/xv-sink.c b/spa/plugins/xv/xv-sink.c index 8af17a5d..73180c88 100644 --- a/spa/plugins/xv/xv-sink.c +++ b/spa/plugins/xv/xv-sink.c @@ -141,10 +141,10 @@ spa_xv_sink_node_get_props (SpaNode *node, { SpaXvSink *this; - if (node == NULL || node->handle == NULL || props == NULL) + if (node == NULL || props == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); memcpy (&this->props[0], &this->props[1], sizeof (this->props[1])); *props = &this->props[0].props; @@ -160,10 +160,10 @@ spa_xv_sink_node_set_props (SpaNode *node, SpaXvSinkProps *p; SpaResult res; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); p = &this->props[1]; if (props == NULL) { @@ -182,10 +182,10 @@ spa_xv_sink_node_send_command (SpaNode *node, { SpaXvSink *this; - if (node == NULL || node->handle == NULL || command == NULL) + if (node == NULL || command == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); switch (command->type) { case SPA_NODE_COMMAND_INVALID: @@ -218,10 +218,10 @@ spa_xv_sink_node_set_event_callback (SpaNode *node, { SpaXvSink *this; - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); this->event_cb = event; this->user_data = user_data; @@ -236,7 +236,7 @@ spa_xv_sink_node_get_n_ports (SpaNode *node, unsigned int *n_output_ports, unsigned int *max_output_ports) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_input_ports) @@ -258,7 +258,7 @@ spa_xv_sink_node_get_port_ids (SpaNode *node, unsigned int n_output_ports, uint32_t *output_ids) { - if (node == NULL || node->handle == NULL) + if (node == NULL) return SPA_RESULT_INVALID_ARGUMENTS; if (n_output_ports > 0 && output_ids != NULL) @@ -295,10 +295,10 @@ spa_xv_sink_node_port_enum_formats (SpaNode *node, SpaXvSink *this; int index; - if (node == NULL || node->handle == NULL || format == NULL || state == NULL) + if (node == NULL || format == NULL || state == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -332,10 +332,10 @@ spa_xv_sink_node_port_set_format (SpaNode *node, SpaFormat *f, *tf; size_t fs; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -377,10 +377,10 @@ spa_xv_sink_node_port_get_format (SpaNode *node, { SpaXvSink *this; - if (node == NULL || node->handle == NULL || format == NULL) + if (node == NULL || format == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -401,10 +401,10 @@ spa_xv_sink_node_port_get_info (SpaNode *node, { SpaXvSink *this; - if (node == NULL || node->handle == NULL || info == NULL) + if (node == NULL || info == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -462,10 +462,10 @@ spa_xv_sink_node_port_get_status (SpaNode *node, { SpaXvSink *this; - if (node == NULL || node->handle == NULL || status == NULL) + if (node == NULL || status == NULL) return SPA_RESULT_INVALID_ARGUMENTS; - this = (SpaXvSink *) node->handle; + this = SPA_CONTAINER_OF (node, SpaXvSink, node); if (!CHECK_PORT (this, direction, port_id)) return SPA_RESULT_INVALID_PORT; @@ -509,7 +509,6 @@ spa_xv_sink_node_port_push_event (SpaNode *node, } static const SpaNode xvsink_node = { - NULL, sizeof (SpaNode), NULL, SPA_NODE_STATE_INIT, @@ -593,7 +592,6 @@ xv_sink_init (const SpaHandleFactory *factory, this->uri.node = spa_id_map_get_id (this->map, SPA_NODE_URI); this->node = xvsink_node; - this->node.handle = handle; this->props[1].props.n_prop_info = PROP_ID_LAST; this->props[1].props.prop_info = prop_info; reset_xv_sink_props (&this->props[1]); |