Skip to content

info: Reset patterns with set_threshold_from_string

TLDR: Make gst_set_threshold_from_string ("", TRUE) reset all threshold settings, including those set by previous invocations of gst_debug_set_threshold_from_string.

The docs say:

@reset: %TRUE to clear all previously-set debug levels before setting
    new thresholds

What actually happens is it sets the default threshold to ERROR, leaves the patterns in place and calls gst_debug_category_reset_threshold on each category.

In effect, any category that is matched by a pattern gets reset to that threshold if the app changed it by directly invoking gst_debug_category_set_threshold. All other categories are reset to ERROR.

In my opinion this parameter currently has little value, as the same effect can be achieved by including ERROR (without a pattern) in the string, as in "foo*:WARNING,*bar:INFO,ERROR".

What I actually expect it to do is reset all threshold settings, including those set by previous invocations of gst_debug_set_threshold_from_string, starting off with a clean slate for the patterns provided with the call.

Otherwise there is no API to do this, besides:

  • Painfully removing patterns one-by-one via gst_debug_unset_threshold_for_name if you know what the patterns are.
  • Adding a *:FOO pattern to affect all categories, which makes the default threshold useless and practically leaks all the old patterns.

In my opinion this also makes it fit better into the layers of threshold config, which is:

  1. Temporary:
    • gst_debug_category_set_threshold
    • gst_debug_category_reset_threshold
  2. Patterns:
    • gst_debug_set_threshold_for_name
    • gst_debug_unset_threshold_for_name
    • gst_debug_set_threshold_from_string
    • GST_DEBUG
  3. Default:
    • gst_debug_set_default_threshold
Edited by Jan Alexander Steffens

Merge request reports