在Gstreamer中将YUV视频帧从一个缓冲器复制到另一个缓冲器



我对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(缓冲区)=大小;

最新更新