Copying buffer data

Ozhmegov ElijahOzhmegov at gmail.com
Fri Sep 29 12:52:28 UTC 2017


Hi everyone,
   I'm creating a new buffer in my gstreamer's plugins and then I don't
touch that buffer. However, data of old buffer appears in new one. How does
old buffer appear in new one?
Here my C code:

static GstFlowReturn
gst_coder_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
{
  Gstcoder *filter;

  filter = GST_CODER (parent);
  g_print ("%d x %d\n",filter->width,filter->height);
  g_print ("Have data of size %" G_GSIZE_FORMAT" bytes!\n",
gst_buffer_get_size (buf));
    
    
  gint sz = 0;
  if ((sz = gst_buffer_get_size(buf)) != 0)
  {
   * //info stores properties about buffer*
    GstMapInfo info;
    gst_buffer_map (buf, &info, GST_MAP_WRITE);

    *//create template var buffer*
    GstBuffer *buffer = gst_buffer_new_allocate(NULL, sz, NULL);
    GstMapInfo info1;
    gst_buffer_map (buffer, &info1, GST_MAP_WRITE);

   
    gst_buffer_unmap (buf, &info);
    gst_buffer_unref (buf);
    gst_buffer_unmap (buffer, &info1);
        
    return gst_pad_push (filter->srcpad, buffer);
  }
  GST_WARNING ("zero sized buffer");
  return gst_pad_push (filter->srcpad, buf);
}

I'd appreciate any advice.  Thanks




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list