我想更深入地了解GStreamer管道(统计数据,资源使用情况)。我发现这在GStreamer跟踪中是可能的。但是我找不到如何从C API启用和访问这些消息的任何文档。
我假设我可以通过更改C代码中的环境变量(GST_TRACERS)来启用跟踪。但是我找不到任何关于如何从C代码中读取这些消息的信息。GstMessage结构似乎不支持跟踪消息。
有人能把我链接到GStreamer文档,或者GStreamer API调用是检索特定类型的跟踪所必需的吗?将GST_TRACERS环境变量更改为GST_TRACERS="meminfo"还为GStreamer C API调用启用meminfo跟踪器(或者您需要从C API本身显式启用此功能)?
跟踪可以通过GStreamer中的调试API调用来启用。可以使用:gst_debug_set_active(true)
打开调试开关。可以使用:gst_debug_set_default_threshold(GST_LEVEL_TRACE)
(或者您可以使用环境变量:GST_DEBUG=GST_TRACER:7
和GST_TRACERS=rusage;latency;stats
)启用跟踪日志记录。
默认情况下,这些跟踪记录到标准输出。此行为可以通过执行API调用:gst_debug_remove_log_function(gst_debug_log_default);
(参见GST信息)来删除。
要在您自己的方法中获取这些消息,您应该使用函数gst_debug_add_log_function
(参见GST信息日志函数)。