Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > 6ea2d231c1a30a61c8cfd18d9bb77626 > files > 73

libvpx-devel-1.2.0-1.fc18.i686.rpm

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>WebM VP8 Codec SDK: Decoder Algorithm Interface</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">WebM VP8 Codec SDK
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#files">Files</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Decoder Algorithm Interface<div class="ingroups"><a class="el" href="group__codec.html">Common Algorithm Interface</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__cap__put__frame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cap__put__frame.html">Frame-Based Decoding Functions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__cap__put__slice"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cap__put__slice.html">Slice-Based Decoding Functions</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:vpx__decoder_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vpx__decoder_8h.html">vpx_decoder.h</a></td></tr>
<tr class="memdesc:vpx__decoder_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes the decoder algorithm interface to applications. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvpx__codec__stream__info.html">vpx_codec_stream_info</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream properties.  <a href="structvpx__codec__stream__info.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvpx__codec__dec__cfg.html">vpx_codec_dec_cfg</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization Configurations.  <a href="structvpx__codec__dec__cfg.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gae9d9e73841dd64cb26053738963e7e69"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae9d9e73841dd64cb26053738963e7e69"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>VPX_DECODER_H</b></td></tr>
<tr class="separator:gae9d9e73841dd64cb26053738963e7e69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga462b459e7ae13937e1eae1776245db12"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga462b459e7ae13937e1eae1776245db12"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga462b459e7ae13937e1eae1776245db12">VPX_DECODER_ABI_VERSION</a></td></tr>
<tr class="memdesc:ga462b459e7ae13937e1eae1776245db12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current ABI version number. <br/></td></tr>
<tr class="separator:ga462b459e7ae13937e1eae1776245db12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e33b8ee81025d5fc3d01b0975ad5f96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga9e33b8ee81025d5fc3d01b0975ad5f96">VPX_CODEC_CAP_PUT_SLICE</a>&#160;&#160;&#160;0x10000</td></tr>
<tr class="memdesc:ga9e33b8ee81025d5fc3d01b0975ad5f96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decoder capabilities bitfield.  <a href="#ga9e33b8ee81025d5fc3d01b0975ad5f96"></a><br/></td></tr>
<tr class="separator:ga9e33b8ee81025d5fc3d01b0975ad5f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ef59ca8067ac1dc8c8378042277ccc8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga0ef59ca8067ac1dc8c8378042277ccc8">VPX_CODEC_CAP_PUT_FRAME</a>&#160;&#160;&#160;0x20000</td></tr>
<tr class="separator:ga0ef59ca8067ac1dc8c8378042277ccc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7825ade982ab85a5583d3d8a669baa3b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga7825ade982ab85a5583d3d8a669baa3b">VPX_CODEC_CAP_POSTPROC</a>&#160;&#160;&#160;0x40000</td></tr>
<tr class="separator:ga7825ade982ab85a5583d3d8a669baa3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac44cd9e4722e1eb32a37c3eaec8d97b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#gac44cd9e4722e1eb32a37c3eaec8d97b9">VPX_CODEC_CAP_ERROR_CONCEALMENT</a>&#160;&#160;&#160;0x80000</td></tr>
<tr class="separator:gac44cd9e4722e1eb32a37c3eaec8d97b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae89cbd3e8089803c6f4a67fc67a8c531"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#gae89cbd3e8089803c6f4a67fc67a8c531">VPX_CODEC_CAP_INPUT_FRAGMENTS</a>&#160;&#160;&#160;0x100000</td></tr>
<tr class="separator:gae89cbd3e8089803c6f4a67fc67a8c531"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6fe14f30254aff769412b128b29664cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga6fe14f30254aff769412b128b29664cc">VPX_CODEC_USE_POSTPROC</a>&#160;&#160;&#160;0x10000</td></tr>
<tr class="memdesc:ga6fe14f30254aff769412b128b29664cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization-time Feature Enabling.  <a href="#ga6fe14f30254aff769412b128b29664cc"></a><br/></td></tr>
<tr class="separator:ga6fe14f30254aff769412b128b29664cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga520d7005e360202f5844982fa2392581"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga520d7005e360202f5844982fa2392581">VPX_CODEC_USE_ERROR_CONCEALMENT</a>&#160;&#160;&#160;0x20000</td></tr>
<tr class="separator:ga520d7005e360202f5844982fa2392581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga378855a0318396d6e4e585bd3bacbf3f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga378855a0318396d6e4e585bd3bacbf3f">VPX_CODEC_USE_INPUT_FRAGMENTS</a>&#160;&#160;&#160;0x40000</td></tr>
<tr class="separator:ga378855a0318396d6e4e585bd3bacbf3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8c2f0b12f1bd4927eb3c68b01eab19d3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga8c2f0b12f1bd4927eb3c68b01eab19d3">vpx_codec_dec_init</a>(ctx, iface, cfg, flags)&#160;&#160;&#160;<a class="el" href="group__decoder.html#ga26fe82cf8fd697f885935cea53be964f">vpx_codec_dec_init_ver</a>(ctx, iface, cfg, flags, <a class="el" href="group__decoder.html#ga462b459e7ae13937e1eae1776245db12">VPX_DECODER_ABI_VERSION</a>)</td></tr>
<tr class="memdesc:ga8c2f0b12f1bd4927eb3c68b01eab19d3"><td class="mdescLeft">&#160;</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 class="separator:ga8c2f0b12f1bd4927eb3c68b01eab19d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga900420e8f7cb9c1b3070b2ba7d636974"><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>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga900420e8f7cb9c1b3070b2ba7d636974">vpx_codec_stream_info_t</a></td></tr>
<tr class="memdesc:ga900420e8f7cb9c1b3070b2ba7d636974"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream properties.  <a href="#ga900420e8f7cb9c1b3070b2ba7d636974"></a><br/></td></tr>
<tr class="separator:ga900420e8f7cb9c1b3070b2ba7d636974"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a2e808eb43f1e798024b5a409c484f9"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structvpx__codec__dec__cfg.html">vpx_codec_dec_cfg</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga4a2e808eb43f1e798024b5a409c484f9">vpx_codec_dec_cfg_t</a></td></tr>
<tr class="memdesc:ga4a2e808eb43f1e798024b5a409c484f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialization Configurations.  <a href="#ga4a2e808eb43f1e798024b5a409c484f9"></a><br/></td></tr>
<tr class="separator:ga4a2e808eb43f1e798024b5a409c484f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga26fe82cf8fd697f885935cea53be964f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga26fe82cf8fd697f885935cea53be964f">vpx_codec_dec_init_ver</a> (<a class="el" href="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *ctx, <a class="el" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e">vpx_codec_iface_t</a> *iface, <a class="el" href="group__decoder.html#ga4a2e808eb43f1e798024b5a409c484f9">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 class="memdesc:ga26fe82cf8fd697f885935cea53be964f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a decoder instance.  <a href="#ga26fe82cf8fd697f885935cea53be964f"></a><br/></td></tr>
<tr class="separator:ga26fe82cf8fd697f885935cea53be964f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfee4664d644175d5aac1465ef11c4b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a>&#160;</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="group__decoder.html#ga900420e8f7cb9c1b3070b2ba7d636974">vpx_codec_stream_info_t</a> *si)</td></tr>
<tr class="memdesc:gadfee4664d644175d5aac1465ef11c4b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse stream info from a buffer.  <a href="#gadfee4664d644175d5aac1465ef11c4b0"></a><br/></td></tr>
<tr class="separator:gadfee4664d644175d5aac1465ef11c4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga552f1044d36a84e8b05ce6902e9ae8c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga552f1044d36a84e8b05ce6902e9ae8c9">vpx_codec_get_stream_info</a> (<a class="el" href="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *ctx, <a class="el" href="group__decoder.html#ga900420e8f7cb9c1b3070b2ba7d636974">vpx_codec_stream_info_t</a> *si)</td></tr>
<tr class="memdesc:ga552f1044d36a84e8b05ce6902e9ae8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return information about the current stream.  <a href="#ga552f1044d36a84e8b05ce6902e9ae8c9"></a><br/></td></tr>
<tr class="separator:ga552f1044d36a84e8b05ce6902e9ae8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3441e157a7a69108bca9a069f2ee8e0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2">vpx_codec_err_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga3441e157a7a69108bca9a069f2ee8e0d">vpx_codec_decode</a> (<a class="el" href="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *ctx, const uint8_t *data, unsigned int data_sz, void *user_priv, long deadline)</td></tr>
<tr class="memdesc:ga3441e157a7a69108bca9a069f2ee8e0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode data.  <a href="#ga3441e157a7a69108bca9a069f2ee8e0d"></a><br/></td></tr>
<tr class="separator:ga3441e157a7a69108bca9a069f2ee8e0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e231c3a5ce445fdb2268d741da97500"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vpx__image_8h.html#abf5ac962cc6d71b4f0e39b1b0d033e55">vpx_image_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__decoder.html#ga0e231c3a5ce445fdb2268d741da97500">vpx_codec_get_frame</a> (<a class="el" href="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *ctx, <a class="el" href="group__codec.html#ga6ea348f76b1f8a1fe50e14db684146c6">vpx_codec_iter_t</a> *iter)</td></tr>
<tr class="memdesc:ga0e231c3a5ce445fdb2268d741da97500"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decoded frames iterator.  <a href="#ga0e231c3a5ce445fdb2268d741da97500"></a><br/></td></tr>
<tr class="separator:ga0e231c3a5ce445fdb2268d741da97500"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">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>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga9e33b8ee81025d5fc3d01b0975ad5f96"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VPX_CODEC_CAP_PUT_SLICE&#160;&#160;&#160;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>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VPX_CODEC_CAP_PUT_FRAME&#160;&#160;&#160;0x20000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Will issue put_frame callbacks </p>

</div>
</div>
<a class="anchor" id="ga7825ade982ab85a5583d3d8a669baa3b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VPX_CODEC_CAP_POSTPROC&#160;&#160;&#160;0x40000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Can postprocess decoded frame </p>

</div>
</div>
<a class="anchor" id="gac44cd9e4722e1eb32a37c3eaec8d97b9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VPX_CODEC_CAP_ERROR_CONCEALMENT&#160;&#160;&#160;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>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VPX_CODEC_CAP_INPUT_FRAGMENTS&#160;&#160;&#160;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="ga6fe14f30254aff769412b128b29664cc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VPX_CODEC_USE_POSTPROC&#160;&#160;&#160;0x10000</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.Postprocess decoded frame </p>

</div>
</div>
<a class="anchor" id="ga520d7005e360202f5844982fa2392581"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VPX_CODEC_USE_ERROR_CONCEALMENT&#160;&#160;&#160;0x20000</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Conceal errors in decoded frames </p>

</div>
</div>
<a class="anchor" id="ga378855a0318396d6e4e585bd3bacbf3f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VPX_CODEC_USE_INPUT_FRAGMENTS&#160;&#160;&#160;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="ga8c2f0b12f1bd4927eb3c68b01eab19d3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define vpx_codec_dec_init</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ctx, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">iface, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cfg, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">flags&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__decoder.html#ga26fe82cf8fd697f885935cea53be964f">vpx_codec_dec_init_ver</a>(ctx, iface, cfg, flags, <a class="el" href="group__decoder.html#ga462b459e7ae13937e1eae1776245db12">VPX_DECODER_ABI_VERSION</a>)</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>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga900420e8f7cb9c1b3070b2ba7d636974"></a>
<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="group__decoder.html#ga900420e8f7cb9c1b3070b2ba7d636974">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>
<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="group__decoder.html#ga4a2e808eb43f1e798024b5a409c484f9">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>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga26fe82cf8fd697f885935cea53be964f"></a>
<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="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__decoder.html#ga4a2e808eb43f1e798024b5a409c484f9">vpx_codec_dec_cfg_t</a> *&#160;</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>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ver</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize a decoder instance. </p>
<pre class="fragment">   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.

   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.

   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.
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>Pointer to this instance's context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>Pointer to the algorithm interface to use. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>Configuration to use, if known. May be NULL. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">flags</td><td>Bitfield of VPX_CODEC_USE_* flags </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ver</td><td>ABI version number. Must be set to VPX_DECODER_ABI_VERSION </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname"><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2af1dcde74b1c5ff7b29f31246dfd90986" title="Operation completed without error.">VPX_CODEC_OK</a></td><td>The decoder algorithm initialized. </td></tr>
    <tr><td class="paramname"><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2a96c6d2600dc0ec25c2cb798e8d2f4760" title="Memory operation failed.">VPX_CODEC_MEM_ERROR</a></td><td>Memory allocation failed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadfee4664d644175d5aac1465ef11c4b0"></a>
<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> *&#160;</td>
          <td class="paramname"><em>iface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>data_sz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__decoder.html#ga900420e8f7cb9c1b3070b2ba7d636974">vpx_codec_stream_info_t</a> *&#160;</td>
          <td class="paramname"><em>si</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse stream info from a buffer. </p>
<pre class="fragment">   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.
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">iface</td><td>Pointer to the algorithm interface </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Pointer to a block of data to parse </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data_sz</td><td>Size of the data buffer </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">si</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 class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname"><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2af1dcde74b1c5ff7b29f31246dfd90986" title="Operation completed without error.">VPX_CODEC_OK</a></td><td>Bitstream is parsable and stream information updated </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga552f1044d36a84e8b05ce6902e9ae8c9"></a>
<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="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__decoder.html#ga900420e8f7cb9c1b3070b2ba7d636974">vpx_codec_stream_info_t</a> *&#160;</td>
          <td class="paramname"><em>si</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return information about the current stream. </p>
<pre class="fragment">   Returns information about the stream that has been parsed during decoding.
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>Pointer to this instance's context </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">si</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 class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname"><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2af1dcde74b1c5ff7b29f31246dfd90986" title="Operation completed without error.">VPX_CODEC_OK</a></td><td>Bitstream is parsable and stream information updated </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3441e157a7a69108bca9a069f2ee8e0d"></a>
<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="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *&#160;</td>
          <td class="paramname"><em>ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>data_sz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_priv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>deadline</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decode data. </p>
<pre class="fragment">   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 \ref MUST 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.
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>Pointer to this instance's context </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</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 class="paramdir">[in]</td><td class="paramname">data_sz</td><td>Size of the coded data, in bytes. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">user_priv</td><td>Application specific data to associate with this frame. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">deadline</td><td>Soft deadline the decoder should attempt to meet, in us. Set to zero for unlimited.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</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>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="vpx__image_8h.html#abf5ac962cc6d71b4f0e39b1b0d033e55">vpx_image_t</a>* vpx_codec_get_frame </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *&#160;</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> *&#160;</td>
          <td class="paramname"><em>iter</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Decoded frames iterator. </p>
<pre class="fragment">   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.

   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.
</pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>Pointer to this instance's context </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">iter</td><td>Iterator storage, initialized to NULL</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</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><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3
</small></address>
</body>
</html>