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

📄 a00078.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_DEC struct 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_DEC Struct Reference</h1><code>#include &lt;skl_mpg4.h&gt;</code><p><a href="a00038.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 int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00078.html#a0">Decode</a> (const  <a class="el" href="a00094.html#a18">SKL_BYTE</a> *Buf, int Len)=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="a00078.html#a1">Decode_MPEG12</a> (const  <a class="el" href="a00094.html#a18">SKL_BYTE</a> *Buf, int Len)=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="a00078.html#a2">Get_Frame_Number</a> () 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="a00078.html#a3">Is_Frame_Ready</a> () const =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="a00078.html#a4">Consume_Frame</a> (<a class="el" href="a00082.html">SKL_MP4_PIC</a> *Pic)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a00074.html">SKL_MEM_I</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00078.html#a5">Set_Memory_Manager</a> (<a class="el" href="a00074.html">SKL_MEM_I</a> *Mem=0)=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="a00078.html#a6">Set_CPU</a> (<a class="el" href="a00101.html#a15">SKL_CPU_FEATURE</a> Cpu=SKL_CPU_DETECT)=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="a00078.html#a7">Set_Slicer</a> (<a class="el" href="a00110.html#a9">SKL_MP4_SLICER</a> Slicer, <a class="el" href="a00094.html#a17">SKL_ANY</a> Slicer_Data=0)=0</td></tr><tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00078.html#b0">SKL_MP4_DEC</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00078.html#b1">~SKL_MP4_DEC</a> ()</td></tr><tr><td colspan=2><br><h2>Friends</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a00078.html">SKL_MP4_DEC</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00078.html#n0">Skl_MP4_New_Decoder</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a00078.html#n1">Skl_MP4_Delete_Decoder</a> (<a class="el" href="a00078.html">SKL_MP4_DEC</a> *)</td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>SKL_MP4_DEC is the main decoding class.<p>All methods are virtual, just like the COM-object paradigm. It eases the dynamic class loading (just map the proxy's symbol from dll, the vtbl will come along). <p><hr><h2>Constructor &amp; Destructor Documentation</h2><a class="anchor" name="b0" doxytag="SKL_MP4_DEC::SKL_MP4_DEC" ></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"> SKL_MP4_DEC::SKL_MP4_DEC </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><code> [protected]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>protected constructor. use <a class="el" href="a00078.html#n0">Skl_MP4_New_Decoder()</a>     </td>  </tr></table><a class="anchor" name="b1" doxytag="SKL_MP4_DEC::~SKL_MP4_DEC" ></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 SKL_MP4_DEC::~<a class="el" href="a00078.html">SKL_MP4_DEC</a> </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><code> [protected, virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>protected destructor. use <a class="el" href="a00078.html#n1">Skl_MP4_Delete_Decoder()</a>     </td>  </tr></table><hr><h2>Member Function Documentation</h2><a class="anchor" name="a4" doxytag="SKL_MP4_DEC::Consume_Frame" ></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_DEC::Consume_Frame </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="a00082.html">SKL_MP4_PIC</a> *&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>Pic</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>Definitively retreive the last decoded frame. The data will remain valid until the next call to <a class="el" href="a00078.html#a0">Decode()</a> or <a class="el" href="a00078.html#a1">Decode_MPEG12()</a>. <b>Warning</b> : beware of the <a class="el" href="a00082.html">SKL_MP4_PIC</a> data layout! <dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign=top><em>Pic</em>&nbsp;</td><td>the structure to be filled with last frame's data. </td></tr>  </table></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00078.html#a0">Decode</a> <p><a class="el" href="a00082.html">SKL_MP4_PIC</a> </dd></dl>    </td>  </tr></table><a class="anchor" name="a0" doxytag="SKL_MP4_DEC::Decode" ></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_DEC::Decode </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="a00094.html#a18">SKL_BYTE</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>Buf</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>Len</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 decodes 'Len' bytes of bitstream pointed to by 'Buf'. It returns the number of bytes consumed from the bitstream. For safety, it is required that the buffer contains at least a full chunk of VOP data (start code 0x000001b6) within it boundary. This is to ensure complete parsing of syntax elements.<p>If the 'Len' argument is 0, the last decoded frame will be removed from the decoder and made available for <a class="el" href="a00078.html#a4">Consume_Frame()</a>. Keep in mind that the decoder has a latency of one frame, so that inbetween incoming B-VOP can be decoded using future prediction. Hence, call with Len=0 should be performed at the end of the bitstream decoding, when you are sure that no frame are left to decode. <p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign=top><em>Buf</em>&nbsp;</td><td>the bitstream's bytes </td></tr>    <tr><td valign=top><em>Len</em>&nbsp;</td><td>the number of bytes available. If equal to zero, the very last residual frame, will be made available. </td></tr>  </table></dl>    </td>  </tr></table><a class="anchor" name="a1" doxytag="SKL_MP4_DEC::Decode_MPEG12" ></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_DEC::Decode_MPEG12 </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const <a class="el" href="a00094.html#a18">SKL_BYTE</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>Buf</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>Len</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 is the equivalent of <a class="el" href="a00078.html#a0">Decode()</a>, for partial MPEG1/2 decoding function. It only supports FRAME pic struct/4:2:0 format. You must call it when you are sure the bitstream is a MPEG1/2 one (no autodetection is available). <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00078.html#a0">Decode</a> </dd></dl>    </td>  </tr></table><a class="anchor" name="a2" doxytag="SKL_MP4_DEC::Get_Frame_Number" ></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_DEC::Get_Frame_Number </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="mdname1" valign="top" nowrap>          </td>

⌨️ 快捷键说明

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