File: //usr/share/doc/libvpx-devel/html/group__vp8__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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WebM Codec SDK: WebM VP8/VP9 Decoder</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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">WebM Codec SDK
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#files">Files</a> |
<a href="#nested-classes">Data Structures</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">WebM VP8/VP9 Decoder<div class="ingroups"><a class="el" href="group__codecs.html">Supported Codecs</a> » <a class="el" href="group__vp8.html">VP8</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:vp8dx_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="vp8dx_8h.html">vp8dx.h</a></td></tr>
<tr class="memdesc:vp8dx_8h"><td class="mdescLeft"> </td><td class="mdescRight">Provides definitions for using VP8 or VP9 within the vpx Decoder interface. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </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  </td><td class="memItemRight" valign="bottom"><a class="el" href="structvpx__decrypt__init.html">vpx_decrypt_init</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure to hold decryption state. <a href="structvpx__decrypt__init.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </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:ga10cdcbbc04aa831558688f4a4149fcbd"><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vp8__decoder.html#ga10cdcbbc04aa831558688f4a4149fcbd">vpx_decrypt_cb</a>) (void *decrypt_state, const unsigned char *input, unsigned char *output, int count)</td></tr>
<tr class="separator:ga10cdcbbc04aa831558688f4a4149fcbd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa55171d8fa453260b1375dba87524b6a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structvpx__decrypt__init.html">vpx_decrypt_init</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vp8__decoder.html#gaa55171d8fa453260b1375dba87524b6a">vpx_decrypt_init</a></td></tr>
<tr class="memdesc:gaa55171d8fa453260b1375dba87524b6a"><td class="mdescLeft"> </td><td class="mdescRight">Structure to hold decryption state. <a href="#gaa55171d8fa453260b1375dba87524b6a">More...</a><br /></td></tr>
<tr class="separator:gaa55171d8fa453260b1375dba87524b6a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafda00b2721f7bfb804a1308d61f2a32f"><td class="memItemLeft" align="right" valign="top"><a id="gafda00b2721f7bfb804a1308d61f2a32f"></a>
typedef <a class="el" href="structvpx__decrypt__init.html">vpx_decrypt_init</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vp8__decoder.html#gafda00b2721f7bfb804a1308d61f2a32f">vp8_decrypt_init</a></td></tr>
<tr class="memdesc:gafda00b2721f7bfb804a1308d61f2a32f"><td class="mdescLeft"> </td><td class="mdescRight">A deprecated alias for <a class="el" href="structvpx__decrypt__init.html" title="Structure to hold decryption state. ">vpx_decrypt_init</a>. <br /></td></tr>
<tr class="separator:gafda00b2721f7bfb804a1308d61f2a32f"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaf9dd3f2e6d1412106ee791af768e57c1"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vp8__decoder.html#gaf9dd3f2e6d1412106ee791af768e57c1">vp8_dec_control_id</a> { <br />
  <a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1a0b6055c47120f28e3de959960ee0a02b">VP8D_GET_LAST_REF_UPDATES</a> = VP8_DECODER_CTRL_ID_START,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1af9f82d9e7930e6a2244b30b031b79599">VP8D_GET_FRAME_CORRUPTED</a>,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1aa57d870ac8cf395fdc86da4a8939b10b">VP8D_GET_LAST_REF_USED</a>,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1a7fbdffa6018163d0ecf12b50276beba0">VPXD_SET_DECRYPTOR</a>,
<br />
  <b>VP8D_SET_DECRYPTOR</b> = VPXD_SET_DECRYPTOR,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1a7a8d537472fc7561bd86c7395994ba37">VP9D_GET_FRAME_SIZE</a>,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1aec6eaaa866488cfe1d0cb83cab302ebd">VP9D_GET_DISPLAY_SIZE</a>,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1a0c0d6174e3dd0ae615913d940a2bbdeb">VP9D_GET_BIT_DEPTH</a>,
<br />
  <a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1a5a045a5e858c7641aea8987fed5e24b4">VP9_SET_BYTE_ALIGNMENT</a>,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1a1c4fc468749a2ef88e148f09210ce73c">VP9_INVERT_TILE_DECODE_ORDER</a>,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1a999ed127a9ddb4be322a5a93eaed1233">VP9_SET_SKIP_LOOP_FILTER</a>,
<a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1ab1998be4a82605b6ce2a931210878916">VP9_DECODE_SVC_SPATIAL_LAYER</a>,
<br />
  <a class="el" href="group__vp8__decoder.html#ggaf9dd3f2e6d1412106ee791af768e57c1a96ef4253540f901d6bd46afeef3d41c3">VPXD_GET_LAST_QUANTIZER</a>,
<b>VP8_DECODER_CTRL_ID_MAX</b>
<br />
}</td></tr>
<tr class="memdesc:gaf9dd3f2e6d1412106ee791af768e57c1"><td class="mdescLeft"> </td><td class="mdescRight">VP8 decoder control functions. <a href="group__vp8__decoder.html#gaf9dd3f2e6d1412106ee791af768e57c1">More...</a><br /></td></tr>
<tr class="separator:gaf9dd3f2e6d1412106ee791af768e57c1"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Algorithm interface for VP8</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp0b829b38ff2e659173b35cd78e0735bd"></a>This interface provides the capability to decode VP8 streams. </p>
</td></tr>
<tr class="memitem:ga1e151f9094620511e7aa49c04bf8b79e"><td class="memItemLeft" align="right" valign="top"><a id="ga1e151f9094620511e7aa49c04bf8b79e"></a>
<a class="el" href="group__codec.html#gae99c3b04f4a567a311211cce3ae6b83b">vpx_codec_iface_t</a> </td><td class="memItemRight" valign="bottom"><b>vpx_codec_vp8_dx_algo</b></td></tr>
<tr class="separator:ga1e151f9094620511e7aa49c04bf8b79e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga105d15fdb6baef8a2f02d6d5283847fb"><td class="memItemLeft" align="right" valign="top"><a id="ga105d15fdb6baef8a2f02d6d5283847fb"></a>
<a class="el" href="group__codec.html#gae99c3b04f4a567a311211cce3ae6b83b">vpx_codec_iface_t</a> * </td><td class="memItemRight" valign="bottom"><b>vpx_codec_vp8_dx</b> (void)</td></tr>
<tr class="separator:ga105d15fdb6baef8a2f02d6d5283847fb"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Algorithm interface for VP9</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp9a787aae8f239d3b1cb9aeff16fb31ef"></a>This interface provides the capability to decode VP9 streams. </p>
</td></tr>
<tr class="memitem:gabb581a7e48d55dbda975c8bfbc2d615c"><td class="memItemLeft" align="right" valign="top"><a id="gabb581a7e48d55dbda975c8bfbc2d615c"></a>
<a class="el" href="group__codec.html#gae99c3b04f4a567a311211cce3ae6b83b">vpx_codec_iface_t</a> </td><td class="memItemRight" valign="bottom"><b>vpx_codec_vp9_dx_algo</b></td></tr>
<tr class="separator:gabb581a7e48d55dbda975c8bfbc2d615c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga62b70b5b21a01ab2d57adb9f67f25d60"><td class="memItemLeft" align="right" valign="top"><a id="ga62b70b5b21a01ab2d57adb9f67f25d60"></a>
<a class="el" href="group__codec.html#gae99c3b04f4a567a311211cce3ae6b83b">vpx_codec_iface_t</a> * </td><td class="memItemRight" valign="bottom"><b>vpx_codec_vp9_dx</b> (void)</td></tr>
<tr class="separator:ga62b70b5b21a01ab2d57adb9f67f25d60"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga10cdcbbc04aa831558688f4a4149fcbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga10cdcbbc04aa831558688f4a4149fcbd">◆ </a></span>vpx_decrypt_cb</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* vpx_decrypt_cb) (void *decrypt_state, const unsigned char *input, unsigned char *output, int count)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Decrypt n bytes of data from input -> output, using the decrypt_state passed in VPXD_SET_DECRYPTOR. </p>
</div>
</div>
<a id="gaa55171d8fa453260b1375dba87524b6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa55171d8fa453260b1375dba87524b6a">◆ </a></span>vpx_decrypt_init</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structvpx__decrypt__init.html">vpx_decrypt_init</a> <a class="el" href="structvpx__decrypt__init.html">vpx_decrypt_init</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Structure to hold decryption state. </p>
<p>Defines a structure to hold the decryption state and access function. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaf9dd3f2e6d1412106ee791af768e57c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9dd3f2e6d1412106ee791af768e57c1">◆ </a></span>vp8_dec_control_id</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__vp8__decoder.html#gaf9dd3f2e6d1412106ee791af768e57c1">vp8_dec_control_id</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>VP8 decoder control functions. </p>
<p>This set of macros define the control functions available for the VP8 decoder interface.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__codec.html#gac1b91e04698c1bd4c0a2b8aa85b08cd2" title="vpx_codec_control wrapper macro ">vpx_codec_control</a> </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1a0b6055c47120f28e3de959960ee0a02b"></a>VP8D_GET_LAST_REF_UPDATES </td><td class="fielddoc"><p>control function to get info on which reference frames were updated by the last decode </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1af9f82d9e7930e6a2244b30b031b79599"></a>VP8D_GET_FRAME_CORRUPTED </td><td class="fielddoc"><p>check if the indicated frame is corrupted </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1aa57d870ac8cf395fdc86da4a8939b10b"></a>VP8D_GET_LAST_REF_USED </td><td class="fielddoc"><p>control function to get info on which reference frames were used by the last decode </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1a7fbdffa6018163d0ecf12b50276beba0"></a>VPXD_SET_DECRYPTOR </td><td class="fielddoc"><p>decryption function to decrypt encoded buffer data immediately before decoding. Takes a <a class="el" href="structvpx__decrypt__init.html" title="Structure to hold decryption state. ">vpx_decrypt_init</a>, which contains a callback function and opaque context pointer. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1a7a8d537472fc7561bd86c7395994ba37"></a>VP9D_GET_FRAME_SIZE </td><td class="fielddoc"><p>control function to get the dimensions that the current frame is decoded at. This may be different to the intended display size for the frame as specified in the wrapper or frame header (see VP9D_GET_DISPLAY_SIZE). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1aec6eaaa866488cfe1d0cb83cab302ebd"></a>VP9D_GET_DISPLAY_SIZE </td><td class="fielddoc"><p>control function to get the current frame's intended display dimensions (as specified in the wrapper or frame header). This may be different to the decoded dimensions of this frame (see VP9D_GET_FRAME_SIZE). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1a0c0d6174e3dd0ae615913d940a2bbdeb"></a>VP9D_GET_BIT_DEPTH </td><td class="fielddoc"><p>control function to get the bit depth of the stream. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1a5a045a5e858c7641aea8987fed5e24b4"></a>VP9_SET_BYTE_ALIGNMENT </td><td class="fielddoc"><p>control function to set the byte alignment of the planes in the reference buffers. Valid values are power of 2, from 32 to 1024. A value of 0 sets legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly follows Y plane, and V plane directly follows U plane. Default value is 0. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1a1c4fc468749a2ef88e148f09210ce73c"></a>VP9_INVERT_TILE_DECODE_ORDER </td><td class="fielddoc"><p>control function to invert the decoding order to from right to left. The function is used in a test to confirm the decoding independence of tile columns. The function may be used in application where this order of decoding is desired.</p>
<p>TODO(yaowu): Rework the unit test that uses this control, and in a future release, this test-only control shall be removed. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1a999ed127a9ddb4be322a5a93eaed1233"></a>VP9_SET_SKIP_LOOP_FILTER </td><td class="fielddoc"><p>control function to set the skip loop filter flag. Valid values are integers. The decoder will skip the loop filter when its value is set to nonzero. If the loop filter is skipped the decoder may accumulate decode artifacts. The default value is 0. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1ab1998be4a82605b6ce2a931210878916"></a>VP9_DECODE_SVC_SPATIAL_LAYER </td><td class="fielddoc"><p>control function to decode SVC stream up to the x spatial layers, where x is passed in through the control, and is 0 for base layer. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaf9dd3f2e6d1412106ee791af768e57c1a96ef4253540f901d6bd46afeef3d41c3"></a>VPXD_GET_LAST_QUANTIZER </td><td class="fielddoc"><p>Codec control function to get last decoded frame quantizer. </p>
<p>Return value uses internal quantizer scale defined by the codec.</p>
<p>Supported in codecs: VP8, VP9 </p>
</td></tr>
</table>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>