⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a00076.html

📁 mpeg4编解码器
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>Sklmp4 MPEG-4 library: SKL_MP4_ANALYZER class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.4 --><div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div><h1>SKL_MP4_ANALYZER Class Reference</h1><code>#include &lt;skl_mpg4.h&gt;</code><p><a href="a00041.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a2">Wake_Up</a> (<a class="el" href="a00076.html">SKL_MP4_ANALYZER</a> *Previous)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a3">Shut_Down</a> ()=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a4">Analyze</a> (<a class="el" href="a00079.html">SKL_MP4_INFOS</a> *const  Frame)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a5">Analyze_dQ</a> (<a class="el" href="a00079.html">SKL_MP4_INFOS</a> *const  Frame, int For_BVOP)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a6">Post_Coding_Update</a> (const  <a class="el" href="a00079.html">SKL_MP4_INFOS</a> *const  Infos, int Coded_Bits)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a7">Set_Param</a> (const  char *const  Param, int Value)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a8">Set_Param</a> (const  char *const  Param, float Value)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a9">Get_Param</a> (const  char *const  Param, int *Value) const =0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a10">Get_Param</a> (const  char *const  Param, float *Value) const =0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual const  int *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a11">Get_Param</a> (const  char *const  Param) const =0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a00073.html">SKL_MEM_I</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a12">Set_Memory_Manager</a> (<a class="el" href="a00073.html">SKL_MEM_I</a> *Mem=0)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a00073.html">SKL_MEM_I</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00076.html#a13">Get_Mem</a> () const </td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>Base class for analyzing input, making coding decisions and performing bit-rate control. Actually drives the bitstream-coder (<a class="el" href="a00078.html">SKL_MP4_ENC</a>). Setting/Access/Control of internal parameter is granted through the <a class="el" href="a00076.html#a7">Set_Param()</a> and <a class="el" href="a00076.html#a9">Get_Param()</a> functions. See description of this function for details. We encourage you to have a look at the example 'tmp4.cpp', that exercises every possible params of <a class="el" href="a00076.html#a7">Set_Param()</a> through the command-line options.<p><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00078.html">SKL_MP4_ENC</a> </dd></dl><p><hr><h2>Member Function Documentation</h2><a class="anchor" name="a4" doxytag="SKL_MP4_ANALYZER::Analyze" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual int SKL_MP4_ANALYZER::Analyze </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="a00079.html">SKL_MP4_INFOS</a> *const &nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>Frame</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap><code> [pure virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>This function is responsible for motion estimation. It should populate the array of motion vectors MVs[] and the macroblock map *Map with the desired macroblock types.<p><dl compact><dt><b>Returns:</b></dt><dd>return code: 0: intra coding required (I-VOP) 1/2: predictive coding required (1=P or 2=B-VOP) 3: GMC coding requested </dd></dl>    </td>  </tr></table><a class="anchor" name="a5" doxytag="SKL_MP4_ANALYZER::Analyze_dQ" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual void SKL_MP4_ANALYZER::Analyze_dQ </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="a00079.html">SKL_MP4_INFOS</a> *const &nbsp;</td>          <td class="mdname" nowrap> <em>Frame</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>For_BVOP</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"><code> [pure virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>This function handles variable per-macroblocks quantization.<p>New-&gt;Map[].dQ should be filled with dQ hints. This is a separate virtual, not merged with the above <a class="el" href="a00076.html#a4">Analyze()</a> motion estimation, since the coding type can be changed by the encoder inbetween. This impacts the range of allowed dQ values (eg.: for B-VOP).     </td>  </tr></table><a class="anchor" name="a13" doxytag="SKL_MP4_ANALYZER::Get_Mem" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> <a class="el" href="a00073.html">SKL_MEM_I</a>* SKL_MP4_ANALYZER::Get_Mem </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="mdname1" valign="top" nowrap>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap> const<code> [inline]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>This function returns the current memory pool, as set by <a class="el" href="a00076.html#a12">Set_Memory_Manager()</a> <dl compact><dt><b>See also:</b></dt><dd>Get_Memory_Manager() <p><a class="el" href="a00073.html">SKL_MEM_I</a> </dd></dl>    </td>  </tr></table><a class="anchor" name="a11" doxytag="SKL_MP4_ANALYZER::Get_Param" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual const int* SKL_MP4_ANALYZER::Get_Param </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const char *const &nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>Param</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap> const<code> [pure virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Get read-only internal data. Returns NULL is not applicable. This is mainly for internal use.     </td>  </tr></table><a class="anchor" name="a10" doxytag="SKL_MP4_ANALYZER::Get_Param" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual int SKL_MP4_ANALYZER::Get_Param </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const char *const &nbsp;</td>          <td class="mdname" nowrap> <em>Param</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>float *&nbsp;</td>          <td class="mdname" nowrap> <em>Value</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"> const<code> [pure virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Returns the current value of the float parameter described by Param string. <dl compact><dt><b>Returns:</b></dt><dd>0 if parameter is not applicable. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00076.html#a7">Set_Param()</a> </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign=top><em>Param:</em>&nbsp;</td><td>This string can be one of the corresponding ones passed to <a class="el" href="a00076.html#a7">Set_Param()</a>. </td></tr>    <tr><td valign=top><em>Value</em>&nbsp;</td><td>pointer the parameter value. </td></tr>  </table></dl>    </td>  </tr></table><a class="anchor" name="a9" doxytag="SKL_MP4_ANALYZER::Get_Param" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual int SKL_MP4_ANALYZER::Get_Param </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const char *const &nbsp;</td>          <td class="mdname" nowrap> <em>Param</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int *&nbsp;</td>          <td class="mdname" nowrap> <em>Value</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"> const<code> [pure virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Returns the current value of the integer parameter described by Param string. <dl compact><dt><b>Returns:</b></dt><dd>0 if parameter is not applicable. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00076.html#a7">Set_Param()</a> </dd></dl><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign=top><em>Value</em>&nbsp;</td><td></td></tr>    <tr><td valign=top><em>Param</em>&nbsp;</td><td>This string can be one of the corresponding ones passed to <a class="el" href="a00076.html#a7">Set_Param()</a>. In addition, there are some non-settable parameters, whose values can be accessed using the following string: <ul><li>"fcode": Desired typical length of motion vectors (bitstream syntax).<br> </li><li>"version": the version of the core (analyzer)<br> </li></ul></td></tr>    <tr><td valign=top><em>Value</em>&nbsp;</td><td>pointer the parameter value. </td></tr>  </table></dl>    </td>  </tr></table><a class="anchor" name="a6" doxytag="SKL_MP4_ANALYZER::Post_Coding_Update" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> virtual void SKL_MP4_ANALYZER::Post_Coding_Update </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="a00079.html">SKL_MP4_INFOS</a> *const &nbsp;</td>          <td class="mdname" nowrap> <em>Infos</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>Coded_Bits</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"><code> [pure virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Post-coding update (for rate control, e.g.) <dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign=top><em>Infos</em>&nbsp;</td><td>contains informations about the last coded frame </td></tr>    <tr><td valign=top><em>Coded_Bits</em>&nbsp;</td><td>is the number of bits used for coding last frame. </td></tr>  </table></dl>    </td>  </tr></table><a class="anchor" name="a12" doxytag="SKL_MP4_ANALYZER::Set_Memory_Manager" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -