<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MixVideoConfigParamsEncH264</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<link rel="home" href="index.html" title="Mi-X Video Reference Manual">
<link rel="up" href="ch01.html" title="MI-X Video API">
<link rel="prev" href="MixVideoConfigParamsEnc.html" title="MixVideoConfigParamsEnc">
<link rel="next" href="MixVideoConfigParamsEncMPEG4.html" title="MixVideoConfigParamsEncMPEG4">
<meta name="generator" content="GTK-Doc V1.11 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="ch01.html" title="MI-X Video API">
<link rel="chapter" href="object-tree.html" title="Object Hierarchy">
<link rel="index" href="api-index-full.html" title="API Index">
</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="MixVideoConfigParamsEnc.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch01.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">Mi-X Video Reference Manual</th>
<td><a accesskey="n" href="MixVideoConfigParamsEncMPEG4.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#MixVideoConfigParamsEncH264.synopsis" class="shortcut">Top</a>
                 | 
                <a href="#MixVideoConfigParamsEncH264.description" class="shortcut">Description</a>
                 | 
                <a href="#MixVideoConfigParamsEncH264.object-hierarchy" class="shortcut">Object Hierarchy</a>
</td></tr>
</table>
<div class="refentry" title="MixVideoConfigParamsEncH264">
<a name="MixVideoConfigParamsEncH264"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="MixVideoConfigParamsEncH264.top_of_page"></a>MixVideoConfigParamsEncH264</span></h2>
<p>MixVideoConfigParamsEncH264 — MI-X Video H.264 Eecode Configuration Parameter</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="MixVideoConfigParamsEncH264.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
                    <a class="link" href="MixVideoConfigParamsEncH264.html#MixVideoConfigParamsEncH264-struct" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a>;
<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> * <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-new" title="mix_videoconfigparamsenc_h264_new ()">mix_videoconfigparamsenc_h264_new</a>
                                                        (void);
#define             <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-unref" title="mix_videoconfigparamsenc_h264_unref()">mix_videoconfigparamsenc_h264_unref</a> (obj)
MIX_RESULT          <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-set-bus" title="mix_videoconfigparamsenc_h264_set_bus ()">mix_videoconfigparamsenc_h264_set_bus</a>
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint basic_unit_size);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-get-bus" title="mix_videoconfigparamsenc_h264_get_bus ()">mix_videoconfigparamsenc_h264_get_bus</a>
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint *basic_unit_size);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-set-dlk" title="mix_videoconfigparamsenc_h264_set_dlk ()">mix_videoconfigparamsenc_h264_set_dlk</a>
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint disable_deblocking_filter_idc);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-get-dlk" title="mix_videoconfigparamsenc_h264_get_dlk ()">mix_videoconfigparamsenc_h264_get_dlk</a>
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint *disable_deblocking_filter_idc);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-set-slice-num" title="mix_videoconfigparamsenc_h264_set_slice_num ()">mix_videoconfigparamsenc_h264_set_slice_num</a>
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint slice_num);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-get-slice-num" title="mix_videoconfigparamsenc_h264_get_slice_num ()">mix_videoconfigparamsenc_h264_get_slice_num</a>
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint *slice_num);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-set-delimiter-type" title="mix_videoconfigparamsenc_h264_set_delimiter_type ()">mix_videoconfigparamsenc_h264_set_delimiter_type</a>
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixDelimiterType" title="enum MixDelimiterType">MixDelimiterType</a> delimiter_type);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsEncH264.html#mix-videoconfigparamsenc-h264-get-delimiter-type" title="mix_videoconfigparamsenc_h264_get_delimiter_type ()">mix_videoconfigparamsenc_h264_get_delimiter_type</a>
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixDelimiterType" title="enum MixDelimiterType">MixDelimiterType</a> *delimiter_type);
</pre>
</div>
<div class="refsect1" title="Object Hierarchy">
<a name="MixVideoConfigParamsEncH264.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  MixParams
   +----<a class="link" href="MixVideoConfigParams.html" title="MixVideoConfigParams">MixVideoConfigParams</a>
         +----<a class="link" href="MixVideoConfigParamsEnc.html" title="MixVideoConfigParamsEnc">MixVideoConfigParamsEnc</a>
               +----MixVideoConfigParamsEncH264
</pre>
</div>
<div class="refsect1" title="Description">
<a name="MixVideoConfigParamsEncH264.description"></a><h2>Description</h2>
<p>
MI-X video H.264 eecode configuration parameter objects.</p>
</div>
<div class="refsect1" title="Details">
<a name="MixVideoConfigParamsEncH264.details"></a><h2>Details</h2>
<div class="refsect2" title="MixVideoConfigParamsEncH264">
<a name="MixVideoConfigParamsEncH264-struct"></a><h3>MixVideoConfigParamsEncH264</h3>
<pre class="programlisting">typedef struct {
  MixVideoConfigParamsEnc parent;


  /* TODO: Add H.264 configuration paramters */
  
  /* The basic unit size used by rate control */  
  guint basic_unit_size;
  
  /* Number of slices in one frame */
  guint slice_num;
  
  /* enable/disable deblocking */
  guint8 disable_deblocking_filter_idc;	

  /* delimiter_type */
  MixDelimiterType delimiter_type;
  
  /* Reserved for future use */  
  void *reserved1;
  
  /* Reserved for future use */  
  void *reserved2;
  
  /* Reserved for future use */  
  void *reserved3;
  
  /* Reserved for future use */  
  void *reserved4;
} MixVideoConfigParamsEncH264;
</pre>
<p>
MI-X VideoConfig Parameter object</p>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_new ()">
<a name="mix-videoconfigparamsenc-h264-new"></a><h3>mix_videoconfigparamsenc_h264_new ()</h3>
<pre class="programlisting"><a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> * mix_videoconfigparamsenc_h264_new
                                                        (void);</pre>
<p>
Use this method to create new instance of <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a></p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> A newly allocated instance of <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_unref()">
<a name="mix-videoconfigparamsenc-h264-unref"></a><h3>mix_videoconfigparamsenc_h264_unref()</h3>
<pre class="programlisting">#define mix_videoconfigparamsenc_h264_unref(obj) mix_params_unref(MIX_PARAMS(obj))
</pre>
<p>
Decrement reference count of the object.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> object to unref.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_set_bus ()">
<a name="mix-videoconfigparamsenc-h264-set-bus"></a><h3>mix_videoconfigparamsenc_h264_set_bus ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsenc_h264_set_bus
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint basic_unit_size);</pre>
<p>
Set The basic unit size used by rate control</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>basic_unit_size</code></em> :</span></p></td>
<td> The basic unit size used by rate control  
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> <a class="link" href="MixVideo-mixvideodef.html" title="MI-X Video Data Definitons And Common Error Code">Common Video Error Return Codes</a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_get_bus ()">
<a name="mix-videoconfigparamsenc-h264-get-bus"></a><h3>mix_videoconfigparamsenc_h264_get_bus ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsenc_h264_get_bus
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint *basic_unit_size);</pre>
<p>
Get The basic unit size used by rate control</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>basic_unit_size</code></em> :</span></p></td>
<td> The basic unit size to be returned  
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> <a class="link" href="MixVideo-mixvideodef.html" title="MI-X Video Data Definitons And Common Error Code">Common Video Error Return Codes</a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_set_dlk ()">
<a name="mix-videoconfigparamsenc-h264-set-dlk"></a><h3>mix_videoconfigparamsenc_h264_set_dlk ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsenc_h264_set_dlk
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint disable_deblocking_filter_idc);</pre>
<p>
Set the The flag to enable/disable deblocking</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>disable_deblocking_filter_idc</code></em> :</span></p></td>
<td> The flag to enable/disable deblocking
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> <a class="link" href="MixVideo-mixvideodef.html" title="MI-X Video Data Definitons And Common Error Code">Common Video Error Return Codes</a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_get_dlk ()">
<a name="mix-videoconfigparamsenc-h264-get-dlk"></a><h3>mix_videoconfigparamsenc_h264_get_dlk ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsenc_h264_get_dlk
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint *disable_deblocking_filter_idc);</pre>
<p>
Get the The flag to enable/disable deblocking</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>disable_deblocking_filter_idc</code></em> :</span></p></td>
<td> deblocking flag to be returned
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> <a class="link" href="MixVideo-mixvideodef.html" title="MI-X Video Data Definitons And Common Error Code">Common Video Error Return Codes</a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_set_slice_num ()">
<a name="mix-videoconfigparamsenc-h264-set-slice-num"></a><h3>mix_videoconfigparamsenc_h264_set_slice_num ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsenc_h264_set_slice_num
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint slice_num);</pre>
<p>
Set the Number of slices in one frame</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>slice_num</code></em> :</span></p></td>
<td> Number of slices in one frame
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> <a class="link" href="MixVideo-mixvideodef.html" title="MI-X Video Data Definitons And Common Error Code">Common Video Error Return Codes</a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_get_slice_num ()">
<a name="mix-videoconfigparamsenc-h264-get-slice-num"></a><h3>mix_videoconfigparamsenc_h264_get_slice_num ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsenc_h264_get_slice_num
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         guint *slice_num);</pre>
<p>
Get the Number of slices in one frame</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>slice_num</code></em> :</span></p></td>
<td> Number of slices in one frame to be returned
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> <a class="link" href="MixVideo-mixvideodef.html" title="MI-X Video Data Definitons And Common Error Code">Common Video Error Return Codes</a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_set_delimiter_type ()">
<a name="mix-videoconfigparamsenc-h264-set-delimiter-type"></a><h3>mix_videoconfigparamsenc_h264_set_delimiter_type ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsenc_h264_set_delimiter_type
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixDelimiterType" title="enum MixDelimiterType">MixDelimiterType</a> delimiter_type);</pre>
<p>
Set Delimiter type</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>delimiter_type</code></em> :</span></p></td>
<td> Delimiter type
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> <a class="link" href="MixVideo-mixvideodef.html" title="MI-X Video Data Definitons And Common Error Code">Common Video Error Return Codes</a>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsenc_h264_get_delimiter_type ()">
<a name="mix-videoconfigparamsenc-h264-get-delimiter-type"></a><h3>mix_videoconfigparamsenc_h264_get_delimiter_type ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsenc_h264_get_delimiter_type
                                                        (<a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264">MixVideoConfigParamsEncH264</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixDelimiterType" title="enum MixDelimiterType">MixDelimiterType</a> *delimiter_type);</pre>
<p>
Get Delimiter type</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
<td> <a class="link" href="MixVideoConfigParamsEncH264.html" title="MixVideoConfigParamsEncH264"><span class="type">MixVideoConfigParamsEncH264</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>delimiter_type</code></em> :</span></p></td>
<td> Delimiter type to be returned
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> <a class="link" href="MixVideo-mixvideodef.html" title="MI-X Video Data Definitons And Common Error Code">Common Video Error Return Codes</a>
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.11</div>
</body>
</html>
