在 GStreamer 1.0 中,'GST_BUFFER_DATA' 被弃用,可以使用 'gst_buffer_extract_dup()' 函数来代替。

'gst_buffer_extract_dup()' 函数用于从缓冲区中提取数据,并返回提取数据的副本。它接受一个 GstBuffer 指针作为参数,并返回一个指向提取数据的新的缓冲区的指针。

下面是一个示例代码,演示如何使用 'gst_buffer_extract_dup()' 来代替 'GST_BUFFER_DATA':

GstBuffer *buffer = <获取到的缓冲区>;

gsize size = gst_buffer_get_size(buffer);
guint8 *data = gst_buffer_extract_dup(buffer, 0, size);

// 使用提取的数据进行处理
// ...

// 释放提取的数据的缓冲区
g_free(data);

在上面的示例中,我们首先使用 'gst_buffer_get_size()' 函数获取缓冲区的大小。然后,我们使用 'gst_buffer_extract_dup()' 函数提取缓冲区中的数据,并将其存储在 'data' 指针中。接下来,我们可以使用提取的数据进行处理,然后使用 'g_free()' 函数释放 'data' 指针。

请注意,'gst_buffer_extract_dup()' 函数返回的数据是提取数据的副本,因此在使用完毕后需要手动释放该数据的缓冲区。

GStreamer 1.0 中 GST_BUFFER_DATA 弃用替代方案:gst_buffer_extract_dup()

原文地址: https://www.cveoy.top/t/topic/deQR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录