gpt4 book ai didi

c++ - Gstreamer 调试插件多个文件的输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:46:59 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何设置 Gstreamer 0.10 登录我正在编写的插件。该插件跨越多个源文件,我不知道如何获取 GST_WARNING、GST_DEBUG 等。从主源文件外部工作的宏。

假设我有两个文件:

plugin1.cpp
plugin1_helper.cpp

plugin1.cpp 是从模板生成的,调试类别定义如下。

GST_DEBUG_CATEGORY_STATIC (gst_plugin1_debug);
#define GST_CAT_DEFAULT gst_plugin1_debug

它在 plugin1_init() 函数内部初始化。

GST_DEBUG_CATEGORY_INIT (gst_plugin1_debug, "plugin1",
0, "Template plugin1");

我看了教程http://docs.gstreamer.com/display/GstSDK/Basic+tutorial+11%3A+Debugging+tools但无法弄清楚如何处理多个文件。

当我从 plugin_helper 中调用 GST_WARNING 时,我得到一个带有 default 调试类别而不是 plugin1 的输出。

如果我尝试为帮助文件创建一个新类别,我会得到以下输出。

(gst-launch-0.10:4422): GStreamer-CRITICAL **: gst_debug_log_valist: assertion 'category != NULL' failed

那么 GST_DEBUG 如何处理一个插件的多个源文件呢?

最佳答案

在发布之前,我似乎不太了解 gstinfo.h。

为了使用多个文件,您需要定义以不同方式跟踪 gstreamer 日志记录组的变量。本教程展示了如何使用静态日志记录变量,该变量仅在其定义的文件中可见。

为了使用多个文件,在 plugin1.cpp 中定义没有静态的日志记录变量:

GST_DEBUG_CATEGORY (gst_slxgpu_debug);
#define GST_CAT_DEFAULT gst_slxgpu_debug

然后在你要使用的文件中,在plugin1_helper.cpp中定义为extern:

GST_DEBUG_CATEGORY_EXTERN (gst_slxgpu_debug);
#define GST_CAT_DEFAULT gst_slxgpu_debug

关于c++ - Gstreamer 调试插件多个文件的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20805166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com