From e5abd7fde71f4a55b086d14c3e0f7b81bfd35d45 Mon Sep 17 00:00:00 2001 From: Erik Walthinsen Date: Sun, 22 Apr 2001 01:41:40 +0000 Subject: [PATCH] completed gst_buffer_copy, added API comments Original commit message from CVS: completed gst_buffer_copy, added API comments --- gst/gstbuffer.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index db9c9d4..8e76f5a 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -398,18 +398,31 @@ gst_buffer_remove_meta (GstBuffer *buffer, GstMeta *meta) +/** + * gst_buffer_copy: + * @buffer: the orignal GstBuffer to make a copy of + * + * Make a full copy of the give buffer, data and all. + * + * Returns: new buffer + */ GstBuffer * -gst_buffer_copy (GstBuffer *buf) +gst_buffer_copy (GstBuffer *buffer) { GstBuffer *newbuf; -/***** FIXME: this is not complete, it doesn't copy everything it should *****/ newbuf = gst_buffer_new(); - GST_BUFFER_SIZE(newbuf) = GST_BUFFER_DATA(buf); - GST_BUFFER_DATA(newbuf) = malloc(GST_BUFFER_SIZE(buf)); - memcpy(GST_BUFFER_DATA(newbuf),GST_BUFFER_DATA(buf),GST_BUFFER_SIZE(buf)); - GST_BUFFER_OFFSET(newbuf) = GST_BUFFER_OFFSET(buf); - GST_BUFFER_TIMESTAMP(newbuf) = GST_BUFFER_TIMESTAMP(buf); + GST_BUFFER_SIZE(newbuf) = GST_BUFFER_SIZE(buffer); + GST_BUFFER_DATA(newbuf) = malloc(GST_BUFFER_SIZE(buffer)); + memcpy(GST_BUFFER_DATA(newbuf),GST_BUFFER_DATA(buf),GST_BUFFER_SIZE(buffer)); + GST_BUFFER_MAXSIZE(newbuf) = GST_BUFFER_MAXSIZE(buffer); + GST_BUFFER_OFFSET(newbuf) = GST_BUFFER_OFFSET(buffer); + GST_BUFFER_TIMESTAMP(newbuf) = GST_BUFFER_TIMESTAMP(buffer); + GST_BUFFER_MAXAGE(newbuf) = GST_BUFFER_MAXAGE(buffer); + + // since we just created a new buffer, so we have no ties to old stuff + GST_BUFFER_PARENT(newbuf) = NULL; + GST_BUFFER_POOL(newbuf) = NULL; return newbuf; } -- 2.7.4