<!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: vpx/vpx_encoder.h Source File</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 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 class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_ce0ab26228883e873492c15423e35021.html">vpx</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">vpx_encoder.h</div> </div> </div><!--header--> <div class="contents"> <a href="vpx__encoder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Copyright (c) 2010 The WebM project authors. All Rights Reserved.</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Use of this source code is governed by a BSD-style license</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * that can be found in the LICENSE file in the root of the source</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * tree. An additional intellectual property rights grant can be found</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * in the file PATENTS. All contributing project authors may</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * be found in the AUTHORS file in the root of the source tree.</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> */</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef VPX_ENCODER_H</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor"></span><span class="preprocessor">#define VPX_ENCODER_H</span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="vpx__codec_8h.html" title="Describes the codec algorithm interface to applications.">vpx_codec.h</a>"</span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div> <div class="line"><a name="l00038"></a><span class="lineno"><a class="code" href="group__encoder.html#ga684b48cb6e47a258247637186557eb19"> 38</a></span> <span class="preprocessor">#define VPX_TS_MAX_PERIODICITY 16</span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00041"></a><span class="lineno"><a class="code" href="group__encoder.html#ga2715ac3dd8bf2f5438c4bbfc82788eb2"> 41</a></span> <span class="preprocessor">#define VPX_TS_MAX_LAYERS 5</span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00044"></a><span class="lineno"><a class="code" href="group__encoder.html#gae6569d89cc61cb190aeeb00a1b40ad88"> 44</a></span> <span class="preprocessor">#define MAX_PERIODICITY VPX_TS_MAX_PERIODICITY</span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00047"></a><span class="lineno"><a class="code" href="group__encoder.html#gade9d4b2ac5f29fe89ffea40e7c58c9d6"> 47</a></span> <span class="preprocessor">#define MAX_LAYERS VPX_TS_MAX_LAYERS</span></div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="group__encoder.html#gaa4f0b52293c08ba672429c3a03648b9d"> 57</a></span> <span class="preprocessor">#define VPX_ENCODER_ABI_VERSION (3 + VPX_CODEC_ABI_VERSION) </span></div> <div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="group__encoder.html#ga398803f408d6f71aae730b5ee7793e1c"> 69</a></span> <span class="preprocessor">#define VPX_CODEC_CAP_PSNR 0x10000 </span></div> <div class="line"><a name="l00076"></a><span class="lineno"><a class="code" href="group__encoder.html#ga69768adb51faa28d98870cbc77e9ea93"> 76</a></span> <span class="preprocessor">#define VPX_CODEC_CAP_OUTPUT_PARTITION 0x20000</span></div> <div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div> <div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="group__encoder.html#ga57bb9eb1881c7e4bf86580660a5e40a0"> 86</a></span> <span class="preprocessor">#define VPX_CODEC_USE_PSNR 0x10000 </span></div> <div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="group__encoder.html#gac26cd92b3719953aa0fbb0ff8c1d9c8d"> 87</a></span> <span class="preprocessor">#define VPX_CODEC_USE_OUTPUT_PARTITION 0x20000 </span></div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor"> typedef struct vpx_fixed_buf</span></div> <div class="line"><a name="l00096"></a><span class="lineno"><a class="code" href="structvpx__fixed__buf.html"> 96</a></span> <span class="preprocessor"></span> {</div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordtype">void</span> *buf; </div> <div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="structvpx__fixed__buf.html#ac93e43ae3fcc1023dca86d37016ae3f0"> 98</a></span>  <span class="keywordtype">size_t</span> sz; </div> <div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="structvpx__fixed__buf.html#a43d7f8247ed9752f65f0a7639817ae84"> 99</a></span>  } <a class="code" href="group__encoder.html#ga21fab7dd28065f349c97165501223764" title="Generic fixed size buffer structure.">vpx_fixed_buf_t</a>; </div> <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">typedef</span> int64_t <a class="code" href="group__encoder.html#ga7e711b0a71c65aef8f0faea8bd57b05f" title="Time Stamp Type.">vpx_codec_pts_t</a>;</div> <div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="group__encoder.html#ga7e711b0a71c65aef8f0faea8bd57b05f"> 108</a></span> </div> <div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div> <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">typedef</span> uint32_t <a class="code" href="group__encoder.html#gaac8ee319b9a6175f6946f59437c7ae4b" title="Compressed Frame Flags.">vpx_codec_frame_flags_t</a>;</div> <div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="group__encoder.html#gaac8ee319b9a6175f6946f59437c7ae4b"> 118</a></span> <span class="preprocessor">#define VPX_FRAME_IS_KEY 0x1 </span></div> <div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="group__encoder.html#ga7a896eb3bc74f33419e6a9812c60e4c9"> 119</a></span> <span class="preprocessor">#define VPX_FRAME_IS_DROPPABLE 0x2 </span></div> <div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor">#define VPX_FRAME_IS_INVISIBLE 0x4 </span></div> <div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor">#define VPX_FRAME_IS_FRAGMENT 0x8 </span></div> <div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"> typedef uint32_t vpx_codec_er_flags_t;</span></div> <div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor"></span><span class="preprocessor">#define VPX_ERROR_RESILIENT_DEFAULT 0x1 </span></div> <div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="preprocessor">#define VPX_ERROR_RESILIENT_PARTITIONS 0x2 </span></div> <div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor"> enum vpx_codec_cx_pkt_kind</span></div> <div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor"></span> {</div> <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="group__encoder.html#gga28a79375279536526552af3a83d2ed72a2261aae5594289400e812fb1e6b6b0cc">VPX_CODEC_CX_FRAME_PKT</a>, </div> <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="group__encoder.html#gga28a79375279536526552af3a83d2ed72a77cd8b95d9891bcce36117f5f31994fd">VPX_CODEC_STATS_PKT</a>, </div> <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="group__encoder.html#gga28a79375279536526552af3a83d2ed72a11eefa1328e6d22eb7c844645a260628">VPX_CODEC_PSNR_PKT</a>, </div> <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="group__encoder.html#gga28a79375279536526552af3a83d2ed72a7b54c122969397b1926de853d28b3c80">VPX_CODEC_CUSTOM_PKT</a> = 256 </div> <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  };</div> <div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div> <div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div> <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structvpx__codec__cx__pkt.html" title="Encoder output packet.">vpx_codec_cx_pkt</a></div> <div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="group__encoder.html#gga28a79375279536526552af3a83d2ed72a2261aae5594289400e812fb1e6b6b0cc"> 166</a></span>  {</div> <div class="line"><a name="l00167"></a><span class="lineno"><a class="code" href="group__encoder.html#gga28a79375279536526552af3a83d2ed72a77cd8b95d9891bcce36117f5f31994fd"> 167</a></span>  <span class="keyword">enum</span> <a class="code" href="group__encoder.html#ga28a79375279536526552af3a83d2ed72" title="Encoder output packet variants.">vpx_codec_cx_pkt_kind</a> <a class="code" href="structvpx__codec__cx__pkt.html#a41f395b39516343c1329a4a85a0084f2">kind</a>; </div> <div class="line"><a name="l00168"></a><span class="lineno"><a class="code" href="group__encoder.html#gga28a79375279536526552af3a83d2ed72a11eefa1328e6d22eb7c844645a260628"> 168</a></span>  <span class="keyword">union</span></div> <div class="line"><a name="l00169"></a><span class="lineno"><a class="code" href="group__encoder.html#gga28a79375279536526552af3a83d2ed72a7b54c122969397b1926de853d28b3c80"> 169</a></span>  {</div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">struct</span></div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">void</span> *<a class="code" href="structvpx__codec__cx__pkt.html#a9e1db068593b6037e70b05b5239784d2">buf</a>; </div> <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordtype">size_t</span> <a class="code" href="structvpx__codec__cx__pkt.html#a857321ba2dc65e81c430d14c36a542d9">sz</a>; </div> <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  vpx_codec_pts_t <a class="code" href="structvpx__codec__cx__pkt.html#aa75fe039fe6b47fb25d20684864bef12">pts</a>; </div> <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="structvpx__codec__cx__pkt.html#afb8d9069980e759d97d2eb9fae7e5e06">duration</a>; </div> <div class="line"><a name="l00178"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html"> 178</a></span>  vpx_codec_frame_flags_t <a class="code" href="structvpx__codec__cx__pkt.html#a3876fe0306342611465e9c15c6c4ae2f">flags</a>; </div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">int</span> <a class="code" href="structvpx__codec__cx__pkt.html#aaffee6af93af238ca7a145fb56c6d6f7">partition_id</a>; </div> <div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html#a857321ba2dc65e81c430d14c36a542d9"> 186</a></span>  } <a class="code" href="structvpx__codec__cx__pkt.html#a81e33bf4408a3983abb16492fee359ff">frame</a>; </div> <div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html#aa75fe039fe6b47fb25d20684864bef12"> 187</a></span>  <span class="keyword">struct </span><a class="code" href="structvpx__fixed__buf.html" title="Generic fixed size buffer structure.">vpx_fixed_buf</a> <a class="code" href="structvpx__codec__cx__pkt.html#a53db8576979fa7335e478eb849b256f1">twopass_stats</a>; </div> <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">struct </span>vpx_psnr_pkt</div> <div class="line"><a name="l00189"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html#afb8d9069980e759d97d2eb9fae7e5e06"> 189</a></span>  {</div> <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structvpx__codec__cx__pkt.html#a4d3fc7eb2d19c5913c6f3f474e5cf77b">samples</a>[4]; </div> <div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html#a3876fe0306342611465e9c15c6c4ae2f"> 191</a></span>  uint64_t <a class="code" href="structvpx__codec__cx__pkt.html#ad65e918d3f26743cc7a8898b88bcb397">sse</a>[4]; </div> <div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html#aaffee6af93af238ca7a145fb56c6d6f7"> 192</a></span>  <span class="keywordtype">double</span> <a class="code" href="structvpx__codec__cx__pkt.html#a63744aeceb50355d6402d55309c151b6">psnr</a>[4]; </div> <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  } <a class="code" href="structvpx__codec__cx__pkt.html#a63744aeceb50355d6402d55309c151b6">psnr</a>; </div> <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">struct </span><a class="code" href="structvpx__fixed__buf.html" title="Generic fixed size buffer structure.">vpx_fixed_buf</a> <a class="code" href="structvpx__codec__cx__pkt.html#acc7ee91ea9c907aea7c3b953324f7c26">raw</a>; </div> <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">/* This packet size is fixed to allow codecs to extend this</span></div> <div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment"> * interface without having to manage storage for raw packets,</span></div> <div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment"> * i.e., if it's smaller than 128 bytes, you can store in the</span></div> <div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment"> * packet list directly.</span></div> <div class="line"><a name="l00200"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html#a53db8576979fa7335e478eb849b256f1"> 200</a></span> <span class="comment"> */</span></div> <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordtype">char</span> <a class="code" href="structvpx__codec__cx__pkt.html#a49a0ba012fdabd49bff8069dfacf6ced">pad</a>[128 - <span class="keyword">sizeof</span>(<span class="keyword">enum</span> <a class="code" href="group__encoder.html#ga28a79375279536526552af3a83d2ed72" title="Encoder output packet variants.">vpx_codec_cx_pkt_kind</a>)]; </div> <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  } <a class="code" href="structvpx__codec__cx__pkt.html#a7f97b060a23b7e89fe5b885c0074f696">data</a>; </div> <div class="line"><a name="l00203"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html#a4d3fc7eb2d19c5913c6f3f474e5cf77b"> 203</a></span>  } <a class="code" href="group__encoder.html#ga3f711e17fbefac545e8959ef5a023556" title="Encoder output packet.">vpx_codec_cx_pkt_t</a>; </div> <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structvpx__rational.html" title="Rational Number.">vpx_rational</a></div> <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div> <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordtype">int</span> <a class="code" href="structvpx__rational.html#ae7774f21a22c9bef3aa73156c79f4731">num</a>; </div> <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordtype">int</span> <a class="code" href="structvpx__rational.html#a29dd2ab4001377b3aa21885ef969759f">den</a>; </div> <div class="line"><a name="l00214"></a><span class="lineno"><a class="code" href="structvpx__codec__cx__pkt.html#a49a0ba012fdabd49bff8069dfacf6ced"> 214</a></span>  } <a class="code" href="group__encoder.html#ga2c08c6d71202024f17a5aef71a3d13e5" title="Rational Number.">vpx_rational_t</a>; </div> <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">enum</span> <a class="code" href="group__encoder.html#ga476c5417f9c15a1dc5d3f68fa44c493f" title="Multi-pass Encoding Pass.">vpx_enc_pass</a></div> <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  {</div> <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="group__encoder.html#gga476c5417f9c15a1dc5d3f68fa44c493fa7b6943a41868e8e26a77e9500f139ca1">VPX_RC_ONE_PASS</a>, </div> <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="group__encoder.html#gga476c5417f9c15a1dc5d3f68fa44c493faa0765945345b160905f3b762986dae3b">VPX_RC_FIRST_PASS</a>, </div> <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="group__encoder.html#gga476c5417f9c15a1dc5d3f68fa44c493fa65da543b956d6a9b1f301ab8cc90d3a7">VPX_RC_LAST_PASS</a> </div> <div class="line"><a name="l00223"></a><span class="lineno"><a class="code" href="structvpx__rational.html"> 223</a></span>  };</div> <div class="line"><a name="l00224"></a><span class="lineno"> 224</span> </div> <div class="line"><a name="l00225"></a><span class="lineno"><a class="code" href="structvpx__rational.html#ae7774f21a22c9bef3aa73156c79f4731"> 225</a></span> </div> <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keyword">enum</span> <a class="code" href="group__encoder.html#gaf50e74d91be4cae6f70dfeba5b7410d2" title="Rate control mode.">vpx_rc_mode</a></div> <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div> <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="group__encoder.html#ggaf50e74d91be4cae6f70dfeba5b7410d2ab8fbe4441ed3f31a167c8194e8a64f87">VPX_VBR</a>, </div> <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="group__encoder.html#ggaf50e74d91be4cae6f70dfeba5b7410d2a8b02853cb35790d60cc171a11f6c268a">VPX_CBR</a>, </div> <div class="line"><a name="l00231"></a><span class="lineno"><a class="code" href="group__encoder.html#ga476c5417f9c15a1dc5d3f68fa44c493f"> 231</a></span>  <a class="code" href="group__encoder.html#ggaf50e74d91be4cae6f70dfeba5b7410d2a5f2fd02b55c67d62bfd79380bcb03f63">VPX_CQ</a> </div> <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  };</div> <div class="line"><a name="l00233"></a><span class="lineno"><a class="code" href="group__encoder.html#gga476c5417f9c15a1dc5d3f68fa44c493fa7b6943a41868e8e26a77e9500f139ca1"> 233</a></span> </div> <div class="line"><a name="l00234"></a><span class="lineno"><a class="code" href="group__encoder.html#gga476c5417f9c15a1dc5d3f68fa44c493faa0765945345b160905f3b762986dae3b"> 234</a></span> </div> <div class="line"><a name="l00243"></a><span class="lineno"><a class="code" href="group__encoder.html#ggaf50e74d91be4cae6f70dfeba5b7410d2a8b02853cb35790d60cc171a11f6c268a"> 243</a></span>  <span class="keyword">enum</span> <a class="code" href="group__encoder.html#ga9f461802aa4db35c04a8b23837987f40" title="Keyframe placement mode.">vpx_kf_mode</a></div> <div class="line"><a name="l00244"></a><span class="lineno"><a class="code" href="group__encoder.html#ggaf50e74d91be4cae6f70dfeba5b7410d2a5f2fd02b55c67d62bfd79380bcb03f63"> 244</a></span>  {</div> <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="group__encoder.html#gga9f461802aa4db35c04a8b23837987f40a6bd87eea515c65661a5241a0f01e44a6">VPX_KF_FIXED</a>, </div> <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="group__encoder.html#gga9f461802aa4db35c04a8b23837987f40ab1b423e78f72e77d2dce755d6c9652f8">VPX_KF_AUTO</a>, </div> <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="group__encoder.html#gga9f461802aa4db35c04a8b23837987f40a56513f60cbf3434ca0092173005d0ab2">VPX_KF_DISABLED</a> = 0 </div> <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  };</div> <div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div> <div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div> <div class="line"><a name="l00258"></a><span class="lineno"><a class="code" href="group__encoder.html#gga9f461802aa4db35c04a8b23837987f40a6bd87eea515c65661a5241a0f01e44a6"> 258</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">long</span> <a class="code" href="group__encoder.html#ga99e4a3c966f0de19fe1aa626bd860366" title="Encoded Frame Flags.">vpx_enc_frame_flags_t</a>;</div> <div class="line"><a name="l00259"></a><span class="lineno"><a class="code" href="group__encoder.html#gga9f461802aa4db35c04a8b23837987f40ab1b423e78f72e77d2dce755d6c9652f8"> 259</a></span> <span class="preprocessor">#define VPX_EFLAG_FORCE_KF (1<<0) </span></div> <div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="preprocessor"> typedef struct vpx_codec_enc_cfg</span></div> <div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"></span> {</div> <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">/*</span></div> <div class="line"><a name="l00271"></a><span class="lineno"><a class="code" href="group__encoder.html#ga99e4a3c966f0de19fe1aa626bd860366"> 271</a></span> <span class="comment"> * generic settings (g)</span></div> <div class="line"><a name="l00272"></a><span class="lineno"><a class="code" href="group__encoder.html#ga4c4f4e3cbb5225d2c6c050e2d1e948fa"> 272</a></span> <span class="comment"> */</span></div> <div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div> <div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html"> 281</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> g_usage;</div> <div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div> <div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div> <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> g_threads;</div> <div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div> <div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div> <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> g_profile; </div> <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> g_w;</div> <div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div> <div class="line"><a name="l00314"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#a3d7fe3a8b237338c094d5a956a41804d"> 314</a></span> </div> <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> g_h;</div> <div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div> <div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div> <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keyword">struct </span><a class="code" href="structvpx__rational.html" title="Rational Number.">vpx_rational</a> g_timebase;</div> <div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div> <div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div> <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <a class="code" href="group__encoder.html#ga77e0e1fff62556a4f4d54c84467a41f3" title="Error Resilient flags.">vpx_codec_er_flags_t</a> g_error_resilient;</div> <div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div> <div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div> <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keyword">enum</span> <a class="code" href="group__encoder.html#ga476c5417f9c15a1dc5d3f68fa44c493f" title="Multi-pass Encoding Pass.">vpx_enc_pass</a> g_pass;</div> <div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div> <div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div> <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> g_lag_in_frames;</div> <div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div> <div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div> <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="comment">/*</span></div> <div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="comment"> * rate control settings (rc)</span></div> <div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment"> */</span></div> <div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div> <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_dropframe_thresh;</div> <div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div> <div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div> <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_resize_allowed;</div> <div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div> <div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div> <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_resize_up_thresh;</div> <div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div> <div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div> <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_resize_down_thresh;</div> <div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div> <div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div> <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keyword">enum</span> <a class="code" href="group__encoder.html#gaf50e74d91be4cae6f70dfeba5b7410d2" title="Rate control mode.">vpx_rc_mode</a> rc_end_usage;</div> <div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div> <div class="line"><a name="l00433"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#a1be7bd7b0eaf1e99b5e4028c37c65488"> 433</a></span> </div> <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keyword">struct </span><a class="code" href="structvpx__fixed__buf.html" title="Generic fixed size buffer structure.">vpx_fixed_buf</a> rc_twopass_stats_in;</div> <div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div> <div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div> <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_target_bitrate;</div> <div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div> <div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div> <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="comment">/*</span></div> <div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment"> * quantizer settings</span></div> <div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment"> */</span></div> <div class="line"><a name="l00452"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#a618616a07d9d8883c544731957b56f3c"> 452</a></span> </div> <div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div> <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_min_quantizer;</div> <div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div> <div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div> <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_max_quantizer;</div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div> <div class="line"><a name="l00475"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#a1324600e3c63faaa7717e85cf6509dd9"> 475</a></span> </div> <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="comment">/*</span></div> <div class="line"><a name="l00477"></a><span class="lineno"> 477</span> <span class="comment"> * bitrate tolerance</span></div> <div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="comment"> */</span></div> <div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div> <div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div> <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_undershoot_pct;</div> <div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div> <div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div> <div class="line"><a name="l00504"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#ad279fbb0a9fe9395340913161e28651a"> 504</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_overshoot_pct;</div> <div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div> <div class="line"><a name="l00506"></a><span class="lineno"> 506</span> </div> <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="comment">/*</span></div> <div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="comment"> * decoder buffer model parameters</span></div> <div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="comment"> */</span></div> <div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div> <div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div> <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_buf_sz;</div> <div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div> <div class="line"><a name="l00523"></a><span class="lineno"> 523</span> </div> <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_buf_initial_sz;</div> <div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div> <div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div> <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_buf_optimal_sz;</div> <div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div> <div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div> <div class="line"><a name="l00544"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#aa9e4d6405994ef42d61d478cf6e0d5e0"> 544</a></span>  <span class="comment">/*</span></div> <div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="comment"> * 2 pass rate control parameters</span></div> <div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="comment"> */</span></div> <div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div> <div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div> <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_2pass_vbr_bias_pct; </div> <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_2pass_vbr_minsection_pct;</div> <div class="line"><a name="l00566"></a><span class="lineno"> 566</span> </div> <div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div> <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> rc_2pass_vbr_maxsection_pct;</div> <div class="line"><a name="l00574"></a><span class="lineno"> 574</span> </div> <div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div> <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="comment">/*</span></div> <div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="comment"> * keyframing settings (kf)</span></div> <div class="line"><a name="l00578"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#a21eb9fce0844ae07b617bf3f0a25f5a5"> 578</a></span> <span class="comment"> */</span></div> <div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div> <div class="line"><a name="l00586"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#ab5212050b71b2d9f4dc663caa496949e"> 586</a></span>  <span class="keyword">enum</span> <a class="code" href="group__encoder.html#ga9f461802aa4db35c04a8b23837987f40" title="Keyframe placement mode.">vpx_kf_mode</a> kf_mode;</div> <div class="line"><a name="l00587"></a><span class="lineno"> 587</span> </div> <div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div> <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> kf_min_dist;</div> <div class="line"><a name="l00597"></a><span class="lineno"> 597</span> </div> <div class="line"><a name="l00598"></a><span class="lineno"> 598</span> </div> <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> kf_max_dist;</div> <div class="line"><a name="l00607"></a><span class="lineno"> 607</span> </div> <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="comment">/*</span></div> <div class="line"><a name="l00609"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#a0a7b5444ecb09745cbe8d5af17553846"> 609</a></span> <span class="comment"> * Temporal scalability settings (ts)</span></div> <div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="comment"> */</span></div> <div class="line"><a name="l00611"></a><span class="lineno"> 611</span> </div> <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ts_number_layers;</div> <div class="line"><a name="l00617"></a><span class="lineno"> 617</span> </div> <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ts_target_bitrate[<a class="code" href="group__encoder.html#ga2715ac3dd8bf2f5438c4bbfc82788eb2">VPX_TS_MAX_LAYERS</a>];</div> <div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div> <div class="line"><a name="l00629"></a><span class="lineno"><a class="code" href="structvpx__codec__enc__cfg.html#a16d4549a30cbd585e3c3056ef873d8c7"> 629</a></span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ts_rate_decimator[<a class="code" href="group__encoder.html#ga2715ac3dd8bf2f5438c4bbfc82788eb2">VPX_TS_MAX_LAYERS</a>];</div> <div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div> <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ts_periodicity;</div> <div class="line"><a name="l00639"></a><span class="lineno"> 639</span> </div> <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ts_layer_id[<a class="code" href="group__encoder.html#ga684b48cb6e47a258247637186557eb19">VPX_TS_MAX_PERIODICITY</a>];</div> <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  } <a class="code" href="group__encoder.html#ga946236c809e493b31a815d82db1e59db" title="Encoder configuration structure.">vpx_codec_enc_cfg_t</a>; </div> <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <a class="code" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2" title="Algorithm return codes.">vpx_codec_err_t</a> <a class="code" href="group__encoder.html#ga6ed21b96c481c0b6e1b543ef958a57a4" title="Initialize an encoder instance.">vpx_codec_enc_init_ver</a>(<a class="code" href="structvpx__codec__ctx.html" title="Codec context structure.">vpx_codec_ctx_t</a> *ctx,</div> <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <a class="code" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e" title="Codec interface structure.">vpx_codec_iface_t</a> *iface,</div> <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <a class="code" href="structvpx__codec__enc__cfg.html" title="Encoder configuration structure.">vpx_codec_enc_cfg_t</a> *cfg,</div> <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <a class="code" href="group__codec.html#ga3b36d5af89ddc463489fe5bde0a57877" title="Initialization-time Feature Enabling.">vpx_codec_flags_t</a> flags,</div> <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordtype">int</span> ver);</div> <div class="line"><a name="l00682"></a><span class="lineno"> 682</span> </div> <div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div> <div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor">#define vpx_codec_enc_init(ctx, iface, cfg, flags) \</span></div> <div class="line"><a name="l00689"></a><span class="lineno"> 689</span> <span class="preprocessor"> vpx_codec_enc_init_ver(ctx, iface, cfg, flags, VPX_ENCODER_ABI_VERSION)</span></div> <div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00691"></a><span class="lineno"> 691</span> </div> <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <a class="code" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2" title="Algorithm return codes.">vpx_codec_err_t</a> <a class="code" href="group__encoder.html#ga1c0415984a5469687f53613a5471f53d" title="Initialize multi-encoder instance.">vpx_codec_enc_init_multi_ver</a>(<a class="code" href="structvpx__codec__ctx.html" title="Codec context structure.">vpx_codec_ctx_t</a> *ctx,</div> <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e" title="Codec interface structure.">vpx_codec_iface_t</a> *iface,</div> <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <a class="code" href="structvpx__codec__enc__cfg.html" title="Encoder configuration structure.">vpx_codec_enc_cfg_t</a> *cfg,</div> <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordtype">int</span> num_enc,</div> <div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <a class="code" href="group__codec.html#ga3b36d5af89ddc463489fe5bde0a57877" title="Initialization-time Feature Enabling.">vpx_codec_flags_t</a> flags,</div> <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <a class="code" href="structvpx__rational.html" title="Rational Number.">vpx_rational_t</a> *dsf,</div> <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordtype">int</span> ver);</div> <div class="line"><a name="l00723"></a><span class="lineno"> 723</span> </div> <div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div> <div class="line"><a name="l00729"></a><span class="lineno"> 729</span> <span class="preprocessor">#define vpx_codec_enc_init_multi(ctx, iface, cfg, num_enc, flags, dsf) \</span></div> <div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="preprocessor"> vpx_codec_enc_init_multi_ver(ctx, iface, cfg, num_enc, flags, dsf, \</span></div> <div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="preprocessor"> VPX_ENCODER_ABI_VERSION)</span></div> <div class="line"><a name="l00732"></a><span class="lineno"> 732</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00733"></a><span class="lineno"> 733</span> </div> <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <a class="code" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2" title="Algorithm return codes.">vpx_codec_err_t</a> <a class="code" href="group__encoder.html#ga9ab8c79623312e9c5d5405d66a788f59" title="Get a default configuration.">vpx_codec_enc_config_default</a>(<a class="code" href="group__codec.html#gad654f3da60151f5dfef70aca00ef1e9e" title="Codec interface structure.">vpx_codec_iface_t</a> *iface,</div> <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <a class="code" href="structvpx__codec__enc__cfg.html" title="Encoder configuration structure.">vpx_codec_enc_cfg_t</a> *cfg,</div> <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> usage);</div> <div class="line"><a name="l00756"></a><span class="lineno"> 756</span> </div> <div class="line"><a name="l00757"></a><span class="lineno"> 757</span> </div> <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <a class="code" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2" title="Algorithm return codes.">vpx_codec_err_t</a> <a class="code" href="group__encoder.html#gabbc036b1fbc1288485df5562a989da9b" title="Set or change configuration.">vpx_codec_enc_config_set</a>(<a class="code" href="structvpx__codec__ctx.html" title="Codec context structure.">vpx_codec_ctx_t</a> *ctx,</div> <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keyword">const</span> <a class="code" href="structvpx__codec__enc__cfg.html" title="Encoder configuration structure.">vpx_codec_enc_cfg_t</a> *cfg);</div> <div class="line"><a name="l00774"></a><span class="lineno"> 774</span> </div> <div class="line"><a name="l00775"></a><span class="lineno"> 775</span> </div> <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <a class="code" href="structvpx__fixed__buf.html" title="Generic fixed size buffer structure.">vpx_fixed_buf_t</a> *<a class="code" href="group__encoder.html#ga512eb105fef18bebb02e134e4cbc82ff" title="Get global stream headers.">vpx_codec_get_global_headers</a>(<a class="code" href="structvpx__codec__ctx.html" title="Codec context structure.">vpx_codec_ctx_t</a> *ctx);</div> <div class="line"><a name="l00788"></a><span class="lineno"> 788</span> </div> <div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div> <div class="line"><a name="l00790"></a><span class="lineno"> 790</span> <span class="preprocessor">#define VPX_DL_REALTIME (1) </span></div> <div class="line"><a name="l00792"></a><span class="lineno"> 792</span> <span class="preprocessor">#define VPX_DL_GOOD_QUALITY (1000000) </span></div> <div class="line"><a name="l00794"></a><span class="lineno"> 794</span> <span class="preprocessor">#define VPX_DL_BEST_QUALITY (0) </span></div> <div class="line"><a name="l00832"></a><span class="lineno"> 832</span> <span class="preprocessor"> vpx_codec_err_t vpx_codec_encode(vpx_codec_ctx_t *ctx,</span></div> <div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="preprocessor"></span> <span class="keyword">const</span> <a class="code" href="structvpx__image.html" title="Image Descriptor.">vpx_image_t</a> *img,</div> <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  vpx_codec_pts_t pts,</div> <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> duration,</div> <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  vpx_enc_frame_flags_t flags,</div> <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> deadline);</div> <div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div> <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <a class="code" href="group__codec.html#gada1084710837ad363b92f2379dd2b8d2" title="Algorithm return codes.">vpx_codec_err_t</a> <a class="code" href="group__encoder.html#gae9f8f75978a1ebcf1f358964b55ecb9e" title="Set compressed data output buffer.">vpx_codec_set_cx_data_buf</a>(<a class="code" href="structvpx__codec__ctx.html" title="Codec context structure.">vpx_codec_ctx_t</a> *ctx,</div> <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keyword">const</span> <a class="code" href="structvpx__fixed__buf.html" title="Generic fixed size buffer structure.">vpx_fixed_buf_t</a> *<a class="code" href="structvpx__fixed__buf.html#ac93e43ae3fcc1023dca86d37016ae3f0">buf</a>,</div> <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pad_before,</div> <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pad_after);</div> <div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div> <div class="line"><a name="l00887"></a><span class="lineno"> 887</span> </div> <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="keyword">const</span> <a class="code" href="structvpx__codec__cx__pkt.html" title="Encoder output packet.">vpx_codec_cx_pkt_t</a> *<a class="code" href="group__encoder.html#gae81cab25d66cf3bc59f1f75f8a5af720" title="Encoded data iterator.">vpx_codec_get_cx_data</a>(<a class="code" href="structvpx__codec__ctx.html" title="Codec context structure.">vpx_codec_ctx_t</a> *ctx,</div> <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <a class="code" href="group__codec.html#ga6ea348f76b1f8a1fe50e14db684146c6" title="Iterator.">vpx_codec_iter_t</a> *iter);</div> <div class="line"><a name="l00913"></a><span class="lineno"> 913</span> </div> <div class="line"><a name="l00914"></a><span class="lineno"> 914</span> </div> <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keyword">const</span> <a class="code" href="structvpx__image.html" title="Image Descriptor.">vpx_image_t</a> *<a class="code" href="group__encoder.html#ga250aee4536aa2475e85cf61c9710c963" title="Get Preview Frame.">vpx_codec_get_preview_frame</a>(<a class="code" href="structvpx__codec__ctx.html" title="Codec context structure.">vpx_codec_ctx_t</a> *ctx);</div> <div class="line"><a name="l00928"></a><span class="lineno"> 928</span> </div> <div class="line"><a name="l00929"></a><span class="lineno"> 929</span> </div> <div class="line"><a name="l00932"></a><span class="lineno"> 932</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00933"></a><span class="lineno"> 933</span> <span class="preprocessor"></span><span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="preprocessor"></span>}</div> <div class="line"><a name="l00935"></a><span class="lineno"> 935</span> <span class="preprocessor">#endif</span></div> </div><!-- fragment --></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.3 </small></address> </body> </html>