在Gstreamer中将YUV视频帧从一个缓冲区复制到另一个缓冲区
我对Gstreamer非常陌生。我正在编写一个插件,将YUV视频的高度降低2。当我尝试将数据从buf(参数到链)复制到_chain()函数中的另一个缓冲区时,出现分段错误,如下所示: GstBuffer*缓冲区 glong大小 大小=GST\u缓冲区大小(buf) buffer=gst_buffer_new() GST_BUFFER_SIZE(BUFFER)=大小 GST_BUFFER_MALLOCDATA(BUFFER)=g_malloc(size) GST_BUFFER_DATA(BUFFER)=GST_BUFFER_MALLOCDATA(BUFFER) memcpy(缓冲区、buf、大小) 请帮助一个新手:)在Gstreamer中将YUV视频帧从一个缓冲区复制到另一个缓冲区,gstreamer,Gstreamer,我对Gstreamer非常陌生。我正在编写一个插件,将YUV视频的高度降低2。当我尝试将数据从buf(参数到链)复制到_chain()函数中的另一个缓冲区时,出现分段错误,如下所示: GstBuffer*缓冲区 glong大小 大小=GST\u缓冲区大小(buf) buffer=gst_buffer_new() GST_BUFFER_SIZE(BUFFER)=大小 GST_BUFFER_MALLOCDATA(BUFFER)=g_malloc(size) GST_BUFFER_DATA(BUFFE
谢谢您正在通过缓冲区对象进行复制!尝试使用: buffer = gst_buffer_new_and_alloc(size); memcpy(GST_BUFFER_DATA(buffer),GST_BUFFER_DATA(buf),size); 缓冲区=gst\u缓冲区\u新建\u和\u分配(大小); memcpy(GST\U缓冲区数据(缓冲区)、GST\U缓冲区数据(buf)、大小); 你也可以这样做 buffer = gst_buffer_copy(buf); GST_BUFFER_SIZE (buffer) = size; 缓冲区=商品及服务税缓冲区副本(buf); GST_BUFFER_SIZE(BUFFER)=大小;
您正在复制缓冲区对象!尝试使用: buffer = gst_buffer_new_and_alloc(size); memcpy(GST_BUFFER_DATA(buffer),GST_BUFFER_DATA(buf),size); 缓冲区=gst\u缓冲区\u新建\u和\u分配(大小); memcpy(GST\U缓冲区数据(缓冲区)、GST\U缓冲区数据(buf)、大小); 你也可以这样做 buffer = gst_buffer_copy(buf); GST_BUFFER_SIZE (buffer) = size; 缓冲区=商品及服务税缓冲区副本(buf); GST_BUFFER_SIZE(BUFFER)=大小;