php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /var/www/html/sub/images/sym/root/usr/share/doc/libvpx-devel-1.3.0/html/ |
files >> /var/www/html/sub/images/sym/root/usr/share/doc/libvpx-devel-1.3.0/html/group__decoder.html |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>WebM VP8 Codec SDK: Decoder Algorithm Interface</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="contents"> <h1>Decoder Algorithm Interface<br/> <small> [<a class="el" href="group__codec.html">Common Algorithm Interface</a>]</small> </h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stream properties. <a href="structvpx__codec__stream__info.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structvpx__codec__dec__cfg.html">vpx_codec_dec_cfg</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialization Configurations. <a href="structvpx__codec__dec__cfg.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Modules</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cap__put__frame.html">Frame-Based Decoding Functions</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__cap__put__slice.html">Slice-Based Decoding Functions</a></td></tr> <tr><td colspan="2"><h2>Files</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><a class="el" href="vpx__decoder_8h.html">vpx_decoder.h</a></td></tr> <p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Describes the decoder algorithm interface to applications. </p> <br/></td></tr> </p> <tr><td colspan="2"><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga462b459e7ae13937e1eae1776245db12"></a><!-- doxytag: member="decoder::VPX_DECODER_ABI_VERSION" ref="ga462b459e7ae13937e1eae1776245db12" args="" --> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga462b459e7ae13937e1eae1776245db12">VPX_DECODER_ABI_VERSION</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Current ABI version number. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga9e33b8ee81025d5fc3d01b0975ad5f96">VPX_CODEC_CAP_PUT_SLICE</a> 0x10000</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Decoder capabilities bitfield. <a href="#ga9e33b8ee81025d5fc3d01b0975ad5f96"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga0ef59ca8067ac1dc8c8378042277ccc8">VPX_CODEC_CAP_PUT_FRAME</a> 0x20000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga7825ade982ab85a5583d3d8a669baa3b">VPX_CODEC_CAP_POSTPROC</a> 0x40000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#gac44cd9e4722e1eb32a37c3eaec8d97b9">VPX_CODEC_CAP_ERROR_CONCEALMENT</a> 0x80000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#gae89cbd3e8089803c6f4a67fc67a8c531">VPX_CODEC_CAP_INPUT_FRAGMENTS</a> 0x100000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#gaee3981006b67dfdccad895cbef7936e6">VPX_CODEC_CAP_FRAME_THREADING</a> 0x200000</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialization-time Feature Enabling. <a href="#gaee3981006b67dfdccad895cbef7936e6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga6fe14f30254aff769412b128b29664cc">VPX_CODEC_USE_POSTPROC</a> 0x10000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga520d7005e360202f5844982fa2392581">VPX_CODEC_USE_ERROR_CONCEALMENT</a> 0x20000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga378855a0318396d6e4e585bd3bacbf3f">VPX_CODEC_USE_INPUT_FRAGMENTS</a> 0x40000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga203295122fe98b675f94f4409d4684e0">VPX_CODEC_USE_FRAME_THREADING</a> 0x80000</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga8c2f0b12f1bd4927eb3c68b01eab19d3">vpx_codec_dec_init</a>(ctx, iface, cfg, flags) vpx_codec_dec_init_ver(ctx, iface, cfg, flags, VPX_DECODER_ABI_VERSION)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience macro for <a class="el" href="group__decoder.html#ga26fe82cf8fd697f885935cea53be964f" title="Initialize a decoder instance.">vpx_codec_dec_init_ver()</a>. <a href="#ga8c2f0b12f1bd4927eb3c68b01eab19d3"></a><br/></td></tr> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/> <a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga900420e8f7cb9c1b3070b2ba7d636974">vpx_codec_stream_info_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stream properties. <a href="#ga900420e8f7cb9c1b3070b2ba7d636974"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structvpx__codec__dec__cfg.html">vpx_codec_dec_cfg</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga4a2e808eb43f1e798024b5a409c484f9">vpx_codec_dec_cfg_t</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialization Configurations. <a href="#ga4a2e808eb43f1e798024b5a409c484f9"></a><br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga26fe82cf8fd697f885935cea53be964f">vpx_codec_dec_init_ver</a> (<a class="el" href="structvpx__codec__ctx.html">vpx_codec_ctx_t</a> *ctx, <a class="el" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e">vpx_codec_iface_t</a> *iface, <a class="el" href="structvpx__codec__dec__cfg.html">vpx_codec_dec_cfg_t</a> *cfg, <a class="el" href="group__codec.html#ga3b36d5af89ddc463489fe5bde0a57877">vpx_codec_flags_t</a> flags, int ver)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize a decoder instance. <a href="#ga26fe82cf8fd697f885935cea53be964f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#gadfee4664d644175d5aac1465ef11c4b0">vpx_codec_peek_stream_info</a> (<a class="el" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e">vpx_codec_iface_t</a> *iface, const uint8_t *data, unsigned int data_sz, <a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info_t</a> *si)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse stream info from a buffer. <a href="#gadfee4664d644175d5aac1465ef11c4b0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga552f1044d36a84e8b05ce6902e9ae8c9">vpx_codec_get_stream_info</a> (<a class="el" href="structvpx__codec__ctx.html">vpx_codec_ctx_t</a> *ctx, <a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info_t</a> *si)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return information about the current stream. <a href="#ga552f1044d36a84e8b05ce6902e9ae8c9"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga3441e157a7a69108bca9a069f2ee8e0d">vpx_codec_decode</a> (<a class="el" href="structvpx__codec__ctx.html">vpx_codec_ctx_t</a> *ctx, const uint8_t *data, unsigned int data_sz, void *user_priv, long deadline)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Decode data. <a href="#ga3441e157a7a69108bca9a069f2ee8e0d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structvpx__image.html">vpx_image_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga0e231c3a5ce445fdb2268d741da97500">vpx_codec_get_frame</a> (<a class="el" href="structvpx__codec__ctx.html">vpx_codec_ctx_t</a> *ctx, <a class="el" href="group__codec.html#ga6ea348f76b1f8a1fe50e14db684146c6">vpx_codec_iter_t</a> *iter)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Decoded frames iterator. <a href="#ga0e231c3a5ce445fdb2268d741da97500"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>This abstraction allows applications using this decoder to easily support multiple video formats with minimal code duplication. This section describes the interface common to all decoders. </p> <hr/><h2>Define Documentation</h2> <a class="anchor" id="ga9e33b8ee81025d5fc3d01b0975ad5f96"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_CAP_PUT_SLICE" ref="ga9e33b8ee81025d5fc3d01b0975ad5f96" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_CAP_PUT_SLICE 0x10000</td> </tr> </table> </div> <div class="memdoc"> <p>Decoder capabilities bitfield. </p> <p>Each decoder advertises the capabilities it supports as part of its <a class="el" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e" title="Codec interface structure.">vpx_codec_iface_t</a> interface structure. Capabilities are extra interfaces or functionality, and are not required to be supported by a decoder.</p> <p>The available flags are specified by VPX_CODEC_CAP_* defines. Will issue put_slice callbacks </p> </div> </div> <a class="anchor" id="ga0ef59ca8067ac1dc8c8378042277ccc8"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_CAP_PUT_FRAME" ref="ga0ef59ca8067ac1dc8c8378042277ccc8" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_CAP_PUT_FRAME 0x20000</td> </tr> </table> </div> <div class="memdoc"> <p>Will issue put_frame callbacks </p> </div> </div> <a class="anchor" id="ga7825ade982ab85a5583d3d8a669baa3b"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_CAP_POSTPROC" ref="ga7825ade982ab85a5583d3d8a669baa3b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_CAP_POSTPROC 0x40000</td> </tr> </table> </div> <div class="memdoc"> <p>Can postprocess decoded frame </p> </div> </div> <a class="anchor" id="gac44cd9e4722e1eb32a37c3eaec8d97b9"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_CAP_ERROR_CONCEALMENT" ref="gac44cd9e4722e1eb32a37c3eaec8d97b9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_CAP_ERROR_CONCEALMENT 0x80000</td> </tr> </table> </div> <div class="memdoc"> <p>Can conceal errors due to packet loss </p> </div> </div> <a class="anchor" id="gae89cbd3e8089803c6f4a67fc67a8c531"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_CAP_INPUT_FRAGMENTS" ref="gae89cbd3e8089803c6f4a67fc67a8c531" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_CAP_INPUT_FRAGMENTS 0x100000</td> </tr> </table> </div> <div class="memdoc"> <p>Can receive encoded frames one fragment at a time </p> </div> </div> <a class="anchor" id="gaee3981006b67dfdccad895cbef7936e6"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_CAP_FRAME_THREADING" ref="gaee3981006b67dfdccad895cbef7936e6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_CAP_FRAME_THREADING 0x200000</td> </tr> </table> </div> <div class="memdoc"> <p>Initialization-time Feature Enabling. </p> <p>Certain codec features must be known at initialization time, to allow for proper memory allocation.</p> <p>The available flags are specified by VPX_CODEC_USE_* defines. Can support frame-based multi-threading </p> </div> </div> <a class="anchor" id="ga6fe14f30254aff769412b128b29664cc"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_USE_POSTPROC" ref="ga6fe14f30254aff769412b128b29664cc" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_USE_POSTPROC 0x10000</td> </tr> </table> </div> <div class="memdoc"> <p>Postprocess decoded frame </p> </div> </div> <a class="anchor" id="ga520d7005e360202f5844982fa2392581"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_USE_ERROR_CONCEALMENT" ref="ga520d7005e360202f5844982fa2392581" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_USE_ERROR_CONCEALMENT 0x20000</td> </tr> </table> </div> <div class="memdoc"> <p>Conceal errors in decoded frames </p> </div> </div> <a class="anchor" id="ga378855a0318396d6e4e585bd3bacbf3f"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_USE_INPUT_FRAGMENTS" ref="ga378855a0318396d6e4e585bd3bacbf3f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_USE_INPUT_FRAGMENTS 0x40000</td> </tr> </table> </div> <div class="memdoc"> <p>The input frame should be passed to the decoder one fragment at a time </p> </div> </div> <a class="anchor" id="ga203295122fe98b675f94f4409d4684e0"></a><!-- doxytag: member="vpx_decoder.h::VPX_CODEC_USE_FRAME_THREADING" ref="ga203295122fe98b675f94f4409d4684e0" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define VPX_CODEC_USE_FRAME_THREADING 0x80000</td> </tr> </table> </div> <div class="memdoc"> <p>Enable frame-based multi-threading </p> </div> </div> <a class="anchor" id="ga8c2f0b12f1bd4927eb3c68b01eab19d3"></a><!-- doxytag: member="vpx_decoder.h::vpx_codec_dec_init" ref="ga8c2f0b12f1bd4927eb3c68b01eab19d3" args="(ctx, iface, cfg, flags)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define vpx_codec_dec_init</td> <td>(</td> <td class="paramtype">ctx, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">iface, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">cfg, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">flags </td> <td class="paramname"></td> <td> ) </td> <td> vpx_codec_dec_init_ver(ctx, iface, cfg, flags, VPX_DECODER_ABI_VERSION)</td> </tr> </table> </div> <div class="memdoc"> <p>Convenience macro for <a class="el" href="group__decoder.html#ga26fe82cf8fd697f885935cea53be964f" title="Initialize a decoder instance.">vpx_codec_dec_init_ver()</a>. </p> <p>Ensures the ABI version parameter is properly set. </p> </div> </div> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="ga900420e8f7cb9c1b3070b2ba7d636974"></a><!-- doxytag: member="vpx_decoder.h::vpx_codec_stream_info_t" ref="ga900420e8f7cb9c1b3070b2ba7d636974" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info</a> <a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>Stream properties. </p> <p>This structure is used to query or set properties of the decoded stream. Algorithms may extend this structure with data specific to their bitstream by setting the sz member appropriately. </p> </div> </div> <a class="anchor" id="ga4a2e808eb43f1e798024b5a409c484f9"></a><!-- doxytag: member="vpx_decoder.h::vpx_codec_dec_cfg_t" ref="ga4a2e808eb43f1e798024b5a409c484f9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structvpx__codec__dec__cfg.html">vpx_codec_dec_cfg</a> <a class="el" href="structvpx__codec__dec__cfg.html">vpx_codec_dec_cfg_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>Initialization Configurations. </p> <p>This structure is used to pass init time configuration options to the decoder. alias for struct <a class="el" href="structvpx__codec__dec__cfg.html" title="Initialization Configurations.">vpx_codec_dec_cfg</a> </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga26fe82cf8fd697f885935cea53be964f"></a><!-- doxytag: member="vpx_decoder.h::vpx_codec_dec_init_ver" ref="ga26fe82cf8fd697f885935cea53be964f" args="(vpx_codec_ctx_t *ctx, vpx_codec_iface_t *iface, vpx_codec_dec_cfg_t *cfg, vpx_codec_flags_t flags, int ver)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a> vpx_codec_dec_init_ver </td> <td>(</td> <td class="paramtype"><a class="el" href="structvpx__codec__ctx.html">vpx_codec_ctx_t</a> * </td> <td class="paramname"> <em>ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e">vpx_codec_iface_t</a> * </td> <td class="paramname"> <em>iface</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structvpx__codec__dec__cfg.html">vpx_codec_dec_cfg_t</a> * </td> <td class="paramname"> <em>cfg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__codec.html#ga3b36d5af89ddc463489fe5bde0a57877">vpx_codec_flags_t</a> </td> <td class="paramname"> <em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>ver</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize a decoder instance. </p> <p>Initializes a decoder context using the given interface. Applications should call the vpx_codec_dec_init convenience macro instead of this function directly, to ensure that the ABI version number parameter is properly initialized.</p> <p>If the library was configured with --disable-multithread, this call is not thread safe and should be guarded with a lock if being used in a multithreaded context.</p> <p>In XMA mode (activated by setting VPX_CODEC_USE_XMA in the flags parameter), the storage pointed to by the cfg parameter must be kept readable and stable until all memory maps have been set.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>ctx</em> </td><td>Pointer to this instance's context. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iface</em> </td><td>Pointer to the algorithm interface to use. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>cfg</em> </td><td>Configuration to use, if known. May be NULL. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>flags</em> </td><td>Bitfield of VPX_CODEC_USE_* flags </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>ver</em> </td><td>ABI version number. Must be set to VPX_DECODER_ABI_VERSION </td></tr> </table> </dd> </dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2af1dcde74b1c5ff7b29f31246dfd90986" title="Operation completed without error.">VPX_CODEC_OK</a></em> </td><td>The decoder algorithm initialized. </td></tr> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2a96c6d2600dc0ec25c2cb798e8d2f4760" title="Memory operation failed.">VPX_CODEC_MEM_ERROR</a></em> </td><td>Memory allocation failed. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gadfee4664d644175d5aac1465ef11c4b0"></a><!-- doxytag: member="vpx_decoder.h::vpx_codec_peek_stream_info" ref="gadfee4664d644175d5aac1465ef11c4b0" args="(vpx_codec_iface_t *iface, const uint8_t *data, unsigned int data_sz, vpx_codec_stream_info_t *si)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a> vpx_codec_peek_stream_info </td> <td>(</td> <td class="paramtype"><a class="el" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e">vpx_codec_iface_t</a> * </td> <td class="paramname"> <em>iface</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const uint8_t * </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>data_sz</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info_t</a> * </td> <td class="paramname"> <em>si</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Parse stream info from a buffer. </p> <p>Performs high level parsing of the bitstream. Construction of a decoder context is not necessary. Can be used to determine if the bitstream is of the proper format, and to extract information from the stream.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iface</em> </td><td>Pointer to the algorithm interface </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>data</em> </td><td>Pointer to a block of data to parse </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>data_sz</em> </td><td>Size of the data buffer </td></tr> <tr><td valign="top"><tt>[in,out]</tt> </td><td valign="top"><em>si</em> </td><td>Pointer to stream info to update. The size member <a class="el" href="rfc2119.html#MUST">MUST</a> be properly initialized, but <a class="el" href="rfc2119.html#MAY">MAY</a> be clobbered by the algorithm. This parameter <a class="el" href="rfc2119.html#MAY">MAY</a> be NULL.</td></tr> </table> </dd> </dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2af1dcde74b1c5ff7b29f31246dfd90986" title="Operation completed without error.">VPX_CODEC_OK</a></em> </td><td>Bitstream is parsable and stream information updated </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga552f1044d36a84e8b05ce6902e9ae8c9"></a><!-- doxytag: member="vpx_decoder.h::vpx_codec_get_stream_info" ref="ga552f1044d36a84e8b05ce6902e9ae8c9" args="(vpx_codec_ctx_t *ctx, vpx_codec_stream_info_t *si)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a> vpx_codec_get_stream_info </td> <td>(</td> <td class="paramtype"><a class="el" href="structvpx__codec__ctx.html">vpx_codec_ctx_t</a> * </td> <td class="paramname"> <em>ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info_t</a> * </td> <td class="paramname"> <em>si</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Return information about the current stream. </p> <p>Returns information about the stream that has been parsed during decoding.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>ctx</em> </td><td>Pointer to this instance's context </td></tr> <tr><td valign="top"><tt>[in,out]</tt> </td><td valign="top"><em>si</em> </td><td>Pointer to stream info to update. The size member <a class="el" href="rfc2119.html#MUST">MUST</a> be properly initialized, but <a class="el" href="rfc2119.html#MAY">MAY</a> be clobbered by the algorithm. This parameter <a class="el" href="rfc2119.html#MAY">MAY</a> be NULL.</td></tr> </table> </dd> </dl> <dl><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2af1dcde74b1c5ff7b29f31246dfd90986" title="Operation completed without error.">VPX_CODEC_OK</a></em> </td><td>Bitstream is parsable and stream information updated </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga3441e157a7a69108bca9a069f2ee8e0d"></a><!-- doxytag: member="vpx_decoder.h::vpx_codec_decode" ref="ga3441e157a7a69108bca9a069f2ee8e0d" args="(vpx_codec_ctx_t *ctx, const uint8_t *data, unsigned int data_sz, void *user_priv, long deadline)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a> vpx_codec_decode </td> <td>(</td> <td class="paramtype"><a class="el" href="structvpx__codec__ctx.html">vpx_codec_ctx_t</a> * </td> <td class="paramname"> <em>ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const uint8_t * </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>data_sz</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>user_priv</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long </td> <td class="paramname"> <em>deadline</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Decode data. </p> <p>Processes a buffer of coded data. If the processing results in a new decoded frame becoming available, PUT_SLICE and PUT_FRAME events may be generated, as appropriate. Encoded data <a class="el" href="rfc2119.html#MUST">MUST</a> be passed in DTS (decode time stamp) order. Frames produced will always be in PTS (presentation time stamp) order. If the decoder is configured with VPX_CODEC_USE_INPUT_FRAGMENTS enabled, data and data_sz can contain a fragment of the encoded frame. Fragment #n must contain at least partition #n, but can also contain subsequent partitions (#n+1 - #n+i), and if so, fragments #n+1, .., #n+i must be empty. When no more data is available, this function should be called with NULL as data and 0 as data_sz. The memory passed to this function must be available until the frame has been decoded.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>ctx</em> </td><td>Pointer to this instance's context </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>data</em> </td><td>Pointer to this block of new coded data. If NULL, a VPX_CODEC_CB_PUT_FRAME event is posted for the previously decoded frame. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>data_sz</em> </td><td>Size of the coded data, in bytes. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>user_priv</em> </td><td>Application specific data to associate with this frame. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>deadline</em> </td><td>Soft deadline the decoder should attempt to meet, in us. Set to zero for unlimited.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Returns <a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2af1dcde74b1c5ff7b29f31246dfd90986" title="Operation completed without error.">VPX_CODEC_OK</a> if the coded data was processed completely and future pictures can be decoded without error. Otherwise, see the descriptions of the other error codes in <a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2" title="Algorithm return codes.">vpx_codec_err_t</a> for recoverability capabilities. </dd></dl> </div> </div> <a class="anchor" id="ga0e231c3a5ce445fdb2268d741da97500"></a><!-- doxytag: member="vpx_decoder.h::vpx_codec_get_frame" ref="ga0e231c3a5ce445fdb2268d741da97500" args="(vpx_codec_ctx_t *ctx, vpx_codec_iter_t *iter)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structvpx__image.html">vpx_image_t</a>* vpx_codec_get_frame </td> <td>(</td> <td class="paramtype"><a class="el" href="structvpx__codec__ctx.html">vpx_codec_ctx_t</a> * </td> <td class="paramname"> <em>ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__codec.html#ga6ea348f76b1f8a1fe50e14db684146c6">vpx_codec_iter_t</a> * </td> <td class="paramname"> <em>iter</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Decoded frames iterator. </p> <p>Iterates over a list of the frames available for display. The iterator storage should be initialized to NULL to start the iteration. Iteration is complete when this function returns NULL.</p> <p>The list of available frames becomes valid upon completion of the vpx_codec_decode call, and remains valid until the next call to vpx_codec_decode.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>ctx</em> </td><td>Pointer to this instance's context </td></tr> <tr><td valign="top"><tt>[in,out]</tt> </td><td valign="top"><em>iter</em> </td><td>Iterator storage, initialized to NULL</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Returns a pointer to an image, if one is ready for display. Frames produced will always be in PTS (presentation time stamp) order. </dd></dl> </div> </div> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on 29 Aug 2014 for WebM VP8 Codec SDK by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`