我对Gstreamer非常陌生。我正在编写一个插件来将YUV视频的高度降低2.当我尝试将数据从buf(参数到链)复制到_chain()函数中的另一个缓冲区时,我遇到了分段错误,如下所示:
GstBuffer * buffer;
glong size;
size = GST_BUFFER_SIZE(buf);
buffer = gst_buffer_new();
GST_BUFFER_SIZE(缓冲区)=大小;
GST_BUFFER_MALLOCDATA(缓冲区)= g_malloc(size);
GST_BUFFER_DATA(缓冲区)= GST_BUFFER_MALLOCDATA(缓冲区);
的memcpy(缓冲区buf,大小);
请帮助新手:) 谢谢
答案 0 :(得分:3)
您正在复制缓冲区对象!尝试使用:
buffer = gst_buffer_new_and_alloc(size); memcpy(GST_BUFFER_DATA(buffer),GST_BUFFER_DATA(buf),size);
您也可以
buffer = gst_buffer_copy(buf); GST_BUFFER_SIZE (buffer) = size;