summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2020-08-01 00:22:28 +0100
committerTim-Philipp Müller <tim@centricular.com>2020-07-31 23:24:02 +0000
commit141062c4d6d5d37a10bd1669f4ccf8ffd64f42f3 (patch)
tree91b8a862a8f21f6147d38b5591ebbdc9563c8a62
parent5ad727f9eee29f385e3515dde7723be9571361a7 (diff)
downloadgstreamer-plugins-base-141062c4d6d5d37a10bd1669f4ccf8ffd64f42f3.tar.gz
examples: compositor: fix build with older GLib versions
Don't use g_hash_table_steal_extended() which was only added in 2.58. Fixes #801 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/772>
-rw-r--r--tests/examples/compositor/signals.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/tests/examples/compositor/signals.c b/tests/examples/compositor/signals.c
index 8aa51c7ef..0075ab055 100644
--- a/tests/examples/compositor/signals.c
+++ b/tests/examples/compositor/signals.c
@@ -35,8 +35,7 @@ check_aggregated_buffer (GstElement * agg, GstPad * pad,
gst_aggregator_peek_next_sample (GST_AGGREGATOR (agg),
GST_AGGREGATOR_PAD (pad));
- g_hash_table_steal_extended (consumed_buffers, pad, NULL,
- (gpointer *) & pad_consumed_buffers);
+ pad_consumed_buffers = g_hash_table_lookup (consumed_buffers, pad);
for (tmp = pad_consumed_buffers; tmp; tmp = tmp->next) {
GstBuffer *consumed_buffer = (GstBuffer *) tmp->data;
@@ -56,6 +55,7 @@ check_aggregated_buffer (GstElement * agg, GstPad * pad,
}
g_list_free_full (pad_consumed_buffers, (GDestroyNotify) gst_buffer_unref);
+ g_hash_table_steal (consumed_buffers, pad);
return TRUE;
}
@@ -73,14 +73,18 @@ pad_buffer_consumed_cb (GstAggregatorPad * pad, GstBuffer * buffer,
GHashTable * consumed_buffers)
{
GList *pad_consumed_buffers;
+ gboolean was_empty;
- g_hash_table_steal_extended (consumed_buffers, pad, NULL,
- (gpointer *) & pad_consumed_buffers);
+ pad_consumed_buffers = g_hash_table_lookup (consumed_buffers, pad);
+
+ was_empty = (pad_consumed_buffers == NULL);
pad_consumed_buffers =
g_list_append (pad_consumed_buffers, gst_buffer_ref (buffer));
- g_hash_table_insert (consumed_buffers, pad, pad_consumed_buffers);
+ /* we know the list's head pointer doesn't change when items get appended */
+ if (was_empty)
+ g_hash_table_insert (consumed_buffers, pad, pad_consumed_buffers);
}
static gboolean