Sophie

Sophie

distrib > Mandriva > 2010.0 > x86_64 > media > main-release > by-pkgid > f250c16c2b84c9364a2f35a71121aaa2 > files > 298

lib64dirac-devel-1.0.2-2mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Dirac Video Codec</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<h1 align="center" color="#606080">
Dirac - A Video Codec
</h1>
<p align="center">
Created by the <a href="http://www.bbc.co.uk">British Broadcasting Corporation</a>.
</p>
<hr>
<!-- Generated by Doxygen 1.5.9 -->
<h1>dirac_encoder.h</h1><a href="a00182.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* ***** BEGIN LICENSE BLOCK *****</span>
<a name="l00002"></a>00002 <span class="comment">*</span>
<a name="l00003"></a>00003 <span class="comment">* $Id: dirac_encoder.h,v 1.28 2008/11/18 23:25:54 asuraparaju Exp $ $Name: Dirac_1_0_2 $</span>
<a name="l00004"></a>00004 <span class="comment">*</span>
<a name="l00005"></a>00005 <span class="comment">* Version: MPL 1.1/GPL 2.0/LGPL 2.1</span>
<a name="l00006"></a>00006 <span class="comment">*</span>
<a name="l00007"></a>00007 <span class="comment">* The contents of this file are subject to the Mozilla Public License</span>
<a name="l00008"></a>00008 <span class="comment">* Version 1.1 (the "License"); you may not use this file except in compliance</span>
<a name="l00009"></a>00009 <span class="comment">* with the License. You may obtain a copy of the License at</span>
<a name="l00010"></a>00010 <span class="comment">* http://www.mozilla.org/MPL/</span>
<a name="l00011"></a>00011 <span class="comment">*</span>
<a name="l00012"></a>00012 <span class="comment">* Software distributed under the License is distributed on an "AS IS" basis,</span>
<a name="l00013"></a>00013 <span class="comment">* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for</span>
<a name="l00014"></a>00014 <span class="comment">* the specific language governing rights and limitations under the License.</span>
<a name="l00015"></a>00015 <span class="comment">*</span>
<a name="l00016"></a>00016 <span class="comment">* The Original Code is BBC Research and Development code.</span>
<a name="l00017"></a>00017 <span class="comment">*</span>
<a name="l00018"></a>00018 <span class="comment">* The Initial Developer of the Original Code is the British Broadcasting</span>
<a name="l00019"></a>00019 <span class="comment">* Corporation.</span>
<a name="l00020"></a>00020 <span class="comment">* Portions created by the Initial Developer are Copyright (C) 2004.</span>
<a name="l00021"></a>00021 <span class="comment">* All Rights Reserved.</span>
<a name="l00022"></a>00022 <span class="comment">*</span>
<a name="l00023"></a>00023 <span class="comment">* Contributor(s): Anuradha Suraparaju (Original Author)</span>
<a name="l00024"></a>00024 <span class="comment">*                 Andrew Kennedy,</span>
<a name="l00025"></a>00025 <span class="comment">*                 Thomas Davies</span>
<a name="l00026"></a>00026 <span class="comment">*                 Myo Tun (Brunel University, myo.tun@brunel.ac.uk)                  </span>
<a name="l00027"></a>00027 <span class="comment">*</span>
<a name="l00028"></a>00028 <span class="comment">* Alternatively, the contents of this file may be used under the terms of</span>
<a name="l00029"></a>00029 <span class="comment">* the GNU General Public License Version 2 (the "GPL"), or the GNU Lesser</span>
<a name="l00030"></a>00030 <span class="comment">* Public License Version 2.1 (the "LGPL"), in which case the provisions of</span>
<a name="l00031"></a>00031 <span class="comment">* the GPL or the LGPL are applicable instead of those above. If you wish to</span>
<a name="l00032"></a>00032 <span class="comment">* allow use of your version of this file only under the terms of the either</span>
<a name="l00033"></a>00033 <span class="comment">* the GPL or LGPL and not to allow others to use your version of this file</span>
<a name="l00034"></a>00034 <span class="comment">* under the MPL, indicate your decision by deleting the provisions above</span>
<a name="l00035"></a>00035 <span class="comment">* and replace them with the notice and other provisions required by the GPL</span>
<a name="l00036"></a>00036 <span class="comment">* or LGPL. If you do not delete the provisions above, a recipient may use</span>
<a name="l00037"></a>00037 <span class="comment">* your version of this file under the terms of any one of the MPL, the GPL</span>
<a name="l00038"></a>00038 <span class="comment">* or the LGPL.</span>
<a name="l00039"></a>00039 <span class="comment">* ***** END LICENSE BLOCK ***** */</span>
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 <span class="preprocessor">#ifndef DIRAC_ENCODER_H</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#define DIRAC_ENCODER_H</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span>
<a name="l00044"></a>00044 <span class="preprocessor">#include &lt;<a class="code" href="a00184.html">libdirac_common/dirac_inttypes.h</a>&gt;</span>
<a name="l00045"></a>00045 <span class="preprocessor">#include &lt;<a class="code" href="a00186.html">libdirac_common/dirac_types.h</a>&gt;</span>
<a name="l00046"></a>00046 
<a name="l00151"></a>00151 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00152"></a>00152 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00153"></a>00153 <span class="preprocessor">#endif</span>
<a name="l00154"></a>00154 <span class="preprocessor"></span>
<a name="l00156"></a><a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb306">00156</a> <span class="keyword">typedef</span> <span class="keyword">enum</span>
<a name="l00157"></a>00157 { 
<a name="l00158"></a><a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb306de4346f74475e567da4d6649338f94b8">00158</a>     <a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb306de4346f74475e567da4d6649338f94b8">ENC_STATE_INVALID</a> = -1, 
<a name="l00159"></a><a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb306c0af1f9ec7a1e9c3df9edb491ca239ae">00159</a>     <a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb306c0af1f9ec7a1e9c3df9edb491ca239ae">ENC_STATE_BUFFER</a>, 
<a name="l00160"></a><a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb30606dc87bdac156124d857134bd3cd21a7">00160</a>     <a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb30606dc87bdac156124d857134bd3cd21a7">ENC_STATE_AVAIL</a>,
<a name="l00161"></a><a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb3060646324c54664fd896a9c7862ff1fd0d">00161</a>     <a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb3060646324c54664fd896a9c7862ff1fd0d">ENC_STATE_EOS</a>
<a name="l00162"></a>00162 } <a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb306">dirac_encoder_state_t</a> ;
<a name="l00163"></a>00163 
<a name="l00166"></a><a class="code" href="a00182.html#e4f97a518d7dadee20022b31388ea197">00166</a> <span class="keyword">typedef</span> <a class="code" href="a00172.html#6f1cf42c54ea112b7d140127834ea43d">PrefilterType</a> <a class="code" href="a00172.html#6f1cf42c54ea112b7d140127834ea43d">dirac_prefilter_t</a>;
<a name="l00167"></a>00167 
<a name="l00170"></a><a class="code" href="a00182.html#5c2b1cecf4880c180845367d9a891689">00170</a> <span class="keyword">typedef</span> <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">VideoFormat</a> <a class="code" href="a00172.html#216a5d43d2a518325c84f100ed7735a5">dirac_encoder_presets_t</a>;
<a name="l00171"></a>00171 
<a name="l00174"></a><a class="code" href="a00182.html#7533c4c4245e67a6517d95749b712755">00174</a> <span class="keyword">typedef</span> <a class="code" href="a00172.html#73c509e14745c98e30772b6c4f8b6e1e">MVPrecisionType</a> <a class="code" href="a00172.html#73c509e14745c98e30772b6c4f8b6e1e">dirac_mvprecision_t</a>;
<a name="l00176"></a><a class="code" href="a00039.html">00176</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>
<a name="l00177"></a>00177 {
<a name="l00179"></a><a class="code" href="a00039.html#79d36505409e568eb7e6ffab4e44bc9c">00179</a>     <span class="keywordtype">int</span> lossless;
<a name="l00181"></a><a class="code" href="a00039.html#9bb8db248153dba10ef77fcdacd7baf8">00181</a>     <span class="keywordtype">float</span> qf;
<a name="l00183"></a><a class="code" href="a00039.html#dca8b03f0cb251108aba825a34ac7d61">00183</a>     <span class="keywordtype">int</span> full_search;
<a name="l00185"></a><a class="code" href="a00039.html#fbbea4b87c6ad6a09a1655ea413b22c7">00185</a>     <span class="keywordtype">int</span> combined_me;
<a name="l00187"></a><a class="code" href="a00039.html#01aa61edb55ecb51d07ec008465c8870">00187</a>     <span class="keywordtype">int</span> x_range_me;
<a name="l00189"></a><a class="code" href="a00039.html#8ca0073c7ba5ec54ec52f998030cf7fe">00189</a>     <span class="keywordtype">int</span> y_range_me;
<a name="l00191"></a><a class="code" href="a00039.html#6d94d835438eb8d20508f7a11a7741ff">00191</a>     <span class="keywordtype">int</span> L1_sep;
<a name="l00195"></a><a class="code" href="a00039.html#6fbaf0207e5c0a501775e49126827663">00195</a>     <span class="keywordtype">int</span> num_L1;
<a name="l00197"></a><a class="code" href="a00039.html#5239ad8d67be3cbc8f4c6cd9f8001159">00197</a>     <span class="keywordtype">float</span> cpd;
<a name="l00199"></a><a class="code" href="a00039.html#d40882396fd1fcacce4e444c232c28a7">00199</a>     <span class="keywordtype">int</span> xblen;
<a name="l00201"></a><a class="code" href="a00039.html#9a158fcd1d7d9d583e5187b4c288f36c">00201</a>     <span class="keywordtype">int</span> yblen;
<a name="l00203"></a><a class="code" href="a00039.html#93549bb314f98fa3919992f987571785">00203</a>     <span class="keywordtype">int</span> xbsep;
<a name="l00205"></a><a class="code" href="a00039.html#75c3c55518ab64d7d6197c6b6582db2f">00205</a>     <span class="keywordtype">int</span> ybsep;
<a name="l00207"></a><a class="code" href="a00039.html#d61d4e56bc7c2f853a6efbf4e886e7f7">00207</a>     <span class="keywordtype">int</span> video_format;
<a name="l00209"></a><a class="code" href="a00039.html#6aa0fa16d58668cdf2136f01ce6fd307">00209</a>     <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">dirac_wlt_filter_t</a> intra_wlt_filter;
<a name="l00211"></a><a class="code" href="a00039.html#a5c871f967865d64444a7df7e5723948">00211</a>     <a class="code" href="a00172.html#cb32bc58ece3811ce3ce9aa0375a67a4">dirac_wlt_filter_t</a> inter_wlt_filter;
<a name="l00213"></a><a class="code" href="a00039.html#d431404e6785ea654cf8a4f383b91a40">00213</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> wlt_depth;
<a name="l00215"></a><a class="code" href="a00039.html#aac0b89123277beb96c560063e059b88">00215</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> spatial_partition;
<a name="l00217"></a><a class="code" href="a00039.html#e98bb8079a3269766bfd981c5a8f15ec">00217</a>     dirac_prefilter_t prefilter;
<a name="l00219"></a><a class="code" href="a00039.html#24ab4d0454c0a1779310fee8864e7806">00219</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> prefilter_strength;
<a name="l00221"></a><a class="code" href="a00039.html#a486bc4677987cc4ad53f10ea3a263cf">00221</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> multi_quants;
<a name="l00223"></a><a class="code" href="a00039.html#e997b3ee70b68bacb7f94a2b78a59668">00223</a>     dirac_mvprecision_t mv_precision;
<a name="l00225"></a><a class="code" href="a00039.html#9b280820e4b502e55448b76b1d64cd61">00225</a>     <span class="keywordtype">int</span> trate;
<a name="l00227"></a><a class="code" href="a00039.html#79321448ff5eba3aa49f0a21dc9349a1">00227</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> picture_coding_mode;
<a name="l00229"></a><a class="code" href="a00039.html#44d49dfaf7cc951eaad3dd310cda5669">00229</a>     <span class="keywordtype">int</span> using_ac;
<a name="l00230"></a>00230 } <a class="code" href="a00039.html">dirac_encparams_t</a>;
<a name="l00231"></a>00231 
<a name="l00233"></a><a class="code" href="a00037.html">00233</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00234"></a>00234 {
<a name="l00236"></a><a class="code" href="a00037.html#7fad97f828b9e2a7baaa6e1e7b15f3a7">00236</a>     <a class="code" href="a00048.html">dirac_sourceparams_t</a> src_params;
<a name="l00238"></a><a class="code" href="a00037.html#872d2d22bf56a7647e0b0332eea01907">00238</a>     <a class="code" href="a00039.html">dirac_encparams_t</a> enc_params;
<a name="l00240"></a><a class="code" href="a00037.html#116dbe79efb97724a8893012243e23af">00240</a>     <span class="keywordtype">int</span> instr_flag;
<a name="l00243"></a><a class="code" href="a00037.html#3231fbea499c04caba32483d2f304b5e">00243</a>     <span class="keywordtype">int</span> decode_flag;
<a name="l00244"></a>00244 } <a class="code" href="a00037.html">dirac_encoder_context_t</a>;
<a name="l00245"></a>00245 
<a name="l00258"></a>00258 <span class="keyword">extern</span> <a class="code" href="a00186.html#f83a0ad9d707a0bc5fe281b6e5c358a1">DllExport</a> <span class="keywordtype">void</span> <a class="code" href="a00182.html#24cf3cb4253eb9034252e2885278cb00">dirac_encoder_context_init</a> (<a class="code" href="a00037.html">dirac_encoder_context_t</a> *enc_ctx, dirac_encoder_presets_t preset);
<a name="l00259"></a>00259 
<a name="l00260"></a>00260 
<a name="l00262"></a><a class="code" href="a00034.html">00262</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00263"></a>00263 {
<a name="l00265"></a><a class="code" href="a00034.html#ee1af14811380b487c9ae5f59bcd770c">00265</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *buffer;
<a name="l00267"></a><a class="code" href="a00034.html#f2ca5a9c2b83edbaa7ed21fc39df2b3c">00267</a>     <span class="keywordtype">int</span> size;
<a name="l00268"></a>00268 } <a class="code" href="a00034.html">dirac_enc_data_t</a>;
<a name="l00269"></a>00269 
<a name="l00271"></a><a class="code" href="a00035.html">00271</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00272"></a>00272 {
<a name="l00274"></a><a class="code" href="a00035.html#cd879c81b079a5ccf2abc8d41245c546">00274</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mv_bits;
<a name="l00276"></a><a class="code" href="a00035.html#658793294053ba743766bf5364a1fd15">00276</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ycomp_bits;
<a name="l00278"></a><a class="code" href="a00035.html#047491eca03911bf0324d6b58d8f8aa5">00278</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> ucomp_bits;
<a name="l00280"></a><a class="code" href="a00035.html#d512c4189857142578d3d3bab9dfd606">00280</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> vcomp_bits;
<a name="l00282"></a><a class="code" href="a00035.html#7afa13f87080e73ccbe6beb2bc932ba8">00282</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> pic_bits;
<a name="l00283"></a>00283 } <a class="code" href="a00035.html">dirac_enc_picstats_t</a>;
<a name="l00284"></a>00284 
<a name="l00286"></a><a class="code" href="a00036.html">00286</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00287"></a>00287 {
<a name="l00289"></a><a class="code" href="a00036.html#7864a24d2cf6ec7f51f9ee4700cba939">00289</a>     int64_t mv_bits;
<a name="l00291"></a><a class="code" href="a00036.html#b1ebdb77b00ef51c71095cf8054a64be">00291</a>     int64_t seq_bits;
<a name="l00293"></a><a class="code" href="a00036.html#5b94a6e64bda27df8452283403fad723">00293</a>     int64_t ycomp_bits;
<a name="l00295"></a><a class="code" href="a00036.html#ebce35871d594446e38ea7f1864490d9">00295</a>     int64_t ucomp_bits;
<a name="l00297"></a><a class="code" href="a00036.html#450f549922ffad22202da170e633d754">00297</a>     int64_t vcomp_bits;
<a name="l00299"></a><a class="code" href="a00036.html#9c2dd2a17f09b7f06af72a1452a29f8b">00299</a>     int64_t bit_rate;
<a name="l00300"></a>00300 } <a class="code" href="a00036.html">dirac_enc_seqstats_t</a>;
<a name="l00301"></a>00301 
<a name="l00303"></a><a class="code" href="a00043.html">00303</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00304"></a>00304 {
<a name="l00306"></a><a class="code" href="a00043.html#b4698534ad16046ec6818be7eab21786">00306</a>     <span class="keywordtype">int</span> x;
<a name="l00308"></a><a class="code" href="a00043.html#d7788deeb9f75c56148a192dc135ed66">00308</a>     <span class="keywordtype">int</span> y;
<a name="l00309"></a>00309 } <a class="code" href="a00043.html">dirac_mv_t</a>;
<a name="l00310"></a>00310 
<a name="l00312"></a><a class="code" href="a00042.html">00312</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00313"></a>00313 {
<a name="l00315"></a><a class="code" href="a00042.html#355612d17300fe5e69983a451f10be66">00315</a>     <span class="keywordtype">float</span> <a class="code" href="a00235.html#e4384603fcfba735dd9d69fab4fe1c1ef8a78bba4fa93b25e2d33f655bffe4ca">SAD</a>;
<a name="l00317"></a><a class="code" href="a00042.html#1cccd2e027ac5cadd8d4b0f2dee8dff7">00317</a>     <span class="keywordtype">float</span> mvcost;
<a name="l00318"></a>00318 } <a class="code" href="a00042.html">dirac_mv_cost_t</a>;
<a name="l00319"></a>00319 
<a name="l00321"></a><a class="code" href="a00041.html">00321</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00322"></a>00322 {
<a name="l00324"></a><a class="code" href="a00041.html#a09cfb0f8aa108ef7150ef005422ea5a">00324</a>     <a class="code" href="a00172.html#4f37629f775549c508f4c5625ae348b3">dirac_picture_type_t</a> ptype;
<a name="l00326"></a><a class="code" href="a00041.html#c52fbab366f5d2b9905acfa90e7d6a9b">00326</a>     <a class="code" href="a00172.html#a298d9663bceef9c2ac2880c5bae3327">dirac_reference_type_t</a> rtype;
<a name="l00328"></a><a class="code" href="a00041.html#e79084fbd5ae2cfd12ab8ca8a8fa4f5c">00328</a>     <span class="keywordtype">int</span> pnum;
<a name="l00330"></a><a class="code" href="a00041.html#fbe03f99335219a908f977b57c1d82bc">00330</a>     <span class="keywordtype">int</span> num_refs;
<a name="l00332"></a><a class="code" href="a00041.html#8c25c313948d80a6ec4e68ae03912ad5">00332</a>     <span class="keywordtype">int</span> refs[2];
<a name="l00334"></a><a class="code" href="a00041.html#29d49b9e7f37490a9d18d9cc419e6dd6">00334</a>     <span class="keywordtype">int</span> xbsep;
<a name="l00336"></a><a class="code" href="a00041.html#6a9dd8532736ce2d481ba1fe15374766">00336</a>     <span class="keywordtype">int</span> ybsep;
<a name="l00338"></a><a class="code" href="a00041.html#4e1e1651c5c4820941533d0aae23f447">00338</a>     <span class="keywordtype">int</span> sb_xlen;
<a name="l00340"></a><a class="code" href="a00041.html#25ecd0cd3f0eb2456531fe2166d55ff1">00340</a>     <span class="keywordtype">int</span> sb_ylen;
<a name="l00342"></a><a class="code" href="a00041.html#7ee25b49b20ad0d8a1c52ec3b1f88281">00342</a>     <span class="keywordtype">int</span> mv_xlen;
<a name="l00344"></a><a class="code" href="a00041.html#64f2d0284fc38f576b967b6fd045519a">00344</a>     <span class="keywordtype">int</span> mv_ylen;
<a name="l00346"></a><a class="code" href="a00041.html#9d56442de219847c0b16c56bb3a013c5">00346</a>     <span class="keywordtype">int</span> *sb_split_mode;
<a name="l00348"></a><a class="code" href="a00041.html#f218022b1b010445a6f5b2aa44af4cd7">00348</a>     <span class="keywordtype">float</span> *sb_costs;
<a name="l00350"></a><a class="code" href="a00041.html#4bd112fb3ba817aa81c2c4b407f51902">00350</a>     <span class="keywordtype">int</span> *<a class="code" href="a00235.html#e4384603fcfba735dd9d69fab4fe1c1e9e896898c1c015a91230b0a0a760c598">pred_mode</a>;
<a name="l00352"></a><a class="code" href="a00041.html#85c29412bc5ffcb2d08225460e0f9a7c">00352</a>     <span class="keywordtype">float</span> *intra_costs;
<a name="l00354"></a><a class="code" href="a00041.html#e845c319dfc95495a78f7841b9658eba">00354</a>     <a class="code" href="a00042.html">dirac_mv_cost_t</a> *bipred_costs;
<a name="l00356"></a><a class="code" href="a00041.html#db6782aee4b2e5903f9b62b2620dd216">00356</a>     <span class="keywordtype">short</span> *dc_ycomp;
<a name="l00358"></a><a class="code" href="a00041.html#68f75f222f5b3fa0f636c9ea556efa65">00358</a>     <span class="keywordtype">short</span> *dc_ucomp;
<a name="l00360"></a><a class="code" href="a00041.html#d74b16e31f36b2cab12e90aba5f2c96e">00360</a>     <span class="keywordtype">short</span> *dc_vcomp;
<a name="l00362"></a><a class="code" href="a00041.html#38e9eac94937062bbe7b30c5b262fddc">00362</a>     <a class="code" href="a00043.html">dirac_mv_t</a> *mv[2];
<a name="l00364"></a><a class="code" href="a00041.html#5ffc6dafd5758629fafce2ae2050a67e">00364</a>     <a class="code" href="a00042.html">dirac_mv_cost_t</a> *pred_costs[2];
<a name="l00365"></a>00365 } <a class="code" href="a00041.html">dirac_instr_t</a>;
<a name="l00366"></a>00366 
<a name="l00368"></a><a class="code" href="a00038.html">00368</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
<a name="l00369"></a>00369 {
<a name="l00371"></a><a class="code" href="a00038.html#a34946063d85515ea50ff201706e5bbd">00371</a>     <a class="code" href="a00037.html">dirac_encoder_context_t</a> enc_ctx;
<a name="l00372"></a>00372 
<a name="l00374"></a><a class="code" href="a00038.html#f14fbf7df565491477a9fcb8abaa773c">00374</a>     <span class="keywordtype">int</span> encoded_picture_avail;
<a name="l00375"></a>00375 
<a name="l00380"></a><a class="code" href="a00038.html#8607d19fbbadee9778a4cabcad5c30e8">00380</a>     <a class="code" href="a00034.html">dirac_enc_data_t</a> enc_buf;
<a name="l00381"></a>00381 
<a name="l00383"></a><a class="code" href="a00038.html#c9465cc8781e42a8d84db08533d3c1d9">00383</a>     <a class="code" href="a00045.html">dirac_picparams_t</a> enc_pparams;
<a name="l00384"></a>00384 
<a name="l00386"></a><a class="code" href="a00038.html#86398e6bd1c58232f71a3135a9e7f016">00386</a>     <a class="code" href="a00035.html">dirac_enc_picstats_t</a> enc_pstats;
<a name="l00387"></a>00387 
<a name="l00389"></a><a class="code" href="a00038.html#d378570d8444964748bcc1e5f8b6a125">00389</a>     <a class="code" href="a00036.html">dirac_enc_seqstats_t</a> enc_seqstats;
<a name="l00390"></a>00390 
<a name="l00392"></a><a class="code" href="a00038.html#6ddd8da59b48caa8b95463daa29e1628">00392</a>     <span class="keywordtype">int</span> end_of_sequence;
<a name="l00393"></a>00393 
<a name="l00394"></a>00394     <span class="comment">/* locally decoded frame (NB: not picture) available flag. </span>
<a name="l00395"></a>00395 <span class="comment">       1 - locally decoded frame available in dec_buf. </span>
<a name="l00396"></a>00396 <span class="comment">       0 - locally decoded frame not available.</span>
<a name="l00397"></a>00397 <span class="comment">    */</span>
<a name="l00398"></a><a class="code" href="a00038.html#64e150bf03761af0d0f21142de6a276b">00398</a>     <span class="keywordtype">int</span> decoded_frame_avail;
<a name="l00399"></a>00399 
<a name="l00404"></a><a class="code" href="a00038.html#d4edc018179aedc27b0680295535ca4b">00404</a>     <a class="code" href="a00040.html">dirac_framebuf_t</a> dec_buf;
<a name="l00405"></a>00405 
<a name="l00407"></a><a class="code" href="a00038.html#d32fecf142d3790b82818882540172ad">00407</a>     <a class="code" href="a00045.html">dirac_picparams_t</a> dec_pparams;
<a name="l00408"></a>00408 
<a name="l00412"></a><a class="code" href="a00038.html#90fc0bb7adb6226533321001df37f64c">00412</a>     <a class="code" href="a00041.html">dirac_instr_t</a> instr;
<a name="l00413"></a>00413 
<a name="l00418"></a><a class="code" href="a00038.html#a3fd9b4dddbae73cd77cf19f3460d649">00418</a>     <span class="keywordtype">int</span> instr_data_avail;
<a name="l00419"></a>00419 
<a name="l00421"></a><a class="code" href="a00038.html#833427e92b545fa5dc0ab117de051c30">00421</a>     <span class="keyword">const</span> <span class="keywordtype">void</span> *compressor;
<a name="l00422"></a>00422 } <a class="code" href="a00038.html">dirac_encoder_t</a>;
<a name="l00423"></a>00423 
<a name="l00430"></a>00430 <span class="keyword">extern</span> <a class="code" href="a00186.html#f83a0ad9d707a0bc5fe281b6e5c358a1">DllExport</a> <a class="code" href="a00038.html">dirac_encoder_t</a> *<a class="code" href="a00182.html#9062baaff3bbbc1880d8d59b5ee8e1e0">dirac_encoder_init</a> (<span class="keyword">const</span> <a class="code" href="a00037.html">dirac_encoder_context_t</a> *enc_ctx, <span class="keywordtype">int</span> verbose);
<a name="l00431"></a>00431 
<a name="l00432"></a>00432 <span class="preprocessor">#if DIRAC_RESEARCH_VERSION_ATLEAST(1,0,2)</span>
<a name="l00433"></a>00433 <span class="preprocessor"></span>
<a name="l00440"></a>00440 <span class="keyword">extern</span> <a class="code" href="a00186.html#f83a0ad9d707a0bc5fe281b6e5c358a1">DllExport</a> <span class="keywordtype">int</span> dirac_encoder_pts_offset (<span class="keyword">const</span> <a class="code" href="a00038.html">dirac_encoder_t</a> *encoder);
<a name="l00441"></a>00441 <span class="preprocessor">#endif</span>
<a name="l00442"></a>00442 <span class="preprocessor"></span>
<a name="l00452"></a>00452 <span class="keyword">extern</span> <a class="code" href="a00186.html#f83a0ad9d707a0bc5fe281b6e5c358a1">DllExport</a> <span class="keywordtype">int</span> <a class="code" href="a00182.html#bec8d7f0c177114a47910bedf807ea8e">dirac_encoder_load</a> (<a class="code" href="a00038.html">dirac_encoder_t</a> *encoder, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *uncdata, <span class="keywordtype">int</span> uncdata_size);
<a name="l00453"></a>00453 
<a name="l00464"></a>00464 <span class="keyword">extern</span> <a class="code" href="a00186.html#f83a0ad9d707a0bc5fe281b6e5c358a1">DllExport</a> <a class="code" href="a00182.html#5fc325d503a9b28131076aa3f8ebb306">dirac_encoder_state_t</a> <a class="code" href="a00182.html#2e7991c68ecf07b21eba6c06bd8fa43c">dirac_encoder_output</a> (<a class="code" href="a00038.html">dirac_encoder_t</a> *encoder);
<a name="l00465"></a>00465 
<a name="l00470"></a>00470 <span class="keyword">extern</span> <a class="code" href="a00186.html#f83a0ad9d707a0bc5fe281b6e5c358a1">DllExport</a> <span class="keywordtype">void</span> <a class="code" href="a00182.html#10b4ec1d1c0d1c571c5ea195e55fbd99">dirac_encoder_end_sequence</a> (<a class="code" href="a00038.html">dirac_encoder_t</a> *encoder);
<a name="l00471"></a>00471 
<a name="l00476"></a>00476 <span class="keyword">extern</span> <a class="code" href="a00186.html#f83a0ad9d707a0bc5fe281b6e5c358a1">DllExport</a> <span class="keywordtype">void</span> <a class="code" href="a00182.html#dbfe5fb6e0928ceeef27fe9ee7007054">dirac_encoder_close</a> (<a class="code" href="a00038.html">dirac_encoder_t</a> *encoder);
<a name="l00477"></a>00477 
<a name="l00478"></a>00478 <span class="preprocessor">#endif</span>
<a name="l00479"></a>00479 <span class="preprocessor"></span><span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00480"></a>00480 <span class="preprocessor"></span>}
<a name="l00481"></a>00481 <span class="preprocessor">#endif</span>
</pre></div></div>
<hr>
<p align="center"><small>
&copy; 2004 British Broadcasting Corporation.
Dirac code licensed under the <a href="http://www.mozilla.org/MPL/">Mozilla Public License (MPL) Version 1.1</a>.<br>
HTML documentation generated by Dimitri van Heesch's
excellent <a href="http://www.doxygen.org">Doxygen</a> tool.
</small></p>
</body>
</html>