最近在项目中,想打开GST_LOG_OBJECT所打印的日志,查看代码发现这个宏用的等级是GST_LEVEL_LOG,比debug还低,尝试以下方式

gst_debug_set_default_threshold(6);

发现并没有打开,经过一番鼓捣,增加了个

g_setenv("G_MESSAGES_DEBUG","all",TRUE);

发现可以了

        参考armv7/share/gst-android/ndk-build/gstreamer_android-1.0.c.in,这是编译android gst生成的文件,里面有日志控制的函数

static void
glib_log_handler (const gchar * log_domain, GLogLevelFlags log_level,
    const gchar * message, gpointer user_data)
{
  gchar *string;
  GString *gstring;
  const gchar *domains;
  gint android_log_level;
  gchar *tag;

  if ((log_level & DEFAULT_LEVELS) || (log_level >> G_LOG_LEVEL_USER_SHIFT))
    goto emit;

  domains = g_getenv ("G_MESSAGES_DEBUG");
  if (((log_level & INFO_LEVELS) == 0) ||
      domains == NULL ||
      (strcmp (domains, "all") != 0 && (!log_domain
              || !strstr (domains, log_domain))))
    return;

。。。

其中可以看到依赖于G_MESSAGE_DEBUG的环境变量

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐