diff --git a/docs/design/part-tracing.txt b/docs/design/part-tracing.txt index df98f52e4b..2400a360a1 100644 --- a/docs/design/part-tracing.txt +++ b/docs/design/part-tracing.txt @@ -160,7 +160,7 @@ gst_structure_new ("thread-rusage.class", "description", G_TYPE_STRING, "average cpu usage per thread", // flags that help to use the right graph type // flags { aggregated, windowed, cumulative, ... } - "flags", G_TYPE_STRING, "aggregated", + "flags", GST_TYPE_TRACER_VALUE_FLAGS, GST_TRACER_VALUE_FLAGS_AGGREGATED, // value range "min", G_TYPE_UINT, 0, "max", G_TYPE_UINT, 100, diff --git a/gst/gsttracerrecord.h b/gst/gsttracerrecord.h index 2ce3382a4a..9aef0a67b5 100644 --- a/gst/gsttracerrecord.h +++ b/gst/gsttracerrecord.h @@ -67,6 +67,23 @@ typedef enum GST_TRACER_VALUE_SCOPE_PAD } GstTracerValueScope; +/** + * GstTracerValueFlags: + * @GST_TRACER_VALUE_FLAGS_NONE: no flags + * @GST_TRACER_VALUE_FLAGS_OPTIONAL: the value is optional + * @GST_TRACER_VALUE_FLAGS_AGGREGATED: the value is combined since the start of + * tracing + * + * Flag that describe the value. These flags help applications processing the + * logs to understand the values. + */ +typedef enum +{ + GST_TRACER_VALUE_FLAGS_NONE = 0, + GST_TRACER_VALUE_FLAGS_OPTIONAL = (1 << 0), + GST_TRACER_VALUE_FLAGS_AGGREGATED = (1 << 1), +} GstTracerValueFlags; + #ifdef GST_USE_UNSTABLE_API GstTracerRecord * gst_tracer_record_new (GstStructure *spec); diff --git a/plugins/tracers/gstlatency.c b/plugins/tracers/gstlatency.c index bb22fec3ad..72ac1e5896 100644 --- a/plugins/tracers/gstlatency.c +++ b/plugins/tracers/gstlatency.c @@ -216,7 +216,7 @@ gst_latency_tracer_class_init (GstLatencyTracerClass * klass) "type", G_TYPE_GTYPE, G_TYPE_UINT64, "description", G_TYPE_STRING, "time it took for the buffer to go from src to sink ns", - "flags", G_TYPE_STRING, "aggregated", /* TODO: use gflags */ + "flags", GST_TYPE_TRACER_VALUE_FLAGS, GST_TRACER_VALUE_FLAGS_AGGREGATED, "min", G_TYPE_UINT64, G_GUINT64_CONSTANT (0), "max", G_TYPE_UINT64, G_MAXUINT64, NULL), diff --git a/plugins/tracers/gstrusage.c b/plugins/tracers/gstrusage.c index d594363a0a..58f1b51ccc 100644 --- a/plugins/tracers/gstrusage.c +++ b/plugins/tracers/gstrusage.c @@ -296,21 +296,20 @@ gst_rusage_tracer_class_init (GstRUsageTracerClass * klass) "average-cpuload", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT, "description", G_TYPE_STRING, "average cpu usage per thread in ‰", - "flags", G_TYPE_STRING, "aggregated", /* TODO: use gflags */ + "flags", GST_TYPE_TRACER_VALUE_FLAGS, GST_TRACER_VALUE_FLAGS_AGGREGATED, "min", G_TYPE_UINT, 0, "max", G_TYPE_UINT, 1000, NULL), "current-cpuload", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT, "description", G_TYPE_STRING, "current cpu usage per thread in ‰", - "flags", G_TYPE_STRING, "windowed", /* TODO: use gflags */ "min", G_TYPE_UINT, 0, "max", G_TYPE_UINT, 1000, NULL), "time", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT64, "description", G_TYPE_STRING, "time spent in thread in ns", - "flags", G_TYPE_STRING, "aggregated", /* TODO: use gflags */ + "flags", GST_TYPE_TRACER_VALUE_FLAGS, GST_TRACER_VALUE_FLAGS_AGGREGATED, "min", G_TYPE_UINT64, G_GUINT64_CONSTANT (0), "max", G_TYPE_UINT64, G_MAXUINT64, NULL), @@ -327,21 +326,20 @@ gst_rusage_tracer_class_init (GstRUsageTracerClass * klass) "average-cpuload", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT, "description", G_TYPE_STRING, "average cpu usage per process in ‰", - "flags", G_TYPE_STRING, "aggregated", /* TODO: use gflags */ + "flags", GST_TYPE_TRACER_VALUE_FLAGS, GST_TRACER_VALUE_FLAGS_AGGREGATED, "min", G_TYPE_UINT, 0, "max", G_TYPE_UINT, 1000, NULL), "current-cpuload", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT, "description", G_TYPE_STRING, "current cpu usage per process in ‰", - "flags", G_TYPE_STRING, "windowed", /* TODO: use gflags */ "min", G_TYPE_UINT, 0, "max", G_TYPE_UINT, 1000, NULL), "time", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT64, "description", G_TYPE_STRING, "time spent in process in ns", - "flags", G_TYPE_STRING, "aggregated", /* TODO: use gflags */ + "flags", GST_TYPE_TRACER_VALUE_FLAGS, GST_TRACER_VALUE_FLAGS_AGGREGATED, "min", G_TYPE_UINT64, G_GUINT64_CONSTANT (0), "max", G_TYPE_UINT64, G_MAXUINT64, NULL), diff --git a/plugins/tracers/gststats.c b/plugins/tracers/gststats.c index 0a51ca69ae..8ad2f15d30 100644 --- a/plugins/tracers/gststats.c +++ b/plugins/tracers/gststats.c @@ -544,21 +544,18 @@ gst_stats_tracer_class_init (GstStatsTracerClass * klass) "buffer-size", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT, "description", G_TYPE_STRING, "size of buffer in bytes", - "flags", G_TYPE_STRING, "", /* TODO: use gflags */ "min", G_TYPE_UINT, 0, "max", G_TYPE_UINT, G_MAXUINT, NULL), "buffer-ts", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT64, "description", G_TYPE_STRING, "timestamp of the buffer in ns", - "flags", G_TYPE_STRING, "", /* TODO: use gflags */ "min", G_TYPE_UINT64, G_GUINT64_CONSTANT (0), "max", G_TYPE_UINT64, G_MAXUINT64, NULL), "buffer-duration", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_UINT64, "description", G_TYPE_STRING, "duration of the buffer in ns", - "flags", G_TYPE_STRING, "", /* TODO: use gflags */ "min", G_TYPE_UINT64, G_GUINT64_CONSTANT (0), "max", G_TYPE_UINT64, G_MAXUINT64, NULL), @@ -584,7 +581,6 @@ gst_stats_tracer_class_init (GstStatsTracerClass * klass) "name", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_STRING, "description", G_TYPE_STRING, "name of the event", - "flags", G_TYPE_STRING, "", /* TODO: use gflags */ NULL), NULL)); tr_message = gst_tracer_record_new (gst_structure_new ("message.class", @@ -603,7 +599,6 @@ gst_stats_tracer_class_init (GstStatsTracerClass * klass) "name", GST_TYPE_STRUCTURE, gst_structure_new ("value", "type", G_TYPE_GTYPE, G_TYPE_STRING, "description", G_TYPE_STRING, "name of the message", - "flags", G_TYPE_STRING, "", /* TODO: use gflags */ NULL), "structure", GST_TYPE_STRUCTURE, gst_structure_new ("structure", "type", G_TYPE_GTYPE, GST_TYPE_STRUCTURE,