<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MixVideoConfigParamsDec</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="MixVideoConfigParams.html" title="MixVideoConfigParams">
<link rel="next" href="MixVideoConfigParamsDecVC1.html" title="MixVideoConfigParamsDecVC1">
<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="MixVideoConfigParams.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="MixVideoConfigParamsDecVC1.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#MixVideoConfigParamsDec.synopsis" class="shortcut">Top</a>
                 | 
                <a href="#MixVideoConfigParamsDec.description" class="shortcut">Description</a>
                 | 
                <a href="#MixVideoConfigParamsDec.object-hierarchy" class="shortcut">Object Hierarchy</a>
</td></tr>
</table>
<div class="refentry" title="MixVideoConfigParamsDec">
<a name="MixVideoConfigParamsDec"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="MixVideoConfigParamsDec.top_of_page"></a>MixVideoConfigParamsDec</span></h2>
<p>MixVideoConfigParamsDec — MI-X Video Decode Configuration Parameter Base Object</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="MixVideoConfigParamsDec.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
                    <a class="link" href="MixVideoConfigParamsDec.html#MixVideoConfigParamsDec-struct" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a>;
<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> * <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-new" title="mix_videoconfigparamsdec_new ()">mix_videoconfigparamsdec_new</a>  (void);
<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> * <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-ref" title="mix_videoconfigparamsdec_ref ()">mix_videoconfigparamsdec_ref</a>  (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *mix);
#define             <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-unref" title="mix_videoconfigparamsdec_unref()">mix_videoconfigparamsdec_unref</a>      (obj)
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-frame-order-mode" title="mix_videoconfigparamsdec_set_frame_order_mode ()">mix_videoconfigparamsdec_set_frame_order_mode</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixFrameOrderMode" title="enum MixFrameOrderMode">MixFrameOrderMode</a> frame_order_mode);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-frame-order-mode" title="mix_videoconfigparamsdec_get_frame_order_mode ()">mix_videoconfigparamsdec_get_frame_order_mode</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixFrameOrderMode" title="enum MixFrameOrderMode">MixFrameOrderMode</a> *frame_order_mode);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-header" title="mix_videoconfigparamsdec_set_header ()">mix_videoconfigparamsdec_set_header</a> (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixIOVec" title="MixIOVec">MixIOVec</a> *header);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-header" title="mix_videoconfigparamsdec_get_header ()">mix_videoconfigparamsdec_get_header</a> (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixIOVec" title="MixIOVec">MixIOVec</a> **header);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-mime-type" title="mix_videoconfigparamsdec_set_mime_type ()">mix_videoconfigparamsdec_set_mime_type</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         const char *mime_type);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-mime-type" title="mix_videoconfigparamsdec_get_mime_type ()">mix_videoconfigparamsdec_get_mime_type</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         char **mime_type);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-frame-rate" title="mix_videoconfigparamsdec_set_frame_rate ()">mix_videoconfigparamsdec_set_frame_rate</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint frame_rate_num,
                                                         uint frame_rate_denom);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-frame-rate" title="mix_videoconfigparamsdec_get_frame_rate ()">mix_videoconfigparamsdec_get_frame_rate</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *frame_rate_num,
                                                         uint *frame_rate_denom);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-picture-res" title="mix_videoconfigparamsdec_set_picture_res ()">mix_videoconfigparamsdec_set_picture_res</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint picture_width,
                                                         uint picture_height);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-picture-res" title="mix_videoconfigparamsdec_get_picture_res ()">mix_videoconfigparamsdec_get_picture_res</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *picture_width,
                                                         uint *picture_height);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-raw-format" title="mix_videoconfigparamsdec_set_raw_format ()">mix_videoconfigparamsdec_set_raw_format</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint raw_format);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-raw-format" title="mix_videoconfigparamsdec_get_raw_format ()">mix_videoconfigparamsdec_get_raw_format</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *raw_format);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-rate-control" title="mix_videoconfigparamsdec_set_rate_control ()">mix_videoconfigparamsdec_set_rate_control</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint rate_control);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-rate-control" title="mix_videoconfigparamsdec_get_rate_control ()">mix_videoconfigparamsdec_get_rate_control</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *rate_control);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-buffer-pool-size" title="mix_videoconfigparamsdec_set_buffer_pool_size ()">mix_videoconfigparamsdec_set_buffer_pool_size</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint bufpoolsize);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-buffer-pool-size" title="mix_videoconfigparamsdec_get_buffer_pool_size ()">mix_videoconfigparamsdec_get_buffer_pool_size</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *bufpoolsize);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-set-extra-surface-allocation" title="mix_videoconfigparamsdec_set_extra_surface_allocation ()">mix_videoconfigparamsdec_set_extra_surface_allocation</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint extra_surface_allocation);
MIX_RESULT          <a class="link" href="MixVideoConfigParamsDec.html#mix-videoconfigparamsdec-get-extra-surface-allocation" title="mix_videoconfigparamsdec_get_extra_surface_allocation ()">mix_videoconfigparamsdec_get_extra_surface_allocation</a>
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *extra_surface_allocation);
</pre>
</div>
<div class="refsect1" title="Object Hierarchy">
<a name="MixVideoConfigParamsDec.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  MixParams
   +----<a class="link" href="MixVideoConfigParams.html" title="MixVideoConfigParams">MixVideoConfigParams</a>
         +----MixVideoConfigParamsDec
               +----<a class="link" href="MixVideoConfigParamsDecMP42.html" title="MixVideoConfigParamsDecMP42">MixVideoConfigParamsDecMP42</a>
               +----<a class="link" href="MixVideoConfigParamsDecVC1.html" title="MixVideoConfigParamsDecVC1">MixVideoConfigParamsDecVC1</a>
               +----<a class="link" href="MixVideoConfigParamsDecH264.html" title="MixVideoConfigParamsDecH264">MixVideoConfigParamsDecH264</a>
</pre>
</div>
<div class="refsect1" title="Description">
<a name="MixVideoConfigParamsDec.description"></a><h2>Description</h2>
<p>
A base object of MI-X video decode configuration parameter objects.</p>
</div>
<div class="refsect1" title="Details">
<a name="MixVideoConfigParamsDec.details"></a><h2>Details</h2>
<div class="refsect2" title="MixVideoConfigParamsDec">
<a name="MixVideoConfigParamsDec-struct"></a><h3>MixVideoConfigParamsDec</h3>
<pre class="programlisting">typedef struct {
	MixVideoConfigParams parent;

	
	/* Frame re-ordering mode */
	MixFrameOrderMode frame_order_mode;
	
	/* Stream header information, such as 
	 * codec_data in GStreamer pipelines */ 
	MixIOVec header;

	/* Mime type */
	GString * mime_type;
	
	/* Frame rate numerator value */
	uint frame_rate_num;
	
	/* Frame rate denominator value */	
	uint frame_rate_denom;
	
	/* Picture width */
	ulong picture_width;
	
	/* Picture height */
	ulong picture_height;
	
	/* Render target format */
	uint raw_format;
	
	/* Rate control: CBR, VBR, none. Only valid for encoding.
	 * This should be set to none for decoding. */ 
	uint rate_control;

	/* Size of pool of MixBuffers to allocate */
	uint mixbuffer_pool_size;
	
	/* Extra surfaces for MixVideoFrame objects to be allocated */
	uint extra_surface_allocation;
	
	/* Reserved for future use */
	void *reserved1;
	
	/* Reserved for future use */
	void *reserved2;
	
	/* Reserved for future use */
	void *reserved3;
	
	/* Reserved for future use */
	void *reserved4;
} MixVideoConfigParamsDec;
</pre>
<p>
MI-X VideoConfig Parameter object</p>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsdec_new ()">
<a name="mix-videoconfigparamsdec-new"></a><h3>mix_videoconfigparamsdec_new ()</h3>
<pre class="programlisting"><a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> * mix_videoconfigparamsdec_new  (void);</pre>
<p>
Use this method to create new instance of <a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsdec_ref ()">
<a name="mix-videoconfigparamsdec-ref"></a><h3>mix_videoconfigparamsdec_ref ()</h3>
<pre class="programlisting"><a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> * mix_videoconfigparamsdec_ref  (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *mix);</pre>
<p>
Add reference count.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>mix</code></em> :</span></p></td>
<td> object to add reference
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>returns</code></em> :</span></p></td>
<td> the <a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> instance where reference count has been increased.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="mix_videoconfigparamsdec_unref()">
<a name="mix-videoconfigparamsdec-unref"></a><h3>mix_videoconfigparamsdec_unref()</h3>
<pre class="programlisting">#define mix_videoconfigparamsdec_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_videoconfigparamsdec_set_frame_order_mode ()">
<a name="mix-videoconfigparamsdec-set-frame-order-mode"></a><h3>mix_videoconfigparamsdec_set_frame_order_mode ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_frame_order_mode
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixFrameOrderMode" title="enum MixFrameOrderMode">MixFrameOrderMode</a> frame_order_mode);</pre>
<p>
Set frame order mode.</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>frame_order_mode</code></em> :</span></p></td>
<td> Frame re-ordering mode
</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_videoconfigparamsdec_get_frame_order_mode ()">
<a name="mix-videoconfigparamsdec-get-frame-order-mode"></a><h3>mix_videoconfigparamsdec_get_frame_order_mode ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_frame_order_mode
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixFrameOrderMode" title="enum MixFrameOrderMode">MixFrameOrderMode</a> *frame_order_mode);</pre>
<p>
Get frame order mode.</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>frame_order_mode</code></em> :</span></p></td>
<td> pointer to frame re-ordering mode
</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_videoconfigparamsdec_set_header ()">
<a name="mix-videoconfigparamsdec-set-header"></a><h3>mix_videoconfigparamsdec_set_header ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_header (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixIOVec" title="MixIOVec">MixIOVec</a> *header);</pre>
<p>
Set stream header information.</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
<td> Stream header information, such as codec_data in GStreamer pipelines
</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_videoconfigparamsdec_get_header ()">
<a name="mix-videoconfigparamsdec-get-header"></a><h3>mix_videoconfigparamsdec_get_header ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_header (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         <a class="link" href="MixVideo-mixvideodef.html#MixIOVec" title="MixIOVec">MixIOVec</a> **header);</pre>
<p>
Get stream header information.
</p>
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
Caller is responsible to free (*header)-&gt;data field and *header
</div>
<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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>header</code></em> :</span></p></td>
<td> Pointer to pointer of Stream header information
</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_videoconfigparamsdec_set_mime_type ()">
<a name="mix-videoconfigparamsdec-set-mime-type"></a><h3>mix_videoconfigparamsdec_set_mime_type ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_mime_type
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         const char *mime_type);</pre>
<p>
Set stream mime 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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>mime_type</code></em> :</span></p></td>
<td> mime 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_videoconfigparamsdec_get_mime_type ()">
<a name="mix-videoconfigparamsdec-get-mime-type"></a><h3>mix_videoconfigparamsdec_get_mime_type ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_mime_type
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         char **mime_type);</pre>
<p>
Get mime type
</p>
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
Caller is responsible to free *mime_type
</div>
<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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>mime_type</code></em> :</span></p></td>
<td> Pointer to pointer of type char
</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_videoconfigparamsdec_set_frame_rate ()">
<a name="mix-videoconfigparamsdec-set-frame-rate"></a><h3>mix_videoconfigparamsdec_set_frame_rate ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_frame_rate
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint frame_rate_num,
                                                         uint frame_rate_denom);</pre>
<p>
Set frame rate</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>frame_rate_num</code></em> :</span></p></td>
<td> Frame rate numerator value
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>frame_rate_denom</code></em> :</span></p></td>
<td> Frame rate denominator value *  
</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_videoconfigparamsdec_get_frame_rate ()">
<a name="mix-videoconfigparamsdec-get-frame-rate"></a><h3>mix_videoconfigparamsdec_get_frame_rate ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_frame_rate
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *frame_rate_num,
                                                         uint *frame_rate_denom);</pre>
<p>
Get frame rate</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>frame_rate_num</code></em> :</span></p></td>
<td> Frame rate numerator value to be returned 
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>frame_rate_denom</code></em> :</span></p></td>
<td> Frame rate denominator value 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_videoconfigparamsdec_set_picture_res ()">
<a name="mix-videoconfigparamsdec-set-picture-res"></a><h3>mix_videoconfigparamsdec_set_picture_res ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_picture_res
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint picture_width,
                                                         uint picture_height);</pre>
<p>
Set video resolution</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>picture_width</code></em> :</span></p></td>
<td> Picture width 
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>picture_height</code></em> :</span></p></td>
<td> Picture height
</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_videoconfigparamsdec_get_picture_res ()">
<a name="mix-videoconfigparamsdec-get-picture-res"></a><h3>mix_videoconfigparamsdec_get_picture_res ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_picture_res
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *picture_width,
                                                         uint *picture_height);</pre>
<p>
Get video resolution</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>picture_width</code></em> :</span></p></td>
<td> Picture width to be returned
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>picture_height</code></em> :</span></p></td>
<td> Picture height 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_videoconfigparamsdec_set_raw_format ()">
<a name="mix-videoconfigparamsdec-set-raw-format"></a><h3>mix_videoconfigparamsdec_set_raw_format ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_raw_format
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint raw_format);</pre>
<p>
Set Render target format</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>raw_format</code></em> :</span></p></td>
<td> Render target format
</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_videoconfigparamsdec_get_raw_format ()">
<a name="mix-videoconfigparamsdec-get-raw-format"></a><h3>mix_videoconfigparamsdec_get_raw_format ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_raw_format
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *raw_format);</pre>
<p>
Get Render target format</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>raw_format</code></em> :</span></p></td>
<td> Render target format 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_videoconfigparamsdec_set_rate_control ()">
<a name="mix-videoconfigparamsdec-set-rate-control"></a><h3>mix_videoconfigparamsdec_set_rate_control ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_rate_control
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint rate_control);</pre>
<p>
Set 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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>rate_control</code></em> :</span></p></td>
<td> Rate control: CBR, VBR, none. Only valid for encoding. 
               This should be set to none for decoding.
</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_videoconfigparamsdec_get_rate_control ()">
<a name="mix-videoconfigparamsdec-get-rate-control"></a><h3>mix_videoconfigparamsdec_get_rate_control ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_rate_control
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *rate_control);</pre>
<p>
Get 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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>rate_control</code></em> :</span></p></td>
<td> Rate control 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_videoconfigparamsdec_set_buffer_pool_size ()">
<a name="mix-videoconfigparamsdec-set-buffer-pool-size"></a><h3>mix_videoconfigparamsdec_set_buffer_pool_size ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_buffer_pool_size
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint bufpoolsize);</pre>
<p>
Set buffer pool size</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bufpoolsize</code></em> :</span></p></td>
<td> Size of pool of <span class="type">MixBuffers</span> to allocate
</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_videoconfigparamsdec_get_buffer_pool_size ()">
<a name="mix-videoconfigparamsdec-get-buffer-pool-size"></a><h3>mix_videoconfigparamsdec_get_buffer_pool_size ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_buffer_pool_size
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *bufpoolsize);</pre>
<p>
Get buffer pool size</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>bufpoolsize</code></em> :</span></p></td>
<td> Size of pool of <span class="type">MixBuffers</span> 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_videoconfigparamsdec_set_extra_surface_allocation ()">
<a name="mix-videoconfigparamsdec-set-extra-surface-allocation"></a><h3>mix_videoconfigparamsdec_set_extra_surface_allocation ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_set_extra_surface_allocation
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint extra_surface_allocation);</pre>
<p>
Set extra surface allocation</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>extra_surface_allocation</code></em> :</span></p></td>
<td> Extra surfaces for <a class="link" href="MixVideoFrame.html" title="MixVideoFrame"><span class="type">MixVideoFrame</span></a> objects to be allocated
</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_videoconfigparamsdec_get_extra_surface_allocation ()">
<a name="mix-videoconfigparamsdec-get-extra-surface-allocation"></a><h3>mix_videoconfigparamsdec_get_extra_surface_allocation ()</h3>
<pre class="programlisting">MIX_RESULT          mix_videoconfigparamsdec_get_extra_surface_allocation
                                                        (<a class="link" href="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec">MixVideoConfigParamsDec</a> *obj,
                                                         uint *extra_surface_allocation);</pre>
<p>
Get extra surface allocation</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="MixVideoConfigParamsDec.html" title="MixVideoConfigParamsDec"><span class="type">MixVideoConfigParamsDec</span></a> object
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>extra_surface_allocation</code></em> :</span></p></td>
<td> Extra surfaces for <a class="link" href="MixVideoFrame.html" title="MixVideoFrame"><span class="type">MixVideoFrame</span></a> objects to be retuned
</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>
