blob: 32fe4005214c64711145c5ff5f60c64aa29e403c [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstTracerRecord: GStreamer 1.0 Core Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="gstreamer-support.html" title="GStreamer Core Support">
<link rel="prev" href="GstTracerFactory.html" title="GstTracerFactory">
<link rel="next" href="gstreamer-hierarchy.html" title="Object Hierarchy">
<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#GstTracerRecord.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#GstTracerRecord.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gstreamer-support.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GstTracerFactory.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gstreamer-hierarchy.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GstTracerRecord"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GstTracerRecord.top_of_page"></a>GstTracerRecord</span></h2>
<p>GstTracerRecord — Trace log entry class</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GstTracerRecord.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="GstTracerRecord.html" title="GstTracerRecord"><span class="returnvalue">GstTracerRecord</span></a> *
</td>
<td class="function_name">
<a class="link" href="GstTracerRecord.html#gst-tracer-record-new" title="gst_tracer_record_new ()">gst_tracer_record_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GstTracerRecord.html#gst-tracer-record-log" title="gst_tracer_record_log ()">gst_tracer_record_log</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstTracerRecord.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GstTracerRecord.html#GstTracerRecord-struct" title="GstTracerRecord">GstTracerRecord</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstTracerRecord.html#GstTracerValueFlags" title="enum GstTracerValueFlags">GstTracerValueFlags</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GstTracerRecord.html#GstTracerValueScope" title="enum GstTracerValueScope">GstTracerValueScope</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GstTracerRecord.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
<span class="lineart">╰──</span> <a class="link" href="GstObject.html" title="GstObject">GstObject</a>
<span class="lineart">╰──</span> GstTracerRecord
</pre>
</div>
<div class="refsect1">
<a name="GstTracerRecord.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gst/gst.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GstTracerRecord.description"></a><h2>Description</h2>
<p>Tracing modules will create instances of this class to announce the data they
will log and create a log formatter.</p>
</div>
<div class="refsect1">
<a name="GstTracerRecord.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gst-tracer-record-new"></a><h3>gst_tracer_record_new ()</h3>
<pre class="programlisting"><a class="link" href="GstTracerRecord.html" title="GstTracerRecord"><span class="returnvalue">GstTracerRecord</span></a> *
gst_tracer_record_new (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *firstfield</code></em>,
<em class="parameter"><code>...</code></em>);</pre>
<p>Create a new tracer record. The record instance can be used to efficiently
log entries using <a class="link" href="GstTracerRecord.html#gst-tracer-record-log" title="gst_tracer_record_log ()"><code class="function">gst_tracer_record_log()</code></a>.</p>
<p>The <em class="parameter"><code>name</code></em>
without the ".class" suffix will be used for the log records.
There must be fields for each value that gets logged where the field name is
the value name. The field must be a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> describing the value. The
sub structure must contain a field called 'type' of <a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-GTYPE:CAPS"><code class="literal">G_TYPE_GTYPE</code></a> that
contains the GType of the value. The resulting <a class="link" href="GstTracerRecord.html" title="GstTracerRecord"><span class="type">GstTracerRecord</span></a> will take
ownership of the field structures.</p>
<p>The way to deal with optional values is to log an additional boolean before
the optional field, that if <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> signals that the optional field is valid
and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> signals that the optional field should be ignored. One must still
log a placeholder value for the optional field though. Please also note, that
pointer type values must not be NULL - the underlying serialisation can not
handle that right now.</p>
<div class="note"><p>
Please note that this is still under discussion and subject to change.
</p></div>
<div class="refsect3">
<a name="gst-tracer-record-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>name of new record, must end on ".class".</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>firstfield</p></td>
<td class="parameter_description"><p>name of first field to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>...</p></td>
<td class="parameter_description"><p>additional arguments</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gst-tracer-record-new.returns"></a><h4>Returns</h4>
<p> a new <a class="link" href="GstTracerRecord.html" title="GstTracerRecord"><span class="type">GstTracerRecord</span></a></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gst-tracer-record-log"></a><h3>gst_tracer_record_log ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gst_tracer_record_log (<em class="parameter"><code><a class="link" href="GstTracerRecord.html" title="GstTracerRecord"><span class="type">GstTracerRecord</span></a> *self</code></em>,
<em class="parameter"><code>...</code></em>);</pre>
<p>Serialzes the trace event into the log.</p>
<p>Right now this is using the gstreamer debug log with the level TRACE (7) and
the category "GST_TRACER".</p>
<div class="note"><p>
Please note that this is still under discussion and subject to change.
</p></div>
<div class="refsect3">
<a name="gst-tracer-record-log.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the tracer-record</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>...</p></td>
<td class="parameter_description"><p>the args as described in the spec-</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="GstTracerRecord.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstTracerRecord-struct"></a><h3>GstTracerRecord</h3>
<pre class="programlisting">typedef struct _GstTracerRecord GstTracerRecord;</pre>
</div>
<hr>
<div class="refsect2">
<a name="GstTracerValueFlags"></a><h3>enum GstTracerValueFlags</h3>
<p>Flag that describe the value. These flags help applications processing the
logs to understand the values.</p>
<div class="refsect3">
<a name="GstTracerValueFlags.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-TRACER-VALUE-FLAGS-NONE:CAPS"></a>GST_TRACER_VALUE_FLAGS_NONE</p></td>
<td class="enum_member_description">
<p>no flags</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-TRACER-VALUE-FLAGS-OPTIONAL:CAPS"></a>GST_TRACER_VALUE_FLAGS_OPTIONAL</p></td>
<td class="enum_member_description">
<p>the value is optional. When using this flag
one need to have an additional boolean arg before this value in the
var-args list passed to <a class="link" href="GstTracerRecord.html#gst-tracer-record-log" title="gst_tracer_record_log ()"><code class="function">gst_tracer_record_log()</code></a>.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-TRACER-VALUE-FLAGS-AGGREGATED:CAPS"></a>GST_TRACER_VALUE_FLAGS_AGGREGATED</p></td>
<td class="enum_member_description">
<p>the value is combined since the start of
tracing</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GstTracerValueScope"></a><h3>enum GstTracerValueScope</h3>
<p>Tracing record will contain fields that contain a meassured value or extra
meta-data. One such meta data are values that tell where a measurement was
taken. This enumerating declares to which scope such a meta data field
relates to. If it is e.g. <a class="link" href="GstTracerRecord.html#GST-TRACER-VALUE-SCOPE-PAD:CAPS"><code class="literal">GST_TRACER_VALUE_SCOPE_PAD</code></a>, then each of the log
events may contain values for different <a href="GstPad.html#GstPad-struct"><span class="type">GstPads</span></a>.</p>
<div class="refsect3">
<a name="GstTracerValueScope.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GST-TRACER-VALUE-SCOPE-PROCESS:CAPS"></a>GST_TRACER_VALUE_SCOPE_PROCESS</p></td>
<td class="enum_member_description">
<p>the value is related to the process</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-TRACER-VALUE-SCOPE-THREAD:CAPS"></a>GST_TRACER_VALUE_SCOPE_THREAD</p></td>
<td class="enum_member_description">
<p>the value is related to a thread</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-TRACER-VALUE-SCOPE-ELEMENT:CAPS"></a>GST_TRACER_VALUE_SCOPE_ELEMENT</p></td>
<td class="enum_member_description">
<p>the value is related to an <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a></p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GST-TRACER-VALUE-SCOPE-PAD:CAPS"></a>GST_TRACER_VALUE_SCOPE_PAD</p></td>
<td class="enum_member_description">
<p>the value is related to a <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a></p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="ix04.html#api-index-1.8">1.8</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>