From b792a2af1f6a3fed36bc5dfd4f8a18cac8528def Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sat, 23 Feb 2002 13:57:09 +0000 Subject: [PATCH] Added gst_event_copy Original commit message from CVS: Added gst_event_copy --- gst/gstevent.c | 24 ++++++++++++++++++++++++ gst/gstevent.h | 3 ++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/gst/gstevent.c b/gst/gstevent.c index 338e769..35a878e 100644 --- a/gst/gstevent.c +++ b/gst/gstevent.c @@ -84,6 +84,30 @@ gst_event_new (GstEventType type) } /** + * gst_event_copy: + * @event: The event to copy + * + * Copy the event + * + * Returns: A copy of the event. + */ +GstEvent* +gst_event_copy (GstEvent *event) +{ + GstEvent *copy; + + g_mutex_lock (_gst_event_chunk_lock); + copy = g_mem_chunk_alloc (_gst_event_chunk); + g_mutex_unlock (_gst_event_chunk_lock); + + memcpy (copy, event, sizeof (GstEvent)); + + /* FIXME copy/ref additional fields */ + + return copy; +} + +/** * gst_event_free: * @event: The event to free * diff --git a/gst/gstevent.h b/gst/gstevent.h index fad2978..4c3d72d 100644 --- a/gst/gstevent.h +++ b/gst/gstevent.h @@ -99,7 +99,8 @@ struct _GstEvent { void _gst_event_initialize (void); GstEvent* gst_event_new (GstEventType type); -void gst_event_free (GstEvent* event); +GstEvent* gst_event_copy (GstEvent *event); +void gst_event_free (GstEvent *event); /* seek events */ GstEvent* gst_event_new_seek (GstSeekType type, gint64 offset, gboolean flush); -- 2.7.4