?? a00079.html
字號:
<!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_ENC 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 Page</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div><h1>SKL_MP4_ENC Struct Reference</h1><code>#include <skl_mpg4.h></code><p><a href="a00039.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 const <a class="el" href="a00082.html">SKL_MP4_PIC</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a0">Prepare_Next_Frame</a> (int Width, int Height)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a00082.html">SKL_MP4_PIC</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a1">Get_Next_Frame</a> () const =0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a00082.html">SKL_MP4_PIC</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a2">Get_Last_Coded_Frame</a> () const =0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a3">Encode</a> ()=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a4">Finish_Encoding</a> ()=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="a00094.html#a18">SKL_BYTE</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a5">Get_Bits</a> () const =0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual int </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a6">Get_Bits_Length</a> () const =0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a00074.html">SKL_MEM_I</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a7">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 </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a8">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 </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a9">Set_Custom_Matrix</a> (int Intra, const <a class="el" href="a00094.html#a18">SKL_BYTE</a> *M=0)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a00077.html">SKL_MP4_ANALYZER</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a10">Set_Analyzer</a> (<a class="el" href="a00077.html">SKL_MP4_ANALYZER</a> *Analyzer=0)=0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a00077.html">SKL_MP4_ANALYZER</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a11">Get_Analyzer</a> () const =0</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a12">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 class="memItemLeft" nowrap align=right valign=top>virtual int </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#a15">Ioctl</a> (<a class="el" href="a00094.html#a20">SKL_CST_STRING</a> Param)=0</td></tr><tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#b0">SKL_MP4_ENC</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>virtual </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#b1">~SKL_MP4_ENC</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="a00079.html">SKL_MP4_ENC</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#n0">Skl_MP4_New_Encoder</a> ()</td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a00079.html#n1">Skl_MP4_Delete_Encoder</a> (<a class="el" href="a00079.html">SKL_MP4_ENC</a> *)</td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>SKL_MP4_ENC is the main encoding class. It is responsible for the bitstream coding only (that is: enforcing the syntax). The motion estimation is performed by an external module (<a class="el" href="a00077.html">SKL_MP4_ANALYZER</a>), and parameter exchange is done using Get_Param().<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><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00077.html">SKL_MP4_ANALYZER</a>. </dd></dl><p><hr><h2>Constructor & Destructor Documentation</h2><a class="anchor" name="b0" doxytag="SKL_MP4_ENC::SKL_MP4_ENC" ></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_ENC::SKL_MP4_ENC </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>protected constructor. Use <a class="el" href="a00079.html#n0">Skl_MP4_New_Encoder()</a> </td> </tr></table><a class="anchor" name="b1" doxytag="SKL_MP4_ENC::~SKL_MP4_ENC" ></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_ENC::~<a class="el" href="a00079.html">SKL_MP4_ENC</a> </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [protected, virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>protected destructor. use <a class="el" href="a00079.html#n1">Skl_MP4_Delete_Encoder()</a> </td> </tr></table><hr><h2>Member Function Documentation</h2><a class="anchor" name="a3" doxytag="SKL_MP4_ENC::Encode" ></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_ENC::Encode </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [pure virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Encode next input frame, as set up by call to Prepare_Next_Frame. <dl compact><dt><b>Returns:</b></dt><dd>the number of coded bytes available for writting in the buffer is returned. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00079.html#a5">Get_Bits</a>, <a class="el" href="a00079.html#a6">Get_Bits_Length</a>, <a class="el" href="a00079.html#a0">Prepare_Next_Frame</a>. </dd></dl> </td> </tr></table><a class="anchor" name="a4" doxytag="SKL_MP4_ENC::Finish_Encoding" ></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_ENC::Finish_Encoding </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [pure virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Mark the end of sequence in the bitstream. Returns number of coded bytes. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00079.html#a5">Get_Bits</a>, <a class="el" href="a00079.html#a6">Get_Bits_Length</a>. </dd></dl> </td> </tr></table><a class="anchor" name="a11" doxytag="SKL_MP4_ENC::Get_Analyzer" ></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 <a class="el" href="a00077.html">SKL_MP4_ANALYZER</a>* SKL_MP4_ENC::Get_Analyzer </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </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> </td> <td><p>Returns the analyzer currently associated with the encoder. <dl compact><dt><b>See also:</b></dt><dd>Set_analyzer </dd></dl> </td> </tr></table><a class="anchor" name="a5" doxytag="SKL_MP4_ENC::Get_Bits" ></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 <a class="el" href="a00094.html#a18">SKL_BYTE</a>* SKL_MP4_ENC::Get_Bits </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </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> </td> <td><p>Returns the pointer to the coded bytes after last call to <a class="el" href="a00079.html#a3">Encode()</a>. This pointer and its content is only valid until next call to <a class="el" href="a00079.html#a3">Encode()</a>. The number of bytes is available using the <a class="el" href="a00079.html#a6">Get_Bits_Length()</a> member function. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00079.html#a3">Encode</a>, <a class="el" href="a00079.html#a6">Get_Bits_Length</a> </dd></dl> </td> </tr></table><a class="anchor" name="a6" doxytag="SKL_MP4_ENC::Get_Bits_Length" ></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_ENC::Get_Bits_Length </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </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> </td> <td><p>Returns the number of coded bytes after last call to <a class="el" href="a00079.html#a3">Encode()</a>. This value is only valid until next call to <a class="el" href="a00079.html#a3">Encode()</a>. The pointer to these bytes is available using the <a class="el" href="a00079.html#a5">Get_Bits()</a> member function. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00079.html#a3">Encode</a>, <a class="el" href="a00079.html#a5">Get_Bits</a> </dd></dl> </td> </tr></table><a class="anchor" name="a2" doxytag="SKL_MP4_ENC::Get_Last_Coded_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 const <a class="el" href="a00082.html">SKL_MP4_PIC</a>* SKL_MP4_ENC::Get_Last_Coded_Frame </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </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> </td> <td><p>Return the last coded frame, if any. This data is only valid until next call to <a class="el" href="a00079.html#a3">Encode()</a> <b>Warning</b> : beware of the <a class="el" href="a00082.html">SKL_MP4_PIC</a> data layout! <dl compact><dt><b>Returns:</b></dt><dd>Last coded frame. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00082.html">SKL_MP4_PIC</a> </dd></dl> </td> </tr></table><a class="anchor" name="a1" doxytag="SKL_MP4_ENC::Get_Next_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 const <a class="el" href="a00082.html">SKL_MP4_PIC</a>* SKL_MP4_ENC::Get_Next_Frame </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </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> </td> <td><p>Return the last input frame set up by previous call to <a class="el" href="a00079.html#a0">Prepare_Next_Frame()</a>. This data is only valid until next call to <a class="el" href="a00079.html#a3">Encode()</a> <b>Warning</b> : beware of the <a class="el" href="a00082.html">SKL_MP4_PIC</a> data layout! <dl compact><dt><b>Returns:</b></dt><dd>Last available input frame. </dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00082.html">SKL_MP4_PIC</a> </dd></dl> </td> </tr></table><a class="anchor" name="a15" doxytag="SKL_MP4_ENC::Ioctl" ></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_ENC::Ioctl </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="a00094.html#a20">SKL_CST_STRING</a> </td> <td class="mdname1" valign="top" nowrap> <em>Param</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [pure virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -