diff options
author | Erik Walthinsen <omega@temple-baptist.org> | 2001-04-22 01:41:40 +0000 |
---|---|---|
committer | Erik Walthinsen <omega@temple-baptist.org> | 2001-04-22 01:41:40 +0000 |
commit | e5abd7fde71f4a55b086d14c3e0f7b81bfd35d45 (patch) | |
tree | ea58350481595fb3a38cbbd9d20a290a580665c1 | |
parent | 2acfc61ce7224f7a261e868492d4f9da8456d346 (diff) |
completed gst_buffer_copy, added API comments
Original commit message from CVS:
completed gst_buffer_copy, added API comments
-rw-r--r-- | gst/gstbuffer.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index db9c9d4295..8e76f5a68c 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; } |