blob: ea09fff013b4113f7f89f1b61cf7b270599eb7a8 [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>GstUtils</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
<link rel="home" href="index.html" title="GStreamer 1.0 Core Reference Manual">
<link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
<link rel="prev" href="gstreamer-GstUriHandler.html" title="GstUriHandler">
<link rel="next" href="gstreamer-GstValue.html" title="GstValue">
<meta name="generator" content="GTK-Doc V1.18 (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="2">
<tr valign="middle">
<td><a accesskey="p" href="gstreamer-GstUriHandler.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer 1.0 Core Reference Manual</th>
<td><a accesskey="n" href="gstreamer-GstValue.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gstreamer-GstUtils.synopsis" class="shortcut">Top</a>
 | 
<a href="#gstreamer-GstUtils.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry">
<a name="gstreamer-GstUtils"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gstreamer-GstUtils.top_of_page"></a>GstUtils</span></h2>
<p>GstUtils — Various utility functions</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gstreamer-GstUtils.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;gst/gst.h&gt;
#define <a class="link" href="gstreamer-GstUtils.html#GST-CALL-PARENT:CAPS" title="GST_CALL_PARENT()">GST_CALL_PARENT</a> (parent_class_cast,
name,
args)
#define <a class="link" href="gstreamer-GstUtils.html#GST-CALL-PARENT-WITH-DEFAULT:CAPS" title="GST_CALL_PARENT_WITH_DEFAULT()">GST_CALL_PARENT_WITH_DEFAULT</a> (parent_class_cast,
name,
args,
def_return)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT8:CAPS" title="GST_READ_UINT8()">GST_READ_UINT8</a> (data)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT16-LE:CAPS" title="GST_READ_UINT16_LE()">GST_READ_UINT16_LE</a> (data)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT16-BE:CAPS" title="GST_READ_UINT16_BE()">GST_READ_UINT16_BE</a> (data)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT24-LE:CAPS" title="GST_READ_UINT24_LE()">GST_READ_UINT24_LE</a> (data)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT24-BE:CAPS" title="GST_READ_UINT24_BE()">GST_READ_UINT24_BE</a> (data)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT32-LE:CAPS" title="GST_READ_UINT32_LE()">GST_READ_UINT32_LE</a> (data)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT32-BE:CAPS" title="GST_READ_UINT32_BE()">GST_READ_UINT32_BE</a> (data)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT64-LE:CAPS" title="GST_READ_UINT64_LE()">GST_READ_UINT64_LE</a> (data)
#define <a class="link" href="gstreamer-GstUtils.html#GST-READ-UINT64-BE:CAPS" title="GST_READ_UINT64_BE()">GST_READ_UINT64_BE</a> (data)
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> <a class="link" href="gstreamer-GstUtils.html#GST-READ-FLOAT-LE:CAPS" title="GST_READ_FLOAT_LE ()">GST_READ_FLOAT_LE</a> (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> <a class="link" href="gstreamer-GstUtils.html#GST-READ-FLOAT-BE:CAPS" title="GST_READ_FLOAT_BE ()">GST_READ_FLOAT_BE</a> (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="gstreamer-GstUtils.html#GST-READ-DOUBLE-LE:CAPS" title="GST_READ_DOUBLE_LE ()">GST_READ_DOUBLE_LE</a> (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="gstreamer-GstUtils.html#GST-READ-DOUBLE-BE:CAPS" title="GST_READ_DOUBLE_BE ()">GST_READ_DOUBLE_BE</a> (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT8:CAPS" title="GST_WRITE_UINT8()">GST_WRITE_UINT8</a> (data,
num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT16-LE:CAPS" title="GST_WRITE_UINT16_LE()">GST_WRITE_UINT16_LE</a> (data,
num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT16-BE:CAPS" title="GST_WRITE_UINT16_BE()">GST_WRITE_UINT16_BE</a> (data,
num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT24-LE:CAPS" title="GST_WRITE_UINT24_LE()">GST_WRITE_UINT24_LE</a> (data,
num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT24-BE:CAPS" title="GST_WRITE_UINT24_BE()">GST_WRITE_UINT24_BE</a> (data,
num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT32-LE:CAPS" title="GST_WRITE_UINT32_LE()">GST_WRITE_UINT32_LE</a> (data,
num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT32-BE:CAPS" title="GST_WRITE_UINT32_BE()">GST_WRITE_UINT32_BE</a> (data,
num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT64-LE:CAPS" title="GST_WRITE_UINT64_LE()">GST_WRITE_UINT64_LE</a> (data,
num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-UINT64-BE:CAPS" title="GST_WRITE_UINT64_BE()">GST_WRITE_UINT64_BE</a> (data,
num)
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-FLOAT-LE:CAPS" title="GST_WRITE_FLOAT_LE ()">GST_WRITE_FLOAT_LE</a> (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-FLOAT-BE:CAPS" title="GST_WRITE_FLOAT_BE ()">GST_WRITE_FLOAT_BE</a> (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-LE:CAPS" title="GST_WRITE_DOUBLE_LE ()">GST_WRITE_DOUBLE_LE</a> (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#GST-WRITE-DOUBLE-BE:CAPS" title="GST_WRITE_DOUBLE_BE ()">GST_WRITE_DOUBLE_BE</a> (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-UP-2:CAPS" title="GST_ROUND_UP_2()">GST_ROUND_UP_2</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-UP-4:CAPS" title="GST_ROUND_UP_4()">GST_ROUND_UP_4</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-UP-8:CAPS" title="GST_ROUND_UP_8()">GST_ROUND_UP_8</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-UP-16:CAPS" title="GST_ROUND_UP_16()">GST_ROUND_UP_16</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-UP-32:CAPS" title="GST_ROUND_UP_32()">GST_ROUND_UP_32</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-UP-64:CAPS" title="GST_ROUND_UP_64()">GST_ROUND_UP_64</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-DOWN-2:CAPS" title="GST_ROUND_DOWN_2()">GST_ROUND_DOWN_2</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-DOWN-4:CAPS" title="GST_ROUND_DOWN_4()">GST_ROUND_DOWN_4</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-DOWN-8:CAPS" title="GST_ROUND_DOWN_8()">GST_ROUND_DOWN_8</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-DOWN-16:CAPS" title="GST_ROUND_DOWN_16()">GST_ROUND_DOWN_16</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-DOWN-32:CAPS" title="GST_ROUND_DOWN_32()">GST_ROUND_DOWN_32</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GST-ROUND-DOWN-64:CAPS" title="GST_ROUND_DOWN_64()">GST_ROUND_DOWN_64</a> (num)
#define <a class="link" href="gstreamer-GstUtils.html#GDOUBLE-FROM-BE:CAPS" title="GDOUBLE_FROM_BE()">GDOUBLE_FROM_BE</a> (val)
#define <a class="link" href="gstreamer-GstUtils.html#GDOUBLE-FROM-LE:CAPS" title="GDOUBLE_FROM_LE()">GDOUBLE_FROM_LE</a> (val)
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> <a class="link" href="gstreamer-GstUtils.html#GDOUBLE-SWAP-LE-BE:CAPS" title="GDOUBLE_SWAP_LE_BE ()">GDOUBLE_SWAP_LE_BE</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> in</code></em>);
#define <a class="link" href="gstreamer-GstUtils.html#GDOUBLE-TO-BE:CAPS" title="GDOUBLE_TO_BE()">GDOUBLE_TO_BE</a> (val)
#define <a class="link" href="gstreamer-GstUtils.html#GDOUBLE-TO-LE:CAPS" title="GDOUBLE_TO_LE()">GDOUBLE_TO_LE</a> (val)
#define <a class="link" href="gstreamer-GstUtils.html#GFLOAT-FROM-BE:CAPS" title="GFLOAT_FROM_BE()">GFLOAT_FROM_BE</a> (val)
#define <a class="link" href="gstreamer-GstUtils.html#GFLOAT-FROM-LE:CAPS" title="GFLOAT_FROM_LE()">GFLOAT_FROM_LE</a> (val)
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> <a class="link" href="gstreamer-GstUtils.html#GFLOAT-SWAP-LE-BE:CAPS" title="GFLOAT_SWAP_LE_BE ()">GFLOAT_SWAP_LE_BE</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> in</code></em>);
#define <a class="link" href="gstreamer-GstUtils.html#GFLOAT-TO-BE:CAPS" title="GFLOAT_TO_BE()">GFLOAT_TO_BE</a> (val)
#define <a class="link" href="gstreamer-GstUtils.html#GFLOAT-TO-LE:CAPS" title="GFLOAT_TO_LE()">GFLOAT_TO_LE</a> (val)
#define <a class="link" href="gstreamer-GstUtils.html#gst-guint64-to-gdouble" title="gst_guint64_to_gdouble()">gst_guint64_to_gdouble</a> (value)
#define <a class="link" href="gstreamer-GstUtils.html#gst-gdouble-to-guint64" title="gst_gdouble_to_guint64()">gst_gdouble_to_guint64</a> (value)
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-dump-mem" title="gst_util_dump_mem ()">gst_util_dump_mem</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *mem</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
<span class="returnvalue">guint64</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale" title="gst_util_uint64_scale ()">gst_util_uint64_scale</a> (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><span class="type">guint64</span> num</code></em>,
<em class="parameter"><code><span class="type">guint64</span> denom</code></em>);
<span class="returnvalue">guint64</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-round" title="gst_util_uint64_scale_round ()">gst_util_uint64_scale_round</a> (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><span class="type">guint64</span> num</code></em>,
<em class="parameter"><code><span class="type">guint64</span> denom</code></em>);
<span class="returnvalue">guint64</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-ceil" title="gst_util_uint64_scale_ceil ()">gst_util_uint64_scale_ceil</a> (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><span class="type">guint64</span> num</code></em>,
<em class="parameter"><code><span class="type">guint64</span> denom</code></em>);
<span class="returnvalue">guint64</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int" title="gst_util_uint64_scale_int ()">gst_util_uint64_scale_int</a> (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);
<span class="returnvalue">guint64</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round" title="gst_util_uint64_scale_int_round ()">gst_util_uint64_scale_int_round</a> (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);
<span class="returnvalue">guint64</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil" title="gst_util_uint64_scale_int_ceil ()">gst_util_uint64_scale_int_ceil</a> (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gstreamer-GstUtils.html#gst-util-greatest-common-divisor" title="gst_util_greatest_common_divisor ()">gst_util_greatest_common_divisor</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b</code></em>);
<span class="returnvalue">gint64</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-greatest-common-divisor-int64" title="gst_util_greatest_common_divisor_int64 ()">gst_util_greatest_common_divisor_int64</a>
(<em class="parameter"><code><span class="type">gint64</span> a</code></em>,
<em class="parameter"><code><span class="type">gint64</span> b</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-fraction-to-double" title="gst_util_fraction_to_double ()">gst_util_fraction_to_double</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *dest</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-double-to-fraction" title="gst_util_double_to_fraction ()">gst_util_double_to_fraction</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> src</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_d</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gstreamer-GstUtils.html#gst-util-fraction-multiply" title="gst_util_fraction_multiply ()">gst_util_fraction_multiply</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *res_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *res_d</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gstreamer-GstUtils.html#gst-util-fraction-add" title="gst_util_fraction_add ()">gst_util_fraction_add</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *res_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *res_d</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gstreamer-GstUtils.html#gst-util-fraction-compare" title="gst_util_fraction_compare ()">gst_util_fraction_compare</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_d</code></em>);
<span class="returnvalue">guint32</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-next" title="gst_util_seqnum_next ()">gst_util_seqnum_next</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">gint32</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-compare" title="gst_util_seqnum_compare ()">gst_util_seqnum_compare</a> (<em class="parameter"><code><span class="type">guint32</span> s1</code></em>,
<em class="parameter"><code><span class="type">guint32</span> s2</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gstreamer-GstUtils.html#gst-util-group-id-next" title="gst_util_group_id_next ()">gst_util_group_id_next</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-set-object-arg" title="gst_util_set_object_arg ()">gst_util_set_object_arg</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstUtils.html#gst-util-set-value-from-string" title="gst_util_set_value_from_string ()">gst_util_set_value_from_string</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value_str</code></em>);
<a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a> <a class="link" href="gstreamer-GstUtils.html#gst-util-get-timestamp" title="gst_util_get_timestamp ()">gst_util_get_timestamp</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
enum <a class="link" href="gstreamer-GstUtils.html#GstSearchMode" title="enum GstSearchMode">GstSearchMode</a>;
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gstreamer-GstUtils.html#gst-util-array-binary-search" title="gst_util_array_binary_search ()">gst_util_array_binary_search</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> array</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num_elements</code></em>,
<em class="parameter"><code><span class="type">gsize</span> element_size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareDataFunc"><span class="type">GCompareDataFunc</span></a> search_func</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstUtils.html#GstSearchMode" title="enum GstSearchMode"><span class="type">GstSearchMode</span></a> mode</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> search_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="gstreamer-GstUtils.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="gstreamer-GstUtils.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GST-CALL-PARENT:CAPS"></a><h3>GST_CALL_PARENT()</h3>
<pre class="programlisting">#define GST_CALL_PARENT(parent_class_cast, name, args)</pre>
<p>
Just call the parent handler. This assumes that there is a variable
named parent_class that points to the (duh!) parent class. Note that
this macro is not to be used with things that return something, use
the _WITH_DEFAULT version for that
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>parent_class_cast</code></em> :</span></p></td>
<td>the name of the class cast macro for the parent type</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>name of the function to call</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>args</code></em> :</span></p></td>
<td>arguments enclosed in '( )'</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-CALL-PARENT-WITH-DEFAULT:CAPS"></a><h3>GST_CALL_PARENT_WITH_DEFAULT()</h3>
<pre class="programlisting">#define GST_CALL_PARENT_WITH_DEFAULT(parent_class_cast, name, args, def_return)</pre>
<p>
Same as <a class="link" href="gstreamer-GstUtils.html#GST-CALL-PARENT:CAPS" title="GST_CALL_PARENT()"><code class="function">GST_CALL_PARENT()</code></a>, but in case there is no implementation, it
evaluates to <em class="parameter"><code>def_return</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>parent_class_cast</code></em> :</span></p></td>
<td>the name of the class cast macro for the parent type</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>name of the function to call</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>args</code></em> :</span></p></td>
<td>arguments enclosed in '( )'</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>def_return</code></em> :</span></p></td>
<td>default result</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT8:CAPS"></a><h3>GST_READ_UINT8()</h3>
<pre class="programlisting">#define GST_READ_UINT8(data) (_GST_GET (data, 0, 8, 0))
</pre>
<p>
Read an 8 bit unsigned integer value from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT16-LE:CAPS"></a><h3>GST_READ_UINT16_LE()</h3>
<pre class="programlisting"># define GST_READ_UINT16_LE(data) _GST_FAST_READ_SWAP (16, data)
</pre>
<p>
Read a 16 bit unsigned integer value in little endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT16-BE:CAPS"></a><h3>GST_READ_UINT16_BE()</h3>
<pre class="programlisting"># define GST_READ_UINT16_BE(data) _GST_FAST_READ (16, data)
</pre>
<p>
Read a 16 bit unsigned integer value in big endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT24-LE:CAPS"></a><h3>GST_READ_UINT24_LE()</h3>
<pre class="programlisting">#define GST_READ_UINT24_LE(data) __gst_slow_read24_le((const guint8 *)(data))
</pre>
<p>
Read a 24 bit unsigned integer value in little endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT24-BE:CAPS"></a><h3>GST_READ_UINT24_BE()</h3>
<pre class="programlisting">#define GST_READ_UINT24_BE(data) __gst_slow_read24_be((const guint8 *)(data))
</pre>
<p>
Read a 24 bit unsigned integer value in big endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT32-LE:CAPS"></a><h3>GST_READ_UINT32_LE()</h3>
<pre class="programlisting"># define GST_READ_UINT32_LE(data) _GST_FAST_READ_SWAP (32, data)
</pre>
<p>
Read a 32 bit unsigned integer value in little endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT32-BE:CAPS"></a><h3>GST_READ_UINT32_BE()</h3>
<pre class="programlisting"># define GST_READ_UINT32_BE(data) _GST_FAST_READ (32, data)
</pre>
<p>
Read a 32 bit unsigned integer value in big endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT64-LE:CAPS"></a><h3>GST_READ_UINT64_LE()</h3>
<pre class="programlisting"># define GST_READ_UINT64_LE(data) _GST_FAST_READ_SWAP (64, data)
</pre>
<p>
Read a 64 bit unsigned integer value in little endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-UINT64-BE:CAPS"></a><h3>GST_READ_UINT64_BE()</h3>
<pre class="programlisting"># define GST_READ_UINT64_BE(data) _GST_FAST_READ (64, data)
</pre>
<p>
Read a 64 bit unsigned integer value in big endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-FLOAT-LE:CAPS"></a><h3>GST_READ_FLOAT_LE ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> GST_READ_FLOAT_LE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
<p>
Read a 32 bit float value in little endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The floating point value read from <em class="parameter"><code>data</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-FLOAT-BE:CAPS"></a><h3>GST_READ_FLOAT_BE ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> GST_READ_FLOAT_BE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
<p>
Read a 32 bit float value in big endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The floating point value read from <em class="parameter"><code>data</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-DOUBLE-LE:CAPS"></a><h3>GST_READ_DOUBLE_LE ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> GST_READ_DOUBLE_LE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
<p>
Read a 64 bit double value in little endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The double-precision floating point value read from <em class="parameter"><code>data</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-READ-DOUBLE-BE:CAPS"></a><h3>GST_READ_DOUBLE_BE ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> GST_READ_DOUBLE_BE (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
<p>
Read a 64 bit double value in big endian format from the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The double-precision floating point value read from <em class="parameter"><code>data</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT8:CAPS"></a><h3>GST_WRITE_UINT8()</h3>
<pre class="programlisting">#define GST_WRITE_UINT8(data, num)</pre>
<p>
Store an 8 bit unsigned integer value into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT16-LE:CAPS"></a><h3>GST_WRITE_UINT16_LE()</h3>
<pre class="programlisting">#define GST_WRITE_UINT16_LE(data, num)</pre>
<p>
Store a 16 bit unsigned integer value in little endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT16-BE:CAPS"></a><h3>GST_WRITE_UINT16_BE()</h3>
<pre class="programlisting">#define GST_WRITE_UINT16_BE(data, num)</pre>
<p>
Store a 16 bit unsigned integer value in big endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT24-LE:CAPS"></a><h3>GST_WRITE_UINT24_LE()</h3>
<pre class="programlisting">#define GST_WRITE_UINT24_LE(data, num)</pre>
<p>
Store a 24 bit unsigned integer value in little endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT24-BE:CAPS"></a><h3>GST_WRITE_UINT24_BE()</h3>
<pre class="programlisting">#define GST_WRITE_UINT24_BE(data, num)</pre>
<p>
Store a 24 bit unsigned integer value in big endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT32-LE:CAPS"></a><h3>GST_WRITE_UINT32_LE()</h3>
<pre class="programlisting">#define GST_WRITE_UINT32_LE(data, num)</pre>
<p>
Store a 32 bit unsigned integer value in little endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT32-BE:CAPS"></a><h3>GST_WRITE_UINT32_BE()</h3>
<pre class="programlisting">#define GST_WRITE_UINT32_BE(data, num)</pre>
<p>
Store a 32 bit unsigned integer value in big endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT64-LE:CAPS"></a><h3>GST_WRITE_UINT64_LE()</h3>
<pre class="programlisting">#define GST_WRITE_UINT64_LE(data, num)</pre>
<p>
Store a 64 bit unsigned integer value in little endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-UINT64-BE:CAPS"></a><h3>GST_WRITE_UINT64_BE()</h3>
<pre class="programlisting">#define GST_WRITE_UINT64_BE(data, num)</pre>
<p>
Store a 64 bit unsigned integer value in big endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-FLOAT-LE:CAPS"></a><h3>GST_WRITE_FLOAT_LE ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> GST_WRITE_FLOAT_LE (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);</pre>
<p>
Store a 32 bit float value in little endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-FLOAT-BE:CAPS"></a><h3>GST_WRITE_FLOAT_BE ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> GST_WRITE_FLOAT_BE (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> num</code></em>);</pre>
<p>
Store a 32 bit float value in big endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-DOUBLE-LE:CAPS"></a><h3>GST_WRITE_DOUBLE_LE ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> GST_WRITE_DOUBLE_LE (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);</pre>
<p>
Store a 64 bit double value in little endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-WRITE-DOUBLE-BE:CAPS"></a><h3>GST_WRITE_DOUBLE_BE ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> GST_WRITE_DOUBLE_BE (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> num</code></em>);</pre>
<p>
Store a 64 bit double value in big endian format into the memory buffer.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
<td>memory location</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>value to store</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-UP-2:CAPS"></a><h3>GST_ROUND_UP_2()</h3>
<pre class="programlisting">#define GST_ROUND_UP_2(num) (((num)+1)&amp;~1)
</pre>
<p>
Rounds an integer value up to the next multiple of 2.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round up</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-UP-4:CAPS"></a><h3>GST_ROUND_UP_4()</h3>
<pre class="programlisting">#define GST_ROUND_UP_4(num) (((num)+3)&amp;~3)
</pre>
<p>
Rounds an integer value up to the next multiple of 4.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round up</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-UP-8:CAPS"></a><h3>GST_ROUND_UP_8()</h3>
<pre class="programlisting">#define GST_ROUND_UP_8(num) (((num)+7)&amp;~7)
</pre>
<p>
Rounds an integer value up to the next multiple of 8.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round up</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-UP-16:CAPS"></a><h3>GST_ROUND_UP_16()</h3>
<pre class="programlisting">#define GST_ROUND_UP_16(num) (((num)+15)&amp;~15)
</pre>
<p>
Rounds an integer value up to the next multiple of 16.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round up</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-UP-32:CAPS"></a><h3>GST_ROUND_UP_32()</h3>
<pre class="programlisting">#define GST_ROUND_UP_32(num) (((num)+31)&amp;~31)
</pre>
<p>
Rounds an integer value up to the next multiple of 32.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round up</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-UP-64:CAPS"></a><h3>GST_ROUND_UP_64()</h3>
<pre class="programlisting">#define GST_ROUND_UP_64(num) (((num)+63)&amp;~63)
</pre>
<p>
Rounds an integer value up to the next multiple of 64.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round up</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-DOWN-2:CAPS"></a><h3>GST_ROUND_DOWN_2()</h3>
<pre class="programlisting">#define GST_ROUND_DOWN_2(num) ((num)&amp;(~1))
</pre>
<p>
Rounds an integer value down to the next multiple of 2.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round down</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-DOWN-4:CAPS"></a><h3>GST_ROUND_DOWN_4()</h3>
<pre class="programlisting">#define GST_ROUND_DOWN_4(num) ((num)&amp;(~3))
</pre>
<p>
Rounds an integer value down to the next multiple of 4.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round down</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-DOWN-8:CAPS"></a><h3>GST_ROUND_DOWN_8()</h3>
<pre class="programlisting">#define GST_ROUND_DOWN_8(num) ((num)&amp;(~7))
</pre>
<p>
Rounds an integer value down to the next multiple of 8.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round down</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-DOWN-16:CAPS"></a><h3>GST_ROUND_DOWN_16()</h3>
<pre class="programlisting">#define GST_ROUND_DOWN_16(num) ((num)&amp;(~15))
</pre>
<p>
Rounds an integer value down to the next multiple of 16.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round down</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-DOWN-32:CAPS"></a><h3>GST_ROUND_DOWN_32()</h3>
<pre class="programlisting">#define GST_ROUND_DOWN_32(num) ((num)&amp;(~31))
</pre>
<p>
Rounds an integer value down to the next multiple of 32.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round down</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GST-ROUND-DOWN-64:CAPS"></a><h3>GST_ROUND_DOWN_64()</h3>
<pre class="programlisting">#define GST_ROUND_DOWN_64(num) ((num)&amp;(~63))
</pre>
<p>
Rounds an integer value down to the next multiple of 64.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>integer value to round down</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GDOUBLE-FROM-BE:CAPS"></a><h3>GDOUBLE_FROM_BE()</h3>
<pre class="programlisting">#define GDOUBLE_FROM_BE(val) (GDOUBLE_TO_BE (val))
</pre>
<p>
Convert 64-bit floating point value (double) from big endian byte order
into native byte order.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>value</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GDOUBLE-FROM-LE:CAPS"></a><h3>GDOUBLE_FROM_LE()</h3>
<pre class="programlisting">#define GDOUBLE_FROM_LE(val) (GDOUBLE_TO_LE (val))
</pre>
<p>
Convert 64-bit floating point value (double) from little endian byte order
into native byte order.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>value</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GDOUBLE-SWAP-LE-BE:CAPS"></a><h3>GDOUBLE_SWAP_LE_BE ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a> GDOUBLE_SWAP_LE_BE (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> in</code></em>);</pre>
<p>
Swap byte order of a 64-bit floating point value (double).
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>in</code></em> :</span></p></td>
<td>input value</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>in</code></em> byte-swapped.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GDOUBLE-TO-BE:CAPS"></a><h3>GDOUBLE_TO_BE()</h3>
<pre class="programlisting">#define GDOUBLE_TO_BE(val) (GDOUBLE_SWAP_LE_BE (val))
</pre>
<p>
Convert 64-bit floating point value (double) from native byte order into
big endian byte order.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>value</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GDOUBLE-TO-LE:CAPS"></a><h3>GDOUBLE_TO_LE()</h3>
<pre class="programlisting">#define GDOUBLE_TO_LE(val) ((gdouble) (val))
</pre>
<p>
Convert 64-bit floating point value (double) from native byte order into
little endian byte order.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>value</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GFLOAT-FROM-BE:CAPS"></a><h3>GFLOAT_FROM_BE()</h3>
<pre class="programlisting">#define GFLOAT_FROM_BE(val) (GFLOAT_TO_BE (val))
</pre>
<p>
Convert 32-bit floating point value (float) from big endian byte order
into native byte order.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>value</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GFLOAT-FROM-LE:CAPS"></a><h3>GFLOAT_FROM_LE()</h3>
<pre class="programlisting">#define GFLOAT_FROM_LE(val) (GFLOAT_TO_LE (val))
</pre>
<p>
Convert 32-bit floating point value (float) from little endian byte order
into native byte order.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>value</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GFLOAT-SWAP-LE-BE:CAPS"></a><h3>GFLOAT_SWAP_LE_BE ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a> GFLOAT_SWAP_LE_BE (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> in</code></em>);</pre>
<p>
Swap byte order of a 32-bit floating point value (float).
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>in</code></em> :</span></p></td>
<td>input value</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>in</code></em> byte-swapped.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GFLOAT-TO-BE:CAPS"></a><h3>GFLOAT_TO_BE()</h3>
<pre class="programlisting">#define GFLOAT_TO_BE(val) (GFLOAT_SWAP_LE_BE (val))
</pre>
<p>
Convert 32-bit floating point value (float) from native byte order into
big endian byte order.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>value</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GFLOAT-TO-LE:CAPS"></a><h3>GFLOAT_TO_LE()</h3>
<pre class="programlisting">#define GFLOAT_TO_LE(val) ((gfloat) (val))
</pre>
<p>
Convert 32-bit floating point value (float) from native byte order into
little endian byte order.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>value</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-guint64-to-gdouble"></a><h3>gst_guint64_to_gdouble()</h3>
<pre class="programlisting">#define gst_guint64_to_gdouble(value) gst_util_guint64_to_gdouble(value)
</pre>
<p>
Convert <em class="parameter"><code>value</code></em> to a gdouble.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>the <span class="type">guint64</span> value to convert</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>value</code></em> converted to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-gdouble-to-guint64"></a><h3>gst_gdouble_to_guint64()</h3>
<pre class="programlisting">#define gst_gdouble_to_guint64(value) gst_util_gdouble_to_guint64(value)
</pre>
<p>
Convert <em class="parameter"><code>value</code></em> to a guint64.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>the <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> value to convert</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>value</code></em> converted to a <span class="type">guint64</span>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-dump-mem"></a><h3>gst_util_dump_mem ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_util_dump_mem (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *mem</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
<p>
Dumps the memory block into a hex representation. Useful for debugging.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>mem</code></em> :</span></p></td>
<td>a pointer to the memory to dump</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
<td>the size of the memory block to dump</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-uint64-scale"></a><h3>gst_util_uint64_scale ()</h3>
<pre class="programlisting"><span class="returnvalue">guint64</span> gst_util_uint64_scale (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><span class="type">guint64</span> num</code></em>,
<em class="parameter"><code><span class="type">guint64</span> denom</code></em>);</pre>
<p>
Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
underflows and without loss of precision.
</p>
<p>
This function can potentially be very slow if val and num are both
greater than G_MAXUINT32.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>the number to scale</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>the numerator of the scale ratio</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>denom</code></em> :</span></p></td>
<td>the denominator of the scale ratio</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>val</code></em> * <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>. In the case of an overflow, this
function returns G_MAXUINT64. If the result is not exactly
representable as an integer it is truncated. See also
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-round" title="gst_util_uint64_scale_round ()"><code class="function">gst_util_uint64_scale_round()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-ceil" title="gst_util_uint64_scale_ceil ()"><code class="function">gst_util_uint64_scale_ceil()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int" title="gst_util_uint64_scale_int ()"><code class="function">gst_util_uint64_scale_int()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round" title="gst_util_uint64_scale_int_round ()"><code class="function">gst_util_uint64_scale_int_round()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil" title="gst_util_uint64_scale_int_ceil ()"><code class="function">gst_util_uint64_scale_int_ceil()</code></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-uint64-scale-round"></a><h3>gst_util_uint64_scale_round ()</h3>
<pre class="programlisting"><span class="returnvalue">guint64</span> gst_util_uint64_scale_round (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><span class="type">guint64</span> num</code></em>,
<em class="parameter"><code><span class="type">guint64</span> denom</code></em>);</pre>
<p>
Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
underflows and without loss of precision.
</p>
<p>
This function can potentially be very slow if val and num are both
greater than G_MAXUINT32.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>the number to scale</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>the numerator of the scale ratio</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>denom</code></em> :</span></p></td>
<td>the denominator of the scale ratio</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>val</code></em> * <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>. In the case of an overflow, this
function returns G_MAXUINT64. If the result is not exactly
representable as an integer, it is rounded to the nearest integer
(half-way cases are rounded up). See also <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale" title="gst_util_uint64_scale ()"><code class="function">gst_util_uint64_scale()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-ceil" title="gst_util_uint64_scale_ceil ()"><code class="function">gst_util_uint64_scale_ceil()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int" title="gst_util_uint64_scale_int ()"><code class="function">gst_util_uint64_scale_int()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round" title="gst_util_uint64_scale_int_round ()"><code class="function">gst_util_uint64_scale_int_round()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil" title="gst_util_uint64_scale_int_ceil ()"><code class="function">gst_util_uint64_scale_int_ceil()</code></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-uint64-scale-ceil"></a><h3>gst_util_uint64_scale_ceil ()</h3>
<pre class="programlisting"><span class="returnvalue">guint64</span> gst_util_uint64_scale_ceil (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><span class="type">guint64</span> num</code></em>,
<em class="parameter"><code><span class="type">guint64</span> denom</code></em>);</pre>
<p>
Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
underflows and without loss of precision.
</p>
<p>
This function can potentially be very slow if val and num are both
greater than G_MAXUINT32.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>the number to scale</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>the numerator of the scale ratio</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>denom</code></em> :</span></p></td>
<td>the denominator of the scale ratio</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>val</code></em> * <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>. In the case of an overflow, this
function returns G_MAXUINT64. If the result is not exactly
representable as an integer, it is rounded up. See also
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale" title="gst_util_uint64_scale ()"><code class="function">gst_util_uint64_scale()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-round" title="gst_util_uint64_scale_round ()"><code class="function">gst_util_uint64_scale_round()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int" title="gst_util_uint64_scale_int ()"><code class="function">gst_util_uint64_scale_int()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round" title="gst_util_uint64_scale_int_round ()"><code class="function">gst_util_uint64_scale_int_round()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil" title="gst_util_uint64_scale_int_ceil ()"><code class="function">gst_util_uint64_scale_int_ceil()</code></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-uint64-scale-int"></a><h3>gst_util_uint64_scale_int ()</h3>
<pre class="programlisting"><span class="returnvalue">guint64</span> gst_util_uint64_scale_int (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);</pre>
<p>
Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
underflows and without loss of precision. <em class="parameter"><code>num</code></em> must be non-negative and
<em class="parameter"><code>denom</code></em> must be positive.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>guint64 (such as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>) to scale.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>numerator of the scale factor.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>denom</code></em> :</span></p></td>
<td>denominator of the scale factor.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>val</code></em> * <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>. In the case of an overflow, this
function returns G_MAXUINT64. If the result is not exactly
representable as an integer, it is truncated. See also
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round" title="gst_util_uint64_scale_int_round ()"><code class="function">gst_util_uint64_scale_int_round()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil" title="gst_util_uint64_scale_int_ceil ()"><code class="function">gst_util_uint64_scale_int_ceil()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale" title="gst_util_uint64_scale ()"><code class="function">gst_util_uint64_scale()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-round" title="gst_util_uint64_scale_round ()"><code class="function">gst_util_uint64_scale_round()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-ceil" title="gst_util_uint64_scale_ceil ()"><code class="function">gst_util_uint64_scale_ceil()</code></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-uint64-scale-int-round"></a><h3>gst_util_uint64_scale_int_round ()</h3>
<pre class="programlisting"><span class="returnvalue">guint64</span> gst_util_uint64_scale_int_round (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);</pre>
<p>
Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
underflows and without loss of precision. <em class="parameter"><code>num</code></em> must be non-negative and
<em class="parameter"><code>denom</code></em> must be positive.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>guint64 (such as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>) to scale.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>numerator of the scale factor.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>denom</code></em> :</span></p></td>
<td>denominator of the scale factor.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>val</code></em> * <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>. In the case of an overflow, this
function returns G_MAXUINT64. If the result is not exactly
representable as an integer, it is rounded to the nearest integer
(half-way cases are rounded up). See also <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int" title="gst_util_uint64_scale_int ()"><code class="function">gst_util_uint64_scale_int()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-ceil" title="gst_util_uint64_scale_int_ceil ()"><code class="function">gst_util_uint64_scale_int_ceil()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale" title="gst_util_uint64_scale ()"><code class="function">gst_util_uint64_scale()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-round" title="gst_util_uint64_scale_round ()"><code class="function">gst_util_uint64_scale_round()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-ceil" title="gst_util_uint64_scale_ceil ()"><code class="function">gst_util_uint64_scale_ceil()</code></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-uint64-scale-int-ceil"></a><h3>gst_util_uint64_scale_int_ceil ()</h3>
<pre class="programlisting"><span class="returnvalue">guint64</span> gst_util_uint64_scale_int_ceil (<em class="parameter"><code><span class="type">guint64</span> val</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> denom</code></em>);</pre>
<p>
Scale <em class="parameter"><code>val</code></em> by the rational number <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>, avoiding overflows and
underflows and without loss of precision. <em class="parameter"><code>num</code></em> must be non-negative and
<em class="parameter"><code>denom</code></em> must be positive.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>val</code></em> :</span></p></td>
<td>guint64 (such as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>) to scale.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
<td>numerator of the scale factor.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>denom</code></em> :</span></p></td>
<td>denominator of the scale factor.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<em class="parameter"><code>val</code></em> * <em class="parameter"><code>num</code></em> / <em class="parameter"><code>denom</code></em>. In the case of an overflow, this
function returns G_MAXUINT64. If the result is not exactly
representable as an integer, it is rounded up. See also
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int" title="gst_util_uint64_scale_int ()"><code class="function">gst_util_uint64_scale_int()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-int-round" title="gst_util_uint64_scale_int_round ()"><code class="function">gst_util_uint64_scale_int_round()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale" title="gst_util_uint64_scale ()"><code class="function">gst_util_uint64_scale()</code></a>, <a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-round" title="gst_util_uint64_scale_round ()"><code class="function">gst_util_uint64_scale_round()</code></a>,
<a class="link" href="gstreamer-GstUtils.html#gst-util-uint64-scale-ceil" title="gst_util_uint64_scale_ceil ()"><code class="function">gst_util_uint64_scale_ceil()</code></a>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-greatest-common-divisor"></a><h3>gst_util_greatest_common_divisor ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_util_greatest_common_divisor (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b</code></em>);</pre>
<p>
Calculates the greatest common divisor of <em class="parameter"><code>a</code></em>
and <em class="parameter"><code>b</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
<td>First value as <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
<td>Second value as <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>Greatest common divisor of <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-greatest-common-divisor-int64"></a><h3>gst_util_greatest_common_divisor_int64 ()</h3>
<pre class="programlisting"><span class="returnvalue">gint64</span> gst_util_greatest_common_divisor_int64
(<em class="parameter"><code><span class="type">gint64</span> a</code></em>,
<em class="parameter"><code><span class="type">gint64</span> b</code></em>);</pre>
<p>
Calculates the greatest common divisor of <em class="parameter"><code>a</code></em>
and <em class="parameter"><code>b</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>a</code></em> :</span></p></td>
<td>First value as <span class="type">gint64</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b</code></em> :</span></p></td>
<td>Second value as <span class="type">gint64</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>Greatest common divisor of <em class="parameter"><code>a</code></em> and <em class="parameter"><code>b</code></em>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-fraction-to-double"></a><h3>gst_util_fraction_to_double ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_util_fraction_to_double (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> src_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *dest</code></em>);</pre>
<p>
Transforms a fraction to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_n</code></em> :</span></p></td>
<td>Fraction numerator as <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>src_d</code></em> :</span></p></td>
<td>Fraction denominator <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest</code></em> :</span></p></td>
<td>pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> for the result. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-double-to-fraction"></a><h3>gst_util_double_to_fraction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_util_double_to_fraction (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> src</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_d</code></em>);</pre>
<p>
Transforms a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> to a fraction and simplifies
the result.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
<td>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> to transform</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_n</code></em> :</span></p></td>
<td>pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> to hold the result numerator. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>dest_d</code></em> :</span></p></td>
<td>pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> to hold the result denominator. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-fraction-multiply"></a><h3>gst_util_fraction_multiply ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_util_fraction_multiply (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *res_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *res_d</code></em>);</pre>
<p>
Multiplies the fractions <em class="parameter"><code>a_n</code></em>/<em class="parameter"><code>a_d</code></em> and <em class="parameter"><code>b_n</code></em>/<em class="parameter"><code>b_d</code></em> and stores
the result in <em class="parameter"><code>res_n</code></em> and <em class="parameter"><code>res_d</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>a_n</code></em> :</span></p></td>
<td>Numerator of first value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>a_d</code></em> :</span></p></td>
<td>Denominator of first value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b_n</code></em> :</span></p></td>
<td>Numerator of second value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b_d</code></em> :</span></p></td>
<td>Denominator of second value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>res_n</code></em> :</span></p></td>
<td>Pointer to <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> to hold the result numerator. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>res_d</code></em> :</span></p></td>
<td>Pointer to <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> to hold the result denominator. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on overflow, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-fraction-add"></a><h3>gst_util_fraction_add ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_util_fraction_add (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *res_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *res_d</code></em>);</pre>
<p>
Adds the fractions <em class="parameter"><code>a_n</code></em>/<em class="parameter"><code>a_d</code></em> and <em class="parameter"><code>b_n</code></em>/<em class="parameter"><code>b_d</code></em> and stores
the result in <em class="parameter"><code>res_n</code></em> and <em class="parameter"><code>res_d</code></em>.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>a_n</code></em> :</span></p></td>
<td>Numerator of first value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>a_d</code></em> :</span></p></td>
<td>Denominator of first value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b_n</code></em> :</span></p></td>
<td>Numerator of second value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b_d</code></em> :</span></p></td>
<td>Denominator of second value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>res_n</code></em> :</span></p></td>
<td>Pointer to <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> to hold the result numerator. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>res_d</code></em> :</span></p></td>
<td>Pointer to <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> to hold the result denominator. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on overflow, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-fraction-compare"></a><h3>gst_util_fraction_compare ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_util_fraction_compare (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> a_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> b_d</code></em>);</pre>
<p>
Compares the fractions <em class="parameter"><code>a_n</code></em>/<em class="parameter"><code>a_d</code></em> and <em class="parameter"><code>b_n</code></em>/<em class="parameter"><code>b_d</code></em> and returns
-1 if a &lt; b, 0 if a = b and 1 if a &gt; b.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>a_n</code></em> :</span></p></td>
<td>Numerator of first value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>a_d</code></em> :</span></p></td>
<td>Denominator of first value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b_n</code></em> :</span></p></td>
<td>Numerator of second value</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>b_d</code></em> :</span></p></td>
<td>Denominator of second value</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>-1 if a &lt; b; 0 if a = b; 1 if a &gt; b.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-seqnum-next"></a><h3>gst_util_seqnum_next ()</h3>
<pre class="programlisting"><span class="returnvalue">guint32</span> gst_util_seqnum_next (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Return a constantly incrementing sequence number.
</p>
<p>
This function is used internally to GStreamer to be able to determine which
events and messages are "the same". For example, elements may set the seqnum
on a segment-done message to be the same as that of the last seek event, to
indicate that event and the message correspond to the same segment.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A constantly incrementing 32-bit unsigned integer, which might
overflow back to 0 at some point. Use <a class="link" href="gstreamer-GstUtils.html#gst-util-seqnum-compare" title="gst_util_seqnum_compare ()"><code class="function">gst_util_seqnum_compare()</code></a> to make sure
you handle wraparound correctly.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-seqnum-compare"></a><h3>gst_util_seqnum_compare ()</h3>
<pre class="programlisting"><span class="returnvalue">gint32</span> gst_util_seqnum_compare (<em class="parameter"><code><span class="type">guint32</span> s1</code></em>,
<em class="parameter"><code><span class="type">guint32</span> s2</code></em>);</pre>
<p>
Compare two sequence numbers, handling wraparound.
</p>
<p>
The current implementation just returns (gint32)(<em class="parameter"><code>s1</code></em> - <em class="parameter"><code>s2</code></em>).
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>s1</code></em> :</span></p></td>
<td>A sequence number.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>s2</code></em> :</span></p></td>
<td>Another sequence number.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A negative number if <em class="parameter"><code>s1</code></em> is before <em class="parameter"><code>s2</code></em>, 0 if they are equal, or a
positive number if <em class="parameter"><code>s1</code></em> is after <em class="parameter"><code>s2</code></em>.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-group-id-next"></a><h3>gst_util_group_id_next ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_util_group_id_next (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Return a constantly incrementing group id.
</p>
<p>
This function is used to generate a new group-id for the
stream-start event.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>A constantly incrementing unsigned integer, which might
overflow back to 0 at some point.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-set-object-arg"></a><h3>gst_util_set_object_arg ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_util_set_object_arg (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *object</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
<p>
Convertes the string value to the type of the objects argument and
sets the argument with it.
</p>
<p>
Note that this function silently returns if <em class="parameter"><code>object</code></em> has no property named
<em class="parameter"><code>name</code></em> or when <em class="parameter"><code>value</code></em> cannot be converted to the type of the property.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>object</code></em> :</span></p></td>
<td>the object to set the argument of</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
<td>the name of the argument to set</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>the string value to set</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-set-value-from-string"></a><h3>gst_util_set_value_from_string ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_util_set_value_from_string (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value_str</code></em>);</pre>
<p>
Converts the string to the type of the value and
sets the value with it.
</p>
<p>
Note that this function is dangerous as it does not return any indication
if the conversion worked or not.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
<td>the value to set. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym> caller-allocates]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>value_str</code></em> :</span></p></td>
<td>the string to get the value from</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-get-timestamp"></a><h3>gst_util_get_timestamp ()</h3>
<pre class="programlisting"><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="returnvalue">GstClockTime</span></a> gst_util_get_timestamp (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Get a timestamp as GstClockTime to be used for interval measurements.
The timestamp should not be interpreted in any other way.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>the timestamp</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstSearchMode"></a><h3>enum GstSearchMode</h3>
<pre class="programlisting">typedef enum {
GST_SEARCH_MODE_EXACT = 0,
GST_SEARCH_MODE_BEFORE,
GST_SEARCH_MODE_AFTER
} GstSearchMode;
</pre>
<p>
The different search modes.
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><a name="GST-SEARCH-MODE-EXACT:CAPS"></a><span class="term"><code class="literal">GST_SEARCH_MODE_EXACT</code></span></p></td>
<td>Only search for exact matches.
</td>
</tr>
<tr>
<td><p><a name="GST-SEARCH-MODE-BEFORE:CAPS"></a><span class="term"><code class="literal">GST_SEARCH_MODE_BEFORE</code></span></p></td>
<td>Search for an exact match or the element just before.
</td>
</tr>
<tr>
<td><p><a name="GST-SEARCH-MODE-AFTER:CAPS"></a><span class="term"><code class="literal">GST_SEARCH_MODE_AFTER</code></span></p></td>
<td>Search for an exact match or the element just after.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-util-array-binary-search"></a><h3>gst_util_array_binary_search ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> gst_util_array_binary_search (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> array</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num_elements</code></em>,
<em class="parameter"><code><span class="type">gsize</span> element_size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GCompareDataFunc"><span class="type">GCompareDataFunc</span></a> search_func</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstUtils.html#GstSearchMode" title="enum GstSearchMode"><span class="type">GstSearchMode</span></a> mode</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> search_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
Searches inside <em class="parameter"><code>array</code></em> for <em class="parameter"><code>search_data</code></em> by using the comparison function
<em class="parameter"><code>search_func</code></em>. <em class="parameter"><code>array</code></em> must be sorted ascending.
</p>
<p>
As <em class="parameter"><code>search_data</code></em> is always passed as second argument to <em class="parameter"><code>search_func</code></em> it's
not required that <em class="parameter"><code>search_data</code></em> has the same type as the array elements.
</p>
<p>
The complexity of this search function is O(log (num_elements)).
</p>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>array</code></em> :</span></p></td>
<td>the sorted input array</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>num_elements</code></em> :</span></p></td>
<td>number of elements in the array</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>element_size</code></em> :</span></p></td>
<td>size of every element in bytes</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>search_func</code></em> :</span></p></td>
<td>function to compare two elements, <em class="parameter"><code>search_data</code></em> will always be passed as second argument. <span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>mode</code></em> :</span></p></td>
<td>search mode that should be used</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>search_data</code></em> :</span></p></td>
<td>element that should be found</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>data to pass to <em class="parameter"><code>search_func</code></em>. <span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The address of the found element or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if nothing was found. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.18</div>
</body>
</html>