HEX
Server: Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System: Linux ns565604.ip-54-39-133.net 4.18.0-553.50.1.el8_10.x86_64 #1 SMP Tue Apr 15 08:09:22 EDT 2025 x86_64
User: greer489 (1034)
PHP: 8.3.19
Disabled: NONE
Upload Files
File: //usr/share/doc/libvpx-devel/html/group__cap__external__frame__buffer.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: External Frame Buffer Functions</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&amp;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="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">External Frame Buffer Functions<div class="ingroups"><a class="el" href="group__codec.html">Common Algorithm Interface</a> &raquo; <a class="el" href="group__decoder.html">Decoder 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="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad209e7c3f6a330d11846be70a880182c"><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__cap__external__frame__buffer.html#gad209e7c3f6a330d11846be70a880182c">vpx_codec_set_frame_buffer_functions</a> (<a class="el" href="group__codec.html#gad03e2dfa6ae511db7d25be6bbb336233">vpx_codec_ctx_t</a> *ctx, <a class="el" href="vpx__frame__buffer_8h.html#a178a7aeb9acedc2d9e5227cea1301169">vpx_get_frame_buffer_cb_fn_t</a> cb_get, <a class="el" href="vpx__frame__buffer_8h.html#a79d9a6a92e4eb753fc2d27f50d996de1">vpx_release_frame_buffer_cb_fn_t</a> cb_release, void *cb_priv)</td></tr>
<tr class="memdesc:gad209e7c3f6a330d11846be70a880182c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pass in external frame buffers for the decoder to use.  <a href="#gad209e7c3f6a330d11846be70a880182c">More...</a><br /></td></tr>
<tr class="separator:gad209e7c3f6a330d11846be70a880182c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>The following section is required to be implemented for all decoders that advertise the VPX_CODEC_CAP_EXTERNAL_FRAME_BUFFER capability. Calling this function for codecs that don't advertise this capability will result in an error code being returned, usually VPX_CODEC_ERROR.</p>
<dl class="section note"><dt>Note</dt><dd>Currently this only works with VP9. </dd></dl>
<h2 class="groupheader">Function Documentation</h2>
<a id="gad209e7c3f6a330d11846be70a880182c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad209e7c3f6a330d11846be70a880182c">&#9670;&nbsp;</a></span>vpx_codec_set_frame_buffer_functions()</h2>

<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_set_frame_buffer_functions </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="vpx__frame__buffer_8h.html#a178a7aeb9acedc2d9e5227cea1301169">vpx_get_frame_buffer_cb_fn_t</a>&#160;</td>
          <td class="paramname"><em>cb_get</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="vpx__frame__buffer_8h.html#a79d9a6a92e4eb753fc2d27f50d996de1">vpx_release_frame_buffer_cb_fn_t</a>&#160;</td>
          <td class="paramname"><em>cb_release</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cb_priv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Pass in external frame buffers for the decoder to use. </p>
<p>Registers functions to be called when libvpx needs a frame buffer to decode the current frame and a function to be called when libvpx does not internally reference the frame buffer. This set function must be called before the first call to decode or libvpx will assume the default behavior of allocating frame buffers internally.</p>
<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">cb_get</td><td>Pointer to the get callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cb_release</td><td>Pointer to the release callback function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cb_priv</td><td>Callback's private data</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>External frame buffers will be used by libvpx. </td></tr>
    <tr><td class="paramname"><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2ab5857f7b5f03f8ca164fab8843a979df" title="An application-supplied parameter is not valid. ">VPX_CODEC_INVALID_PARAM</a></td><td>One or more of the callbacks were NULL. </td></tr>
    <tr><td class="paramname"><a class="el" href="group__codec.html#ggada1084710837ad363b92f2379dd2b8d2abd8a8f9c2588adab5d764d957e265135" title="Unspecified error. ">VPX_CODEC_ERROR</a></td><td>Decoder context not initialized, or algorithm not capable of using external frame buffers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>When decoding VP9, the application may be required to pass in at least <a class="el" href="vpx__frame__buffer_8h.html#abf69f005955646519b1379d5ed67b002" title="The maximum number of reference buffers that a VP9 encoder may use. ">VP9_MAXIMUM_REF_BUFFERS</a> + <a class="el" href="vpx__frame__buffer_8h.html#a92d4c1a691bffa03789df35386788295" title="The maximum number of work buffers used by libvpx. Support maximum 4 threads to decode video in paral...">VPX_MAXIMUM_WORK_BUFFERS</a> external frame buffers. </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.14
</small></address>
</body>
</html>