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