gst中, srcpad buffer探针附加字符串, 下一个插件srcpad buffer探针获取, c实现
时间: 2023-05-11 20:01:42 浏览: 125
可以使用 gst_pad_add_probe() 函数来为 srcpad 添加 buffer 探针,然后在探针函数中使用 gst_buffer_add_meta() 函数来附加字符串。下一个插件的 srcpad 可以使用 gst_pad_add_probe() 函数来获取 buffer 并解析附加的字符串。以下是 C 代码示例:
```
// 为 srcpad 添加 buffer 探针
static GstPadProbeReturn probe_buffer(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) {
GstBuffer *buffer = GST_PAD_PROBE_INFO_BUFFER(info);
GstMeta *meta = gst_buffer_add_meta(buffer, GST_META_TYPE_CUSTOM, NULL);
GstCustomMeta *custom_meta = (GstCustomMeta *)meta;
custom_meta->data = g_strdup("附加的字符串");
return GST_PAD_PROBE_OK;
}
gst_pad_add_probe(srcpad, GST_PAD_PROBE_TYPE_BUFFER, probe_buffer, NULL, NULL);
// 在下一个插件的 srcpad 中获取 buffer 并解析附加的字符串
static GstPadProbeReturn probe_buffer(GstPad *pad, GstPadProbeInfo *info, gpointer user_data) {
GstBuffer *buffer = GST_PAD_PROBE_INFO_BUFFER(info);
GstMeta *meta = gst_buffer_get_meta(buffer, GST_META_TYPE_CUSTOM);
if (meta) {
GstCustomMeta *custom_meta = (GstCustomMeta *)meta;
g_print("附加的字符串:%s\n", custom_meta->data);
}
return GST_PAD_PROBE_OK;
}
gst_pad_add_probe(srcpad, GST_PAD_PROBE_TYPE_BUFFER, probe_buffer, NULL, NULL);
```
注意:这只是一个示例,实际使用时需要根据具体情况进行修改和完善。
阅读全文