Added gst_event_copy
authorWim Taymans <wim.taymans@gmail.com>
Sat, 23 Feb 2002 13:57:09 +0000 (13:57 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Sat, 23 Feb 2002 13:57:09 +0000 (13:57 +0000)
Original commit message from CVS:
Added gst_event_copy

gst/gstevent.c
gst/gstevent.h

index 338e769..35a878e 100644 (file)
@@ -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
  *
index fad2978..4c3d72d 100644 (file)
@@ -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);