Repository URL to install this package:
Version:
7:2.7.1-1ubuntu3 ▾
|
<!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"/>
<title>FFmpeg: libavcodec/avcodec.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">FFmpeg
 <span id="projectnumber">2.7.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<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>
<li><a href="examples.html"><span>Examples</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</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>
<div class="header">
<div class="headertitle">
<div class="title">libavcodec/avcodec.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="libavcodec_2avcodec_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * copyright (c) 2001 Fabrice Bellard</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This file is part of FFmpeg.</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * FFmpeg is free software; you can redistribute it and/or</span>
<a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Lesser General Public</span>
<a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span>
<a name="l00009"></a>00009 <span class="comment"> * version 2.1 of the License, or (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * FFmpeg is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="l00014"></a>00014 <span class="comment"> * Lesser General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Lesser General Public</span>
<a name="l00017"></a>00017 <span class="comment"> * License along with FFmpeg; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span>
<a name="l00019"></a>00019 <span class="comment"> */</span>
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="preprocessor">#ifndef AVCODEC_AVCODEC_H</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#define AVCODEC_AVCODEC_H</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00024"></a>00024 <span class="comment">/**</span>
<a name="l00025"></a>00025 <span class="comment"> * @file</span>
<a name="l00026"></a>00026 <span class="comment"> * @ingroup libavc</span>
<a name="l00027"></a>00027 <span class="comment"> * Libavcodec external API header</span>
<a name="l00028"></a>00028 <span class="comment"> */</span>
<a name="l00029"></a>00029
<a name="l00030"></a>00030 <span class="preprocessor">#include <errno.h></span>
<a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="samplefmt_8h.html">libavutil/samplefmt.h</a>"</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="attributes_8h.html" title="Macro definitions for various function/variable attributes.">libavutil/attributes.h</a>"</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="avutil_8h.html" title="external API header">libavutil/avutil.h</a>"</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="buffer_8h.html" title="refcounted data buffer API">libavutil/buffer.h</a>"</span>
<a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="cpu_8h.html">libavutil/cpu.h</a>"</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="channel__layout_8h.html" title="audio channel layout utility functions">libavutil/channel_layout.h</a>"</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="dict_8h.html" title="Public dictionary API.">libavutil/dict.h</a>"</span>
<a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="frame_8h.html" title="reference-counted frame API">libavutil/frame.h</a>"</span>
<a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="log_8h.html">libavutil/log.h</a>"</span>
<a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="pixfmt_8h.html" title="pixel format definitions">libavutil/pixfmt.h</a>"</span>
<a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="rational_8h.html" title="rational numbers">libavutil/rational.h</a>"</span>
<a name="l00042"></a>00042
<a name="l00043"></a>00043 <span class="preprocessor">#include "<a class="code" href="libavcodec_2version_8h.html" title="Libavcodec version macros.">version.h</a>"</span>
<a name="l00044"></a>00044 <span class="comment"></span>
<a name="l00045"></a>00045 <span class="comment">/**</span>
<a name="l00046"></a>00046 <span class="comment"> * @defgroup libavc Encoding/Decoding Library</span>
<a name="l00047"></a>00047 <span class="comment"> * @{</span>
<a name="l00048"></a>00048 <span class="comment"> *</span>
<a name="l00049"></a>00049 <span class="comment"> * @defgroup lavc_decoding Decoding</span>
<a name="l00050"></a>00050 <span class="comment"> * @{</span>
<a name="l00051"></a>00051 <span class="comment"> * @}</span>
<a name="l00052"></a>00052 <span class="comment"> *</span>
<a name="l00053"></a>00053 <span class="comment"> * @defgroup lavc_encoding Encoding</span>
<a name="l00054"></a>00054 <span class="comment"> * @{</span>
<a name="l00055"></a>00055 <span class="comment"> * @}</span>
<a name="l00056"></a>00056 <span class="comment"> *</span>
<a name="l00057"></a>00057 <span class="comment"> * @defgroup lavc_codec Codecs</span>
<a name="l00058"></a>00058 <span class="comment"> * @{</span>
<a name="l00059"></a>00059 <span class="comment"> * @defgroup lavc_codec_native Native Codecs</span>
<a name="l00060"></a>00060 <span class="comment"> * @{</span>
<a name="l00061"></a>00061 <span class="comment"> * @}</span>
<a name="l00062"></a>00062 <span class="comment"> * @defgroup lavc_codec_wrappers External library wrappers</span>
<a name="l00063"></a>00063 <span class="comment"> * @{</span>
<a name="l00064"></a>00064 <span class="comment"> * @}</span>
<a name="l00065"></a>00065 <span class="comment"> * @defgroup lavc_codec_hwaccel Hardware Accelerators bridge</span>
<a name="l00066"></a>00066 <span class="comment"> * @{</span>
<a name="l00067"></a>00067 <span class="comment"> * @}</span>
<a name="l00068"></a>00068 <span class="comment"> * @}</span>
<a name="l00069"></a>00069 <span class="comment"> * @defgroup lavc_internal Internal</span>
<a name="l00070"></a>00070 <span class="comment"> * @{</span>
<a name="l00071"></a>00071 <span class="comment"> * @}</span>
<a name="l00072"></a>00072 <span class="comment"> * @}</span>
<a name="l00073"></a>00073 <span class="comment"> *</span>
<a name="l00074"></a>00074 <span class="comment"> */</span>
<a name="l00075"></a>00075 <span class="comment"></span>
<a name="l00076"></a>00076 <span class="comment">/**</span>
<a name="l00077"></a>00077 <span class="comment"> * @defgroup lavc_core Core functions/structures.</span>
<a name="l00078"></a>00078 <span class="comment"> * @ingroup libavc</span>
<a name="l00079"></a>00079 <span class="comment"> *</span>
<a name="l00080"></a>00080 <span class="comment"> * Basic definitions, functions for querying libavcodec capabilities,</span>
<a name="l00081"></a>00081 <span class="comment"> * allocating core structures, etc.</span>
<a name="l00082"></a>00082 <span class="comment"> * @{</span>
<a name="l00083"></a>00083 <span class="comment"> */</span>
<a name="l00084"></a>00084
<a name="l00085"></a>00085 <span class="comment"></span>
<a name="l00086"></a>00086 <span class="comment">/**</span>
<a name="l00087"></a>00087 <span class="comment"> * Identify the syntax and semantics of the bitstream.</span>
<a name="l00088"></a>00088 <span class="comment"> * The principle is roughly:</span>
<a name="l00089"></a>00089 <span class="comment"> * Two decoders with the same ID can decode the same streams.</span>
<a name="l00090"></a>00090 <span class="comment"> * Two encoders with the same ID can encode compatible streams.</span>
<a name="l00091"></a>00091 <span class="comment"> * There may be slight deviations from the principle due to implementation</span>
<a name="l00092"></a>00092 <span class="comment"> * details.</span>
<a name="l00093"></a>00093 <span class="comment"> *</span>
<a name="l00094"></a>00094 <span class="comment"> * If you add a codec ID to this list, add it so that</span>
<a name="l00095"></a>00095 <span class="comment"> * 1. no value of a existing codec ID changes (that would break ABI),</span>
<a name="l00096"></a>00096 <span class="comment"> * 2. Give it a value which when taken as ASCII is recognized uniquely by a human as this specific codec.</span>
<a name="l00097"></a>00097 <span class="comment"> * This ensures that 2 forks can independently add AVCodecIDs without producing conflicts.</span>
<a name="l00098"></a>00098 <span class="comment"> *</span>
<a name="l00099"></a>00099 <span class="comment"> * After adding new codec IDs, do not forget to add an entry to the codec</span>
<a name="l00100"></a>00100 <span class="comment"> * descriptor list and bump libavcodec minor version.</span>
<a name="l00101"></a>00101 <span class="comment"> */</span>
<a name="l00102"></a><a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce">00102</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> {
<a name="l00103"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea48761c50b102343e2648c3e28a94e7ab">00103</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea48761c50b102343e2648c3e28a94e7ab">AV_CODEC_ID_NONE</a>,
<a name="l00104"></a>00104
<a name="l00105"></a>00105 <span class="comment">/* video codecs */</span>
<a name="l00106"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf019b13f4891b36ae579cd7bc96d1f78">00106</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf019b13f4891b36ae579cd7bc96d1f78">AV_CODEC_ID_MPEG1VIDEO</a>,
<a name="l00107"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf614abb36f7c5d0c42ed522c1d6c99f0">00107</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf614abb36f7c5d0c42ed522c1d6c99f0" title="preferred ID for MPEG-1/2 video decoding">AV_CODEC_ID_MPEG2VIDEO</a>, <span class="comment">///< preferred ID for MPEG-1/2 video decoding</span>
<a name="l00108"></a>00108 <span class="comment"></span><span class="preprocessor">#if FF_API_XVMC</span>
<a name="l00109"></a>00109 <span class="preprocessor"></span> AV_CODEC_ID_MPEG2VIDEO_XVMC,
<a name="l00110"></a>00110 <span class="preprocessor">#endif </span><span class="comment">/* FF_API_XVMC */</span>
<a name="l00111"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea11cf9a49627f70f6ab33d3bf93752ae4">00111</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea11cf9a49627f70f6ab33d3bf93752ae4">AV_CODEC_ID_H261</a>,
<a name="l00112"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac3d126631b15729d01d427b642c3bc9e">00112</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac3d126631b15729d01d427b642c3bc9e">AV_CODEC_ID_H263</a>,
<a name="l00113"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8565d2953c28245356f94c3fde6480ea">00113</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8565d2953c28245356f94c3fde6480ea">AV_CODEC_ID_RV10</a>,
<a name="l00114"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab0bbb03eef201676cd723df390cdc795">00114</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab0bbb03eef201676cd723df390cdc795">AV_CODEC_ID_RV20</a>,
<a name="l00115"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadaaf3a9acfa91bd739c50299f6779409">00115</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadaaf3a9acfa91bd739c50299f6779409">AV_CODEC_ID_MJPEG</a>,
<a name="l00116"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa9d4e4b5bcc781a464a6099c26879d87">00116</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa9d4e4b5bcc781a464a6099c26879d87">AV_CODEC_ID_MJPEGB</a>,
<a name="l00117"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabcfdae1f16ef5a193eebc9358d4c944d">00117</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabcfdae1f16ef5a193eebc9358d4c944d">AV_CODEC_ID_LJPEG</a>,
<a name="l00118"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadfde4827ec22ff5303b888d0f8f5ad2e">00118</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadfde4827ec22ff5303b888d0f8f5ad2e">AV_CODEC_ID_SP5X</a>,
<a name="l00119"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceacb0e7018507b17ee90adb93fc65a7ee8">00119</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceacb0e7018507b17ee90adb93fc65a7ee8">AV_CODEC_ID_JPEGLS</a>,
<a name="l00120"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead95dfdf68b462db508b45fb693a4c09e">00120</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead95dfdf68b462db508b45fb693a4c09e">AV_CODEC_ID_MPEG4</a>,
<a name="l00121"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea1b88854d7b37174f45df205456d7c1cc">00121</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea1b88854d7b37174f45df205456d7c1cc">AV_CODEC_ID_RAWVIDEO</a>,
<a name="l00122"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea075f56399fdfd9f09a6bd58fd9f74b46">00122</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea075f56399fdfd9f09a6bd58fd9f74b46">AV_CODEC_ID_MSMPEG4V1</a>,
<a name="l00123"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5791eefbde4ab67a4c786c5f06371a61">00123</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5791eefbde4ab67a4c786c5f06371a61">AV_CODEC_ID_MSMPEG4V2</a>,
<a name="l00124"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf2c51d3f6f70b731f3b316d352e0fc62">00124</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf2c51d3f6f70b731f3b316d352e0fc62">AV_CODEC_ID_MSMPEG4V3</a>,
<a name="l00125"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea828ab11de849f8fb98d1d3bf9788a5cb">00125</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea828ab11de849f8fb98d1d3bf9788a5cb">AV_CODEC_ID_WMV1</a>,
<a name="l00126"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5362e286d0d453bee3940514f3f29641">00126</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5362e286d0d453bee3940514f3f29641">AV_CODEC_ID_WMV2</a>,
<a name="l00127"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf223d4b1dc9e6ed1b550d02a35c2542c">00127</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf223d4b1dc9e6ed1b550d02a35c2542c">AV_CODEC_ID_H263P</a>,
<a name="l00128"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae91678afc0c9bbaf38681c6c1c5441fa">00128</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae91678afc0c9bbaf38681c6c1c5441fa">AV_CODEC_ID_H263I</a>,
<a name="l00129"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea130d77683c690fdeeb9de1e9409d06d4">00129</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea130d77683c690fdeeb9de1e9409d06d4">AV_CODEC_ID_FLV1</a>,
<a name="l00130"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead6962d77136d74ee2ff0b8c9015b3cca">00130</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead6962d77136d74ee2ff0b8c9015b3cca">AV_CODEC_ID_SVQ1</a>,
<a name="l00131"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea35e8d1b643beef5a57fffbd2b3f44050">00131</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea35e8d1b643beef5a57fffbd2b3f44050">AV_CODEC_ID_SVQ3</a>,
<a name="l00132"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa10d44ae477c03846836534fadd73b06">00132</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa10d44ae477c03846836534fadd73b06">AV_CODEC_ID_DVVIDEO</a>,
<a name="l00133"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2240162eb5e79d7e0b0e4678704276c6">00133</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2240162eb5e79d7e0b0e4678704276c6">AV_CODEC_ID_HUFFYUV</a>,
<a name="l00134"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea09bdb43a318848e4a3f2436d121b9ec1">00134</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea09bdb43a318848e4a3f2436d121b9ec1">AV_CODEC_ID_CYUV</a>,
<a name="l00135"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea3d4c051c8b18a3c18750676a308c10be">00135</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea3d4c051c8b18a3c18750676a308c10be">AV_CODEC_ID_H264</a>,
<a name="l00136"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea82163fef605d01abf8632cd723551062">00136</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea82163fef605d01abf8632cd723551062">AV_CODEC_ID_INDEO3</a>,
<a name="l00137"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea11920474f1c6dada14ac2cfd36f67601">00137</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea11920474f1c6dada14ac2cfd36f67601">AV_CODEC_ID_VP3</a>,
<a name="l00138"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8c3ef0a1eec3cf22756a1323989ff4d8">00138</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8c3ef0a1eec3cf22756a1323989ff4d8">AV_CODEC_ID_THEORA</a>,
<a name="l00139"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadadb9fb777ad4b2b7e06106ca2d97ebb">00139</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadadb9fb777ad4b2b7e06106ca2d97ebb">AV_CODEC_ID_ASV1</a>,
<a name="l00140"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae6946708181cca9b487479b47f78d7f0">00140</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae6946708181cca9b487479b47f78d7f0">AV_CODEC_ID_ASV2</a>,
<a name="l00141"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea610509eb997372e2ea71cb6b4dfb553f">00141</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea610509eb997372e2ea71cb6b4dfb553f">AV_CODEC_ID_FFV1</a>,
<a name="l00142"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceafb4cfd6c985bd71551197b8b6e49e88d">00142</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceafb4cfd6c985bd71551197b8b6e49e88d">AV_CODEC_ID_4XM</a>,
<a name="l00143"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7f855d1c2c04aab20a6cd0d94fe66c52">00143</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7f855d1c2c04aab20a6cd0d94fe66c52">AV_CODEC_ID_VCR1</a>,
<a name="l00144"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5be35dda3c6b97d6ee09ce0b121a7c47">00144</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5be35dda3c6b97d6ee09ce0b121a7c47">AV_CODEC_ID_CLJR</a>,
<a name="l00145"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea985c039dc1f95273c5abe5de81e09738">00145</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea985c039dc1f95273c5abe5de81e09738">AV_CODEC_ID_MDEC</a>,
<a name="l00146"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaeb0858785fab79aa09b7347a513477b9">00146</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaeb0858785fab79aa09b7347a513477b9">AV_CODEC_ID_ROQ</a>,
<a name="l00147"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7558a7a217008c0fe793423231671325">00147</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7558a7a217008c0fe793423231671325">AV_CODEC_ID_INTERPLAY_VIDEO</a>,
<a name="l00148"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea07428ed0f786b688e6c0bc3e205e0f35">00148</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea07428ed0f786b688e6c0bc3e205e0f35">AV_CODEC_ID_XAN_WC3</a>,
<a name="l00149"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea37e35c26824829e4ab7b41652fc77e1e">00149</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea37e35c26824829e4ab7b41652fc77e1e">AV_CODEC_ID_XAN_WC4</a>,
<a name="l00150"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2e83b6080158a68a1e2486e342d2c36d">00150</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2e83b6080158a68a1e2486e342d2c36d">AV_CODEC_ID_RPZA</a>,
<a name="l00151"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5872ef870db6ecee94f18da1a0f18979">00151</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5872ef870db6ecee94f18da1a0f18979">AV_CODEC_ID_CINEPAK</a>,
<a name="l00152"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea32ab953bccf3b838c7f98cb501140a1f">00152</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea32ab953bccf3b838c7f98cb501140a1f">AV_CODEC_ID_WS_VQA</a>,
<a name="l00153"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4a5c958de80fb367f0dfe5a3b8902e29">00153</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4a5c958de80fb367f0dfe5a3b8902e29">AV_CODEC_ID_MSRLE</a>,
<a name="l00154"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf7cbec610a4b659549983a23d2aa416f">00154</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf7cbec610a4b659549983a23d2aa416f">AV_CODEC_ID_MSVIDEO1</a>,
<a name="l00155"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea06053505e009178c15151d209f8e4c81">00155</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea06053505e009178c15151d209f8e4c81">AV_CODEC_ID_IDCIN</a>,
<a name="l00156"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0dba75c225159195b003b226d920398b">00156</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0dba75c225159195b003b226d920398b">AV_CODEC_ID_8BPS</a>,
<a name="l00157"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaac568d9f1ca9f8ab8cb2f38a6dfdaab0">00157</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaac568d9f1ca9f8ab8cb2f38a6dfdaab0">AV_CODEC_ID_SMC</a>,
<a name="l00158"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8f07f59bc63ae0fd62f026322b663fb3">00158</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8f07f59bc63ae0fd62f026322b663fb3">AV_CODEC_ID_FLIC</a>,
<a name="l00159"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea92af537484e1864240903787f0788e52">00159</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea92af537484e1864240903787f0788e52">AV_CODEC_ID_TRUEMOTION1</a>,
<a name="l00160"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8be7b1f2d9331d7078e9a656b7568dd3">00160</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8be7b1f2d9331d7078e9a656b7568dd3">AV_CODEC_ID_VMDVIDEO</a>,
<a name="l00161"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf657b6dfcb6ca7f36ceced3557ea4327">00161</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf657b6dfcb6ca7f36ceced3557ea4327">AV_CODEC_ID_MSZH</a>,
<a name="l00162"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea506ef7fbaa9c05f411009bf39fd80a79">00162</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea506ef7fbaa9c05f411009bf39fd80a79">AV_CODEC_ID_ZLIB</a>,
<a name="l00163"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2372807239c429f6313bc79d33bab472">00163</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2372807239c429f6313bc79d33bab472">AV_CODEC_ID_QTRLE</a>,
<a name="l00164"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5e6a2bcf37a0248b847b5250e716eafd">00164</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5e6a2bcf37a0248b847b5250e716eafd">AV_CODEC_ID_TSCC</a>,
<a name="l00165"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea6917fb5fd2ed7db4290a807d4cadb8d6">00165</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea6917fb5fd2ed7db4290a807d4cadb8d6">AV_CODEC_ID_ULTI</a>,
<a name="l00166"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead44bc5c8fb068adf11284846382504cf">00166</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead44bc5c8fb068adf11284846382504cf">AV_CODEC_ID_QDRAW</a>,
<a name="l00167"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea38eb43042ca48fb4b1d39ba5ebdd3ff6">00167</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea38eb43042ca48fb4b1d39ba5ebdd3ff6">AV_CODEC_ID_VIXL</a>,
<a name="l00168"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceacd840f1de66e837c1aba7544bc0564ff">00168</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceacd840f1de66e837c1aba7544bc0564ff">AV_CODEC_ID_QPEG</a>,
<a name="l00169"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea13651c88d4a774a1012b40f6087b5fb9">00169</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea13651c88d4a774a1012b40f6087b5fb9">AV_CODEC_ID_PNG</a>,
<a name="l00170"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab3621092974c8cff284604d55f75a786">00170</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab3621092974c8cff284604d55f75a786">AV_CODEC_ID_PPM</a>,
<a name="l00171"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea76ea8dd8b2cef999ab9652c87219d764">00171</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea76ea8dd8b2cef999ab9652c87219d764">AV_CODEC_ID_PBM</a>,
<a name="l00172"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea46d3681388e8806a1926cc0bb633759f">00172</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea46d3681388e8806a1926cc0bb633759f">AV_CODEC_ID_PGM</a>,
<a name="l00173"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaaf73f1f5476aa4cb4a106d1d9bc6ad5b">00173</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaaf73f1f5476aa4cb4a106d1d9bc6ad5b">AV_CODEC_ID_PGMYUV</a>,
<a name="l00174"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7096f796b28213e016f407ebe2b23b67">00174</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7096f796b28213e016f407ebe2b23b67">AV_CODEC_ID_PAM</a>,
<a name="l00175"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea026b9f64393c4d53d5940620d5a7f7c8">00175</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea026b9f64393c4d53d5940620d5a7f7c8">AV_CODEC_ID_FFVHUFF</a>,
<a name="l00176"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa4566a412c746c9267e2461262d396fd">00176</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa4566a412c746c9267e2461262d396fd">AV_CODEC_ID_RV30</a>,
<a name="l00177"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9ff341616ebac6400d57194606de5593">00177</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9ff341616ebac6400d57194606de5593">AV_CODEC_ID_RV40</a>,
<a name="l00178"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7765c5c02c05ea1a96ef1ca35dad068f">00178</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7765c5c02c05ea1a96ef1ca35dad068f">AV_CODEC_ID_VC1</a>,
<a name="l00179"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadb3fab61116754cc08f3168dd26ff776">00179</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadb3fab61116754cc08f3168dd26ff776">AV_CODEC_ID_WMV3</a>,
<a name="l00180"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae32415a39c6511d5c5ed343731dfe3d8">00180</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae32415a39c6511d5c5ed343731dfe3d8">AV_CODEC_ID_LOCO</a>,
<a name="l00181"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac7c694cd26c87c8b94b0aa0408d16fc6">00181</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac7c694cd26c87c8b94b0aa0408d16fc6">AV_CODEC_ID_WNV1</a>,
<a name="l00182"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaad78457cd0512dec024c50ded9255d33">00182</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaad78457cd0512dec024c50ded9255d33">AV_CODEC_ID_AASC</a>,
<a name="l00183"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea74f06f8ccfcf8e07a2cba62ac83f8b68">00183</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea74f06f8ccfcf8e07a2cba62ac83f8b68">AV_CODEC_ID_INDEO2</a>,
<a name="l00184"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf7796b986db33449a592c3ae1e7f2e9b">00184</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf7796b986db33449a592c3ae1e7f2e9b">AV_CODEC_ID_FRAPS</a>,
<a name="l00185"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabc11317c3e8c99c1b41b86b0ca61878b">00185</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabc11317c3e8c99c1b41b86b0ca61878b">AV_CODEC_ID_TRUEMOTION2</a>,
<a name="l00186"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabb04ef46d4490540a3a0243aaa919fc9">00186</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabb04ef46d4490540a3a0243aaa919fc9">AV_CODEC_ID_BMP</a>,
<a name="l00187"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea6518b5819aa46b335de4d8b920fd5b67">00187</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea6518b5819aa46b335de4d8b920fd5b67">AV_CODEC_ID_CSCD</a>,
<a name="l00188"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa6fef7fb585f95d263612657cda29573">00188</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa6fef7fb585f95d263612657cda29573">AV_CODEC_ID_MMVIDEO</a>,
<a name="l00189"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae991bfabdf946218e8d1a70f90dcedc3">00189</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae991bfabdf946218e8d1a70f90dcedc3">AV_CODEC_ID_ZMBV</a>,
<a name="l00190"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4b48cce6b5f054407a9fb07fcacc81fe">00190</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4b48cce6b5f054407a9fb07fcacc81fe">AV_CODEC_ID_AVS</a>,
<a name="l00191"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea201ece382d697009aa13d77a482d8365">00191</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea201ece382d697009aa13d77a482d8365">AV_CODEC_ID_SMACKVIDEO</a>,
<a name="l00192"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9b64d2d7aa60ac493e3f6b738dbe8655">00192</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9b64d2d7aa60ac493e3f6b738dbe8655">AV_CODEC_ID_NUV</a>,
<a name="l00193"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9d198cf724eb3cd182110ca085a527c4">00193</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9d198cf724eb3cd182110ca085a527c4">AV_CODEC_ID_KMVC</a>,
<a name="l00194"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaee192c6a3ea6b52b881e2ed971a781fc">00194</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaee192c6a3ea6b52b881e2ed971a781fc">AV_CODEC_ID_FLASHSV</a>,
<a name="l00195"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8b076e20f47fa72362f22ce00b9f976a">00195</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8b076e20f47fa72362f22ce00b9f976a">AV_CODEC_ID_CAVS</a>,
<a name="l00196"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4ff1478f2b0f3bc728f6cce39d44b9f0">00196</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4ff1478f2b0f3bc728f6cce39d44b9f0">AV_CODEC_ID_JPEG2000</a>,
<a name="l00197"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea526f6bc0af65684f67389236b911c771">00197</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea526f6bc0af65684f67389236b911c771">AV_CODEC_ID_VMNC</a>,
<a name="l00198"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabbb5f61cec6b4083489462ae1a39bc17">00198</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabbb5f61cec6b4083489462ae1a39bc17">AV_CODEC_ID_VP5</a>,
<a name="l00199"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0f14d3ea3598ac4a1d4a9d73e01b56b0">00199</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0f14d3ea3598ac4a1d4a9d73e01b56b0">AV_CODEC_ID_VP6</a>,
<a name="l00200"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea14aac7455a40185b56f48bfac4647552">00200</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea14aac7455a40185b56f48bfac4647552">AV_CODEC_ID_VP6F</a>,
<a name="l00201"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea45e6ff6972ee9e4bffe817a38d2beb70">00201</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea45e6ff6972ee9e4bffe817a38d2beb70">AV_CODEC_ID_TARGA</a>,
<a name="l00202"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea29590a30babd163dfeebabfb0248925e">00202</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea29590a30babd163dfeebabfb0248925e">AV_CODEC_ID_DSICINVIDEO</a>,
<a name="l00203"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8b6c63bedfe10e32e2d15a9b612a6ef5">00203</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8b6c63bedfe10e32e2d15a9b612a6ef5">AV_CODEC_ID_TIERTEXSEQVIDEO</a>,
<a name="l00204"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab287c8cb5ab084d156b3f8c11fa698d6">00204</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab287c8cb5ab084d156b3f8c11fa698d6">AV_CODEC_ID_TIFF</a>,
<a name="l00205"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea35d8b1cf0066b5a9da9e86e49b0c3e45">00205</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea35d8b1cf0066b5a9da9e86e49b0c3e45">AV_CODEC_ID_GIF</a>,
<a name="l00206"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf2e6523927efc9db7ed6e3dcaddfddf2">00206</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf2e6523927efc9db7ed6e3dcaddfddf2">AV_CODEC_ID_DXA</a>,
<a name="l00207"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead36347b6ae291fc3cc95f84aecf8035a">00207</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead36347b6ae291fc3cc95f84aecf8035a">AV_CODEC_ID_DNXHD</a>,
<a name="l00208"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaed29a65f7c6b258316a921f3d3208e10">00208</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaed29a65f7c6b258316a921f3d3208e10">AV_CODEC_ID_THP</a>,
<a name="l00209"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea6c72c01a979f8558551509cfac3085f9">00209</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea6c72c01a979f8558551509cfac3085f9">AV_CODEC_ID_SGI</a>,
<a name="l00210"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac370116b025c58e06681d8d1c16ae711">00210</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac370116b025c58e06681d8d1c16ae711">AV_CODEC_ID_C93</a>,
<a name="l00211"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0e5fee8b7f3755568e85dd87cef88ed6">00211</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0e5fee8b7f3755568e85dd87cef88ed6">AV_CODEC_ID_BETHSOFTVID</a>,
<a name="l00212"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2c3dd83dedaeb8bcdb9286d786f4fd79">00212</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2c3dd83dedaeb8bcdb9286d786f4fd79">AV_CODEC_ID_PTX</a>,
<a name="l00213"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea82308080bbcb8e07b9992e813dfa8540">00213</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea82308080bbcb8e07b9992e813dfa8540">AV_CODEC_ID_TXD</a>,
<a name="l00214"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8abead4b8a87bf4a142b7db7e50cef8e">00214</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8abead4b8a87bf4a142b7db7e50cef8e">AV_CODEC_ID_VP6A</a>,
<a name="l00215"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceafa26899e6acd71441007e6c35461cfc3">00215</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceafa26899e6acd71441007e6c35461cfc3">AV_CODEC_ID_AMV</a>,
<a name="l00216"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4b23025c7bfcd9117c3e0eca77a20c19">00216</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4b23025c7bfcd9117c3e0eca77a20c19">AV_CODEC_ID_VB</a>,
<a name="l00217"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea828ac6d0106288cc1980ae96ef1d3c2e">00217</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea828ac6d0106288cc1980ae96ef1d3c2e">AV_CODEC_ID_PCX</a>,
<a name="l00218"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5d9faecd012c9a2d47e40e0a268fd2c6">00218</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5d9faecd012c9a2d47e40e0a268fd2c6">AV_CODEC_ID_SUNRAST</a>,
<a name="l00219"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea24bd7701f087bbad4cbf78438849de57">00219</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea24bd7701f087bbad4cbf78438849de57">AV_CODEC_ID_INDEO4</a>,
<a name="l00220"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea16f9edf141d19e55734dbfcd3857ce31">00220</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea16f9edf141d19e55734dbfcd3857ce31">AV_CODEC_ID_INDEO5</a>,
<a name="l00221"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae1ebc21e053a0fbe49029f63b926bb6c">00221</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceae1ebc21e053a0fbe49029f63b926bb6c">AV_CODEC_ID_MIMIC</a>,
<a name="l00222"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa06c988fc66d8618cc6c2ed149dcbe52">00222</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa06c988fc66d8618cc6c2ed149dcbe52">AV_CODEC_ID_RL2</a>,
<a name="l00223"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea091eca04b0aa5eb2981e74ce78f32da7">00223</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea091eca04b0aa5eb2981e74ce78f32da7">AV_CODEC_ID_ESCAPE124</a>,
<a name="l00224"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea00d5e8ca007d62fe704bb22b2be7b556">00224</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea00d5e8ca007d62fe704bb22b2be7b556">AV_CODEC_ID_DIRAC</a>,
<a name="l00225"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab5ba6986b47894bb8611455d14b1f250">00225</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab5ba6986b47894bb8611455d14b1f250">AV_CODEC_ID_BFI</a>,
<a name="l00226"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea12d0508cd1403f8272d98de4f11b4cef">00226</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea12d0508cd1403f8272d98de4f11b4cef">AV_CODEC_ID_CMV</a>,
<a name="l00227"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea26b515ca6810bfefc17beadcff33f1fb">00227</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea26b515ca6810bfefc17beadcff33f1fb">AV_CODEC_ID_MOTIONPIXELS</a>,
<a name="l00228"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea28ae488f549794d4c6ffedd0fff83d07">00228</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea28ae488f549794d4c6ffedd0fff83d07">AV_CODEC_ID_TGV</a>,
<a name="l00229"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9ea7b9d85dbfc68ef53a648e34c1fc86">00229</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9ea7b9d85dbfc68ef53a648e34c1fc86">AV_CODEC_ID_TGQ</a>,
<a name="l00230"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea93e25f9e318041d53c0655d36d9623f7">00230</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea93e25f9e318041d53c0655d36d9623f7">AV_CODEC_ID_TQI</a>,
<a name="l00231"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2eeaceb777ebeece34d0af283831b65e">00231</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2eeaceb777ebeece34d0af283831b65e">AV_CODEC_ID_AURA</a>,
<a name="l00232"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0c1a938764967517ce7420374accc2f0">00232</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0c1a938764967517ce7420374accc2f0">AV_CODEC_ID_AURA2</a>,
<a name="l00233"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea915a50b4a0ed015dba9dd325d27a439a">00233</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea915a50b4a0ed015dba9dd325d27a439a">AV_CODEC_ID_V210X</a>,
<a name="l00234"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9895ea0a1e6fc140566731c3f7c5f870">00234</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9895ea0a1e6fc140566731c3f7c5f870">AV_CODEC_ID_TMV</a>,
<a name="l00235"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea11b45c130aea73e9ab73c4cdfb176803">00235</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea11b45c130aea73e9ab73c4cdfb176803">AV_CODEC_ID_V210</a>,
<a name="l00236"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf20137ebc6d50438f1159ac66dfa4a9a">00236</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf20137ebc6d50438f1159ac66dfa4a9a">AV_CODEC_ID_DPX</a>,
<a name="l00237"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4be68436a8e9c3ba69919ca487c9b824">00237</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4be68436a8e9c3ba69919ca487c9b824">AV_CODEC_ID_MAD</a>,
<a name="l00238"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4b2e274845edd73ca8025ed70a91ac79">00238</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4b2e274845edd73ca8025ed70a91ac79">AV_CODEC_ID_FRWU</a>,
<a name="l00239"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea730fd43cf81636bbf3a2c11c6c8559fd">00239</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea730fd43cf81636bbf3a2c11c6c8559fd">AV_CODEC_ID_FLASHSV2</a>,
<a name="l00240"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea76fbc3c96f42a427d3ae1eeb6e1a8aaf">00240</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea76fbc3c96f42a427d3ae1eeb6e1a8aaf">AV_CODEC_ID_CDGRAPHICS</a>,
<a name="l00241"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2400153f986f90a4db379bd407e225b3">00241</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2400153f986f90a4db379bd407e225b3">AV_CODEC_ID_R210</a>,
<a name="l00242"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaec305465c9a43a418d3ce7f93d60d053">00242</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaec305465c9a43a418d3ce7f93d60d053">AV_CODEC_ID_ANM</a>,
<a name="l00243"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea73758a7f9fcc3fd1cb7533a39a0beb6c">00243</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea73758a7f9fcc3fd1cb7533a39a0beb6c">AV_CODEC_ID_BINKVIDEO</a>,
<a name="l00244"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea054e8c530a2f650eaeece8baf0c9f13b">00244</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea054e8c530a2f650eaeece8baf0c9f13b">AV_CODEC_ID_IFF_ILBM</a>,
<a name="l00245"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8e0232589fd0f6ad823a0d7e1befdc49">00245</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8e0232589fd0f6ad823a0d7e1befdc49">AV_CODEC_ID_IFF_BYTERUN1</a>,
<a name="l00246"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8725c4ddc5aa0f42e413da8dd86be79c">00246</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8725c4ddc5aa0f42e413da8dd86be79c">AV_CODEC_ID_KGV1</a>,
<a name="l00247"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0b66da3bdc5f4daae18c10f0ce6c766e">00247</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0b66da3bdc5f4daae18c10f0ce6c766e">AV_CODEC_ID_YOP</a>,
<a name="l00248"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea77772369e1d305824b08b53a8d5c56b6">00248</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea77772369e1d305824b08b53a8d5c56b6">AV_CODEC_ID_VP8</a>,
<a name="l00249"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2f8f94b86674549af61994639abdb234">00249</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2f8f94b86674549af61994639abdb234">AV_CODEC_ID_PICTOR</a>,
<a name="l00250"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead3d14bb39e556f703f7b90a2e5e84a8e">00250</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cead3d14bb39e556f703f7b90a2e5e84a8e">AV_CODEC_ID_ANSI</a>,
<a name="l00251"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaae4ee474148248dee829a60d1adf8dfe">00251</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaae4ee474148248dee829a60d1adf8dfe">AV_CODEC_ID_A64_MULTI</a>,
<a name="l00252"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7762bd7c923e6836024782b28b875026">00252</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7762bd7c923e6836024782b28b875026">AV_CODEC_ID_A64_MULTI5</a>,
<a name="l00253"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadfd3b6add5f4c1dad10b85ef2f474efd">00253</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceadfd3b6add5f4c1dad10b85ef2f474efd">AV_CODEC_ID_R10K</a>,
<a name="l00254"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea56d2a49a2f28921cc8d2ee762e4f5522">00254</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea56d2a49a2f28921cc8d2ee762e4f5522">AV_CODEC_ID_MXPEG</a>,
<a name="l00255"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5455d25d346fb985f104ac97a4b8d01c">00255</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5455d25d346fb985f104ac97a4b8d01c">AV_CODEC_ID_LAGARITH</a>,
<a name="l00256"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab140360bd655d8add22265dbe45b581c">00256</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab140360bd655d8add22265dbe45b581c">AV_CODEC_ID_PRORES</a>,
<a name="l00257"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9f3b79a952d3cdcf484aa41e9c64571e">00257</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9f3b79a952d3cdcf484aa41e9c64571e">AV_CODEC_ID_JV</a>,
<a name="l00258"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea039667ef2581a7bca1533e9476b730fe">00258</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea039667ef2581a7bca1533e9476b730fe">AV_CODEC_ID_DFA</a>,
<a name="l00259"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7de7e6cabd99e6215c1a4fdfca196198">00259</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7de7e6cabd99e6215c1a4fdfca196198">AV_CODEC_ID_WMV3IMAGE</a>,
<a name="l00260"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5e1b7f778aed1ba72262d708d602d74b">00260</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5e1b7f778aed1ba72262d708d602d74b">AV_CODEC_ID_VC1IMAGE</a>,
<a name="l00261"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea3313f443c4f36800b279818ed9525f07">00261</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea3313f443c4f36800b279818ed9525f07">AV_CODEC_ID_UTVIDEO</a>,
<a name="l00262"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0927738ad0f3790364ce57694f97b65f">00262</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0927738ad0f3790364ce57694f97b65f">AV_CODEC_ID_BMV_VIDEO</a>,
<a name="l00263"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea80099cd3307b3b848f201c5d98e47854">00263</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea80099cd3307b3b848f201c5d98e47854">AV_CODEC_ID_VBLE</a>,
<a name="l00264"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf4d36f7aa9f2ef3d5f8d334353aae852">00264</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf4d36f7aa9f2ef3d5f8d334353aae852">AV_CODEC_ID_DXTORY</a>,
<a name="l00265"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea3bbc391cc2b0bb220d5bf950cdfc4f1f">00265</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea3bbc391cc2b0bb220d5bf950cdfc4f1f">AV_CODEC_ID_V410</a>,
<a name="l00266"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab2da2aa56366ac85b26151a7ca75349b">00266</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab2da2aa56366ac85b26151a7ca75349b">AV_CODEC_ID_XWD</a>,
<a name="l00267"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9c43fea9a5b9e3da54b3810cc9e8ecbf">00267</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9c43fea9a5b9e3da54b3810cc9e8ecbf">AV_CODEC_ID_CDXL</a>,
<a name="l00268"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea74fad79b79fd7fabf35cbef967da2603">00268</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea74fad79b79fd7fabf35cbef967da2603">AV_CODEC_ID_XBM</a>,
<a name="l00269"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf1697273c05e4605444f0f41396739b3">00269</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf1697273c05e4605444f0f41396739b3">AV_CODEC_ID_ZEROCODEC</a>,
<a name="l00270"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf7c4f69a8ef661c53fae35cd5d8a98ab">00270</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf7c4f69a8ef661c53fae35cd5d8a98ab">AV_CODEC_ID_MSS1</a>,
<a name="l00271"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea1167130b3a74649f117126749366f97a">00271</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea1167130b3a74649f117126749366f97a">AV_CODEC_ID_MSA1</a>,
<a name="l00272"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceacc64eb7d1b978ad2be7f90a44d5acaa1">00272</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceacc64eb7d1b978ad2be7f90a44d5acaa1">AV_CODEC_ID_TSCC2</a>,
<a name="l00273"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5c7cad52b4d46786518e30d855a2b47d">00273</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5c7cad52b4d46786518e30d855a2b47d">AV_CODEC_ID_MTS2</a>,
<a name="l00274"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea277ddc6d640dd4b319587350f3b5a444">00274</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea277ddc6d640dd4b319587350f3b5a444">AV_CODEC_ID_CLLC</a>,
<a name="l00275"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea95ef4e077346c2f43c7568b11b1ae07d">00275</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea95ef4e077346c2f43c7568b11b1ae07d">AV_CODEC_ID_MSS2</a>,
<a name="l00276"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaedab7fb3a1647fbdc114ad0447105c72">00276</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaedab7fb3a1647fbdc114ad0447105c72">AV_CODEC_ID_VP9</a>,
<a name="l00277"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea3fc5c34c4edafe3bd2c71e996c83b04a">00277</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea3fc5c34c4edafe3bd2c71e996c83b04a">AV_CODEC_ID_AIC</a>,
<a name="l00278"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea27b6f4ffa36ce641ed9cd6a45da0fa86">00278</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea27b6f4ffa36ce641ed9cd6a45da0fa86">AV_CODEC_ID_ESCAPE130_DEPRECATED</a>,
<a name="l00279"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac698d6e41495ba5be2175cf7e771fdef">00279</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac698d6e41495ba5be2175cf7e771fdef">AV_CODEC_ID_G2M_DEPRECATED</a>,
<a name="l00280"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea69f7097d0fb90d631406fcf18a6e39ca">00280</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea69f7097d0fb90d631406fcf18a6e39ca">AV_CODEC_ID_WEBP_DEPRECATED</a>,
<a name="l00281"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabeeba7d448dd4f8f931d05612e0c44e4">00281</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabeeba7d448dd4f8f931d05612e0c44e4">AV_CODEC_ID_HNM4_VIDEO</a>,
<a name="l00282"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa58c84e210d36501907e3923f8145aa6">00282</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa58c84e210d36501907e3923f8145aa6">AV_CODEC_ID_HEVC_DEPRECATED</a>,
<a name="l00283"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabb3a243c38cdf7bfd380e4c3c8752ae4">00283</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabb3a243c38cdf7bfd380e4c3c8752ae4">AV_CODEC_ID_FIC</a>,
<a name="l00284"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab45fa4be4865749b3f7f3f68bfb7a766">00284</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceab45fa4be4865749b3f7f3f68bfb7a766">AV_CODEC_ID_ALIAS_PIX</a>,
<a name="l00285"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea95b8553df4e8749fd3c6f46eef4f8956">00285</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea95b8553df4e8749fd3c6f46eef4f8956">AV_CODEC_ID_BRENDER_PIX_DEPRECATED</a>,
<a name="l00286"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaef3a867835c9aeb9d6b21de385dd1b0c">00286</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaef3a867835c9aeb9d6b21de385dd1b0c">AV_CODEC_ID_PAF_VIDEO_DEPRECATED</a>,
<a name="l00287"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7290643dbff700893438e6575ffeca83">00287</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7290643dbff700893438e6575ffeca83">AV_CODEC_ID_EXR_DEPRECATED</a>,
<a name="l00288"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7d4077b2a4cc2712f36534565b7da8ec">00288</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7d4077b2a4cc2712f36534565b7da8ec">AV_CODEC_ID_VP7_DEPRECATED</a>,
<a name="l00289"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7661857d804da4b8327187c9dbb7c539">00289</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea7661857d804da4b8327187c9dbb7c539">AV_CODEC_ID_SANM_DEPRECATED</a>,
<a name="l00290"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaea67838e42c4071340175b2a491fdf9d">00290</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaea67838e42c4071340175b2a491fdf9d">AV_CODEC_ID_SGIRLE_DEPRECATED</a>,
<a name="l00291"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea94822cf86fdaf7bdd2c74cfa49ce15d7">00291</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea94822cf86fdaf7bdd2c74cfa49ce15d7">AV_CODEC_ID_MVC1_DEPRECATED</a>,
<a name="l00292"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf9cf706ba654832232beb5c495f62e29">00292</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf9cf706ba654832232beb5c495f62e29">AV_CODEC_ID_MVC2_DEPRECATED</a>,
<a name="l00293"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea990f7448c1a5b8a354dc3affa1aeb529">00293</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea990f7448c1a5b8a354dc3affa1aeb529">AV_CODEC_ID_HQX</a>,
<a name="l00294"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf48e02bddcd438ebb17430aa3f50d2cc">00294</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf48e02bddcd438ebb17430aa3f50d2cc">AV_CODEC_ID_TDSC</a>,
<a name="l00295"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf85fe24fa0b0717a4ebb0e31609f7932">00295</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf85fe24fa0b0717a4ebb0e31609f7932">AV_CODEC_ID_HQ_HQA</a>,
<a name="l00296"></a>00296
<a name="l00297"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9502fa122a011d55e1057d519fb75290">00297</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea9502fa122a011d55e1057d519fb75290">AV_CODEC_ID_BRENDER_PIX</a>= <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'B'</span>,<span class="charliteral">'P'</span>,<span class="charliteral">'I'</span>,<span class="charliteral">'X'</span>),
<a name="l00298"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea14ea269e75a39cfbc002a9d830b4bcd6">00298</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea14ea269e75a39cfbc002a9d830b4bcd6">AV_CODEC_ID_Y41P</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'Y'</span>,<span class="charliteral">'4'</span>,<span class="charliteral">'1'</span>,<span class="charliteral">'P'</span>),
<a name="l00299"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5947fac43d6817b691a4bc1f64f20075">00299</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea5947fac43d6817b691a4bc1f64f20075">AV_CODEC_ID_ESCAPE130</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'E'</span>,<span class="charliteral">'1'</span>,<span class="charliteral">'3'</span>,<span class="charliteral">'0'</span>),
<a name="l00300"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabc76b0cc02be5952124697b98ef2c4df">00300</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceabc76b0cc02be5952124697b98ef2c4df">AV_CODEC_ID_EXR</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'0'</span>,<span class="charliteral">'E'</span>,<span class="charliteral">'X'</span>,<span class="charliteral">'R'</span>),
<a name="l00301"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4100c41cb36ea3761ef6b8663374e7ba">00301</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4100c41cb36ea3761ef6b8663374e7ba">AV_CODEC_ID_AVRP</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'A'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'R'</span>,<span class="charliteral">'P'</span>),
<a name="l00302"></a>00302
<a name="l00303"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf4af8b770c8a89602b25313db541f021">00303</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaf4af8b770c8a89602b25313db541f021">AV_CODEC_ID_012V</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'0'</span>,<span class="charliteral">'1'</span>,<span class="charliteral">'2'</span>,<span class="charliteral">'V'</span>),
<a name="l00304"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaab57a3cf30313f49eb77c24a748eebc0">00304</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaab57a3cf30313f49eb77c24a748eebc0">AV_CODEC_ID_G2M</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>( 0 ,<span class="charliteral">'G'</span>,<span class="charliteral">'2'</span>,<span class="charliteral">'M'</span>),
<a name="l00305"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaea40e943e4002267e20c0dda6498a2e9">00305</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaea40e943e4002267e20c0dda6498a2e9">AV_CODEC_ID_AVUI</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'A'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'U'</span>,<span class="charliteral">'I'</span>),
<a name="l00306"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac1c65ebb53d915a490495df173475a4d">00306</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac1c65ebb53d915a490495df173475a4d">AV_CODEC_ID_AYUV</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'A'</span>,<span class="charliteral">'Y'</span>,<span class="charliteral">'U'</span>,<span class="charliteral">'V'</span>),
<a name="l00307"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceafe04f75e6fdfceac4db3c8f7b4726778">00307</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceafe04f75e6fdfceac4db3c8f7b4726778">AV_CODEC_ID_TARGA_Y216</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'T'</span>,<span class="charliteral">'2'</span>,<span class="charliteral">'1'</span>,<span class="charliteral">'6'</span>),
<a name="l00308"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea835d96992d9a3673c4d76459aff9f1de">00308</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea835d96992d9a3673c4d76459aff9f1de">AV_CODEC_ID_V308</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'V'</span>,<span class="charliteral">'3'</span>,<span class="charliteral">'0'</span>,<span class="charliteral">'8'</span>),
<a name="l00309"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2825b4322257b5292cc71ad196acbfc9">00309</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea2825b4322257b5292cc71ad196acbfc9">AV_CODEC_ID_V408</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'V'</span>,<span class="charliteral">'4'</span>,<span class="charliteral">'0'</span>,<span class="charliteral">'8'</span>),
<a name="l00310"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea11de9ead44f7b3dd11043c54fb56a155">00310</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea11de9ead44f7b3dd11043c54fb56a155">AV_CODEC_ID_YUV4</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'Y'</span>,<span class="charliteral">'U'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'4'</span>),
<a name="l00311"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8ee1775ee286c830aba02cefce37bfe2">00311</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8ee1775ee286c830aba02cefce37bfe2">AV_CODEC_ID_SANM</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'A'</span>,<span class="charliteral">'N'</span>,<span class="charliteral">'M'</span>),
<a name="l00312"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0ea3a7e6b37e673948fae7e13d2b72d0">00312</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea0ea3a7e6b37e673948fae7e13d2b72d0">AV_CODEC_ID_PAF_VIDEO</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'P'</span>,<span class="charliteral">'A'</span>,<span class="charliteral">'F'</span>,<span class="charliteral">'V'</span>),
<a name="l00313"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceafc44dbe94c7f665dd2cc95302b561edf">00313</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceafc44dbe94c7f665dd2cc95302b561edf">AV_CODEC_ID_AVRN</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'A'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'R'</span>,<span class="charliteral">'n'</span>),
<a name="l00314"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4da1273a192bfd82b21853ebde414e0d">00314</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea4da1273a192bfd82b21853ebde414e0d">AV_CODEC_ID_CPIA</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'C'</span>,<span class="charliteral">'P'</span>,<span class="charliteral">'I'</span>,<span class="charliteral">'A'</span>),
<a name="l00315"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8325d089e284d10840e7105a8c28e4a4">00315</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea8325d089e284d10840e7105a8c28e4a4">AV_CODEC_ID_XFACE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'X'</span>,<span class="charliteral">'F'</span>,<span class="charliteral">'A'</span>,<span class="charliteral">'C'</span>),
<a name="l00316"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea59d47b3316a9fb14203a22d5c169e3cb">00316</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea59d47b3316a9fb14203a22d5c169e3cb">AV_CODEC_ID_SGIRLE</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'G'</span>,<span class="charliteral">'I'</span>,<span class="charliteral">'R'</span>),
<a name="l00317"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea627fb03cc76110503962e8d46f91c539">00317</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea627fb03cc76110503962e8d46f91c539">AV_CODEC_ID_MVC1</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'M'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'C'</span>,<span class="charliteral">'1'</span>),
<a name="l00318"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac4b21d1f470cf86f8e1aa2416fcb2461">00318</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac4b21d1f470cf86f8e1aa2416fcb2461">AV_CODEC_ID_MVC2</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'M'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'C'</span>,<span class="charliteral">'2'</span>),
<a name="l00319"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea253b7f23251a791e6f1d95a86dbab0cd">00319</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7cea253b7f23251a791e6f1d95a86dbab0cd">AV_CODEC_ID_SNOW</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'N'</span>,<span class="charliteral">'O'</span>,<span class="charliteral">'W'</span>),
<a name="l00320"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac9eb9136ca924db98aa71306a1530b41">00320</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceac9eb9136ca924db98aa71306a1530b41">AV_CODEC_ID_WEBP</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'W'</span>,<span class="charliteral">'E'</span>,<span class="charliteral">'B'</span>,<span class="charliteral">'P'</span>),
<a name="l00321"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaafdf8cbfcb390ea0bf0a0c5738d46e11">00321</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaafdf8cbfcb390ea0bf0a0c5738d46e11">AV_CODEC_ID_SMVJPEG</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'M'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'J'</span>),
<a name="l00322"></a><a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa3e19a45b81bb602a4a37a4221274a20">00322</a> <a class="code" href="group__lavc__core.html#ggaadca229ad2c20e060a14fec08a5cc7ceaa3e19a45b81bb602a4a37a4221274a20">AV_CODEC_ID_HEVC</a> = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'H'</span>,<span class="charliteral">'2'</span>,<span class="charliteral">'6'</span>,<span class="charliteral">'5'</span>),
<a name="l00323"></a><a class="code" href="libavcodec_2avcodec_8h.html#a60091c030fab7b9a8f3a7a6b783ab6f4">00323</a> <span class="preprocessor">#define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC</span>
<a name="l00324"></a>00324 <span class="preprocessor"></span> AV_CODEC_ID_VP7 = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'V'</span>,<span class="charliteral">'P'</span>,<span class="charliteral">'7'</span>,<span class="charliteral">'0'</span>),
<a name="l00325"></a>00325 AV_CODEC_ID_APNG = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'A'</span>,<span class="charliteral">'P'</span>,<span class="charliteral">'N'</span>,<span class="charliteral">'G'</span>),
<a name="l00326"></a>00326
<a name="l00327"></a>00327 <span class="comment">/* various PCM "codecs" */</span>
<a name="l00328"></a>00328 AV_CODEC_ID_FIRST_AUDIO = 0x10000, <span class="comment">///< A dummy id pointing at the start of audio codecs</span>
<a name="l00329"></a>00329 <span class="comment"></span> AV_CODEC_ID_PCM_S16LE = 0x10000,
<a name="l00330"></a>00330 AV_CODEC_ID_PCM_S16BE,
<a name="l00331"></a>00331 AV_CODEC_ID_PCM_U16LE,
<a name="l00332"></a>00332 AV_CODEC_ID_PCM_U16BE,
<a name="l00333"></a>00333 AV_CODEC_ID_PCM_S8,
<a name="l00334"></a>00334 AV_CODEC_ID_PCM_U8,
<a name="l00335"></a>00335 AV_CODEC_ID_PCM_MULAW,
<a name="l00336"></a>00336 AV_CODEC_ID_PCM_ALAW,
<a name="l00337"></a>00337 AV_CODEC_ID_PCM_S32LE,
<a name="l00338"></a>00338 AV_CODEC_ID_PCM_S32BE,
<a name="l00339"></a>00339 AV_CODEC_ID_PCM_U32LE,
<a name="l00340"></a>00340 AV_CODEC_ID_PCM_U32BE,
<a name="l00341"></a>00341 AV_CODEC_ID_PCM_S24LE,
<a name="l00342"></a>00342 AV_CODEC_ID_PCM_S24BE,
<a name="l00343"></a>00343 AV_CODEC_ID_PCM_U24LE,
<a name="l00344"></a>00344 AV_CODEC_ID_PCM_U24BE,
<a name="l00345"></a>00345 AV_CODEC_ID_PCM_S24DAUD,
<a name="l00346"></a>00346 AV_CODEC_ID_PCM_ZORK,
<a name="l00347"></a>00347 AV_CODEC_ID_PCM_S16LE_PLANAR,
<a name="l00348"></a>00348 AV_CODEC_ID_PCM_DVD,
<a name="l00349"></a>00349 AV_CODEC_ID_PCM_F32BE,
<a name="l00350"></a>00350 AV_CODEC_ID_PCM_F32LE,
<a name="l00351"></a>00351 AV_CODEC_ID_PCM_F64BE,
<a name="l00352"></a>00352 AV_CODEC_ID_PCM_F64LE,
<a name="l00353"></a>00353 AV_CODEC_ID_PCM_BLURAY,
<a name="l00354"></a>00354 AV_CODEC_ID_PCM_LXF,
<a name="l00355"></a>00355 AV_CODEC_ID_S302M,
<a name="l00356"></a>00356 AV_CODEC_ID_PCM_S8_PLANAR,
<a name="l00357"></a>00357 AV_CODEC_ID_PCM_S24LE_PLANAR_DEPRECATED,
<a name="l00358"></a>00358 AV_CODEC_ID_PCM_S32LE_PLANAR_DEPRECATED,
<a name="l00359"></a>00359 AV_CODEC_ID_PCM_S24LE_PLANAR = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(24,<span class="charliteral">'P'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'P'</span>),
<a name="l00360"></a>00360 AV_CODEC_ID_PCM_S32LE_PLANAR = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(32,<span class="charliteral">'P'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'P'</span>),
<a name="l00361"></a>00361 AV_CODEC_ID_PCM_S16BE_PLANAR = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'P'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'P'</span>,16),
<a name="l00362"></a>00362
<a name="l00363"></a>00363 <span class="comment">/* various ADPCM codecs */</span>
<a name="l00364"></a>00364 AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
<a name="l00365"></a>00365 AV_CODEC_ID_ADPCM_IMA_WAV,
<a name="l00366"></a>00366 AV_CODEC_ID_ADPCM_IMA_DK3,
<a name="l00367"></a>00367 AV_CODEC_ID_ADPCM_IMA_DK4,
<a name="l00368"></a>00368 AV_CODEC_ID_ADPCM_IMA_WS,
<a name="l00369"></a>00369 AV_CODEC_ID_ADPCM_IMA_SMJPEG,
<a name="l00370"></a>00370 AV_CODEC_ID_ADPCM_MS,
<a name="l00371"></a>00371 AV_CODEC_ID_ADPCM_4XM,
<a name="l00372"></a>00372 AV_CODEC_ID_ADPCM_XA,
<a name="l00373"></a>00373 AV_CODEC_ID_ADPCM_ADX,
<a name="l00374"></a>00374 AV_CODEC_ID_ADPCM_EA,
<a name="l00375"></a>00375 AV_CODEC_ID_ADPCM_G726,
<a name="l00376"></a>00376 AV_CODEC_ID_ADPCM_CT,
<a name="l00377"></a>00377 AV_CODEC_ID_ADPCM_SWF,
<a name="l00378"></a>00378 AV_CODEC_ID_ADPCM_YAMAHA,
<a name="l00379"></a>00379 AV_CODEC_ID_ADPCM_SBPRO_4,
<a name="l00380"></a>00380 AV_CODEC_ID_ADPCM_SBPRO_3,
<a name="l00381"></a>00381 AV_CODEC_ID_ADPCM_SBPRO_2,
<a name="l00382"></a>00382 AV_CODEC_ID_ADPCM_THP,
<a name="l00383"></a>00383 AV_CODEC_ID_ADPCM_IMA_AMV,
<a name="l00384"></a>00384 AV_CODEC_ID_ADPCM_EA_R1,
<a name="l00385"></a>00385 AV_CODEC_ID_ADPCM_EA_R3,
<a name="l00386"></a>00386 AV_CODEC_ID_ADPCM_EA_R2,
<a name="l00387"></a>00387 AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
<a name="l00388"></a>00388 AV_CODEC_ID_ADPCM_IMA_EA_EACS,
<a name="l00389"></a>00389 AV_CODEC_ID_ADPCM_EA_XAS,
<a name="l00390"></a>00390 AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
<a name="l00391"></a>00391 AV_CODEC_ID_ADPCM_IMA_ISS,
<a name="l00392"></a>00392 AV_CODEC_ID_ADPCM_G722,
<a name="l00393"></a>00393 AV_CODEC_ID_ADPCM_IMA_APC,
<a name="l00394"></a>00394 AV_CODEC_ID_ADPCM_VIMA_DEPRECATED,
<a name="l00395"></a>00395 AV_CODEC_ID_ADPCM_VIMA = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'V'</span>,<span class="charliteral">'I'</span>,<span class="charliteral">'M'</span>,<span class="charliteral">'A'</span>),
<a name="l00396"></a>00396 <span class="preprocessor">#if FF_API_VIMA_DECODER</span>
<a name="l00397"></a>00397 <span class="preprocessor"></span> AV_CODEC_ID_VIMA = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'V'</span>,<span class="charliteral">'I'</span>,<span class="charliteral">'M'</span>,<span class="charliteral">'A'</span>),
<a name="l00398"></a>00398 <span class="preprocessor">#endif</span>
<a name="l00399"></a>00399 <span class="preprocessor"></span> AV_CODEC_ID_ADPCM_AFC = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'A'</span>,<span class="charliteral">'F'</span>,<span class="charliteral">'C'</span>,<span class="charliteral">' '</span>),
<a name="l00400"></a>00400 AV_CODEC_ID_ADPCM_IMA_OKI = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'O'</span>,<span class="charliteral">'K'</span>,<span class="charliteral">'I'</span>,<span class="charliteral">' '</span>),
<a name="l00401"></a>00401 AV_CODEC_ID_ADPCM_DTK = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'D'</span>,<span class="charliteral">'T'</span>,<span class="charliteral">'K'</span>,<span class="charliteral">' '</span>),
<a name="l00402"></a>00402 AV_CODEC_ID_ADPCM_IMA_RAD = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'R'</span>,<span class="charliteral">'A'</span>,<span class="charliteral">'D'</span>,<span class="charliteral">' '</span>),
<a name="l00403"></a>00403 AV_CODEC_ID_ADPCM_G726LE = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'6'</span>,<span class="charliteral">'2'</span>,<span class="charliteral">'7'</span>,<span class="charliteral">'G'</span>),
<a name="l00404"></a>00404
<a name="l00405"></a>00405 <span class="comment">/* AMR */</span>
<a name="l00406"></a>00406 AV_CODEC_ID_AMR_NB = 0x12000,
<a name="l00407"></a>00407 AV_CODEC_ID_AMR_WB,
<a name="l00408"></a>00408
<a name="l00409"></a>00409 <span class="comment">/* RealAudio codecs*/</span>
<a name="l00410"></a>00410 AV_CODEC_ID_RA_144 = 0x13000,
<a name="l00411"></a>00411 AV_CODEC_ID_RA_288,
<a name="l00412"></a>00412
<a name="l00413"></a>00413 <span class="comment">/* various DPCM codecs */</span>
<a name="l00414"></a>00414 AV_CODEC_ID_ROQ_DPCM = 0x14000,
<a name="l00415"></a>00415 AV_CODEC_ID_INTERPLAY_DPCM,
<a name="l00416"></a>00416 AV_CODEC_ID_XAN_DPCM,
<a name="l00417"></a>00417 AV_CODEC_ID_SOL_DPCM,
<a name="l00418"></a>00418
<a name="l00419"></a>00419 <span class="comment">/* audio codecs */</span>
<a name="l00420"></a>00420 AV_CODEC_ID_MP2 = 0x15000,
<a name="l00421"></a>00421 AV_CODEC_ID_MP3, <span class="comment">///< preferred ID for decoding MPEG audio layer 1, 2 or 3</span>
<a name="l00422"></a>00422 <span class="comment"></span> AV_CODEC_ID_AAC,
<a name="l00423"></a>00423 AV_CODEC_ID_AC3,
<a name="l00424"></a>00424 AV_CODEC_ID_DTS,
<a name="l00425"></a>00425 AV_CODEC_ID_VORBIS,
<a name="l00426"></a>00426 AV_CODEC_ID_DVAUDIO,
<a name="l00427"></a>00427 AV_CODEC_ID_WMAV1,
<a name="l00428"></a>00428 AV_CODEC_ID_WMAV2,
<a name="l00429"></a>00429 AV_CODEC_ID_MACE3,
<a name="l00430"></a>00430 AV_CODEC_ID_MACE6,
<a name="l00431"></a>00431 AV_CODEC_ID_VMDAUDIO,
<a name="l00432"></a>00432 AV_CODEC_ID_FLAC,
<a name="l00433"></a>00433 AV_CODEC_ID_MP3ADU,
<a name="l00434"></a>00434 AV_CODEC_ID_MP3ON4,
<a name="l00435"></a>00435 AV_CODEC_ID_SHORTEN,
<a name="l00436"></a>00436 AV_CODEC_ID_ALAC,
<a name="l00437"></a>00437 AV_CODEC_ID_WESTWOOD_SND1,
<a name="l00438"></a>00438 AV_CODEC_ID_GSM, <span class="comment">///< as in Berlin toast format</span>
<a name="l00439"></a>00439 <span class="comment"></span> AV_CODEC_ID_QDM2,
<a name="l00440"></a>00440 AV_CODEC_ID_COOK,
<a name="l00441"></a>00441 AV_CODEC_ID_TRUESPEECH,
<a name="l00442"></a>00442 AV_CODEC_ID_TTA,
<a name="l00443"></a>00443 AV_CODEC_ID_SMACKAUDIO,
<a name="l00444"></a>00444 AV_CODEC_ID_QCELP,
<a name="l00445"></a>00445 AV_CODEC_ID_WAVPACK,
<a name="l00446"></a>00446 AV_CODEC_ID_DSICINAUDIO,
<a name="l00447"></a>00447 AV_CODEC_ID_IMC,
<a name="l00448"></a>00448 AV_CODEC_ID_MUSEPACK7,
<a name="l00449"></a>00449 AV_CODEC_ID_MLP,
<a name="l00450"></a>00450 AV_CODEC_ID_GSM_MS, <span class="comment">/* as found in WAV */</span>
<a name="l00451"></a>00451 AV_CODEC_ID_ATRAC3,
<a name="l00452"></a>00452 <span class="preprocessor">#if FF_API_VOXWARE</span>
<a name="l00453"></a>00453 <span class="preprocessor"></span> AV_CODEC_ID_VOXWARE,
<a name="l00454"></a>00454 <span class="preprocessor">#endif</span>
<a name="l00455"></a>00455 <span class="preprocessor"></span> AV_CODEC_ID_APE,
<a name="l00456"></a>00456 AV_CODEC_ID_NELLYMOSER,
<a name="l00457"></a>00457 AV_CODEC_ID_MUSEPACK8,
<a name="l00458"></a>00458 AV_CODEC_ID_SPEEX,
<a name="l00459"></a>00459 AV_CODEC_ID_WMAVOICE,
<a name="l00460"></a>00460 AV_CODEC_ID_WMAPRO,
<a name="l00461"></a>00461 AV_CODEC_ID_WMALOSSLESS,
<a name="l00462"></a>00462 AV_CODEC_ID_ATRAC3P,
<a name="l00463"></a>00463 AV_CODEC_ID_EAC3,
<a name="l00464"></a>00464 AV_CODEC_ID_SIPR,
<a name="l00465"></a>00465 AV_CODEC_ID_MP1,
<a name="l00466"></a>00466 AV_CODEC_ID_TWINVQ,
<a name="l00467"></a>00467 AV_CODEC_ID_TRUEHD,
<a name="l00468"></a>00468 AV_CODEC_ID_MP4ALS,
<a name="l00469"></a>00469 AV_CODEC_ID_ATRAC1,
<a name="l00470"></a>00470 AV_CODEC_ID_BINKAUDIO_RDFT,
<a name="l00471"></a>00471 AV_CODEC_ID_BINKAUDIO_DCT,
<a name="l00472"></a>00472 AV_CODEC_ID_AAC_LATM,
<a name="l00473"></a>00473 AV_CODEC_ID_QDMC,
<a name="l00474"></a>00474 AV_CODEC_ID_CELT,
<a name="l00475"></a>00475 AV_CODEC_ID_G723_1,
<a name="l00476"></a>00476 AV_CODEC_ID_G729,
<a name="l00477"></a>00477 AV_CODEC_ID_8SVX_EXP,
<a name="l00478"></a>00478 AV_CODEC_ID_8SVX_FIB,
<a name="l00479"></a>00479 AV_CODEC_ID_BMV_AUDIO,
<a name="l00480"></a>00480 AV_CODEC_ID_RALF,
<a name="l00481"></a>00481 AV_CODEC_ID_IAC,
<a name="l00482"></a>00482 AV_CODEC_ID_ILBC,
<a name="l00483"></a>00483 AV_CODEC_ID_OPUS_DEPRECATED,
<a name="l00484"></a>00484 AV_CODEC_ID_COMFORT_NOISE,
<a name="l00485"></a>00485 AV_CODEC_ID_TAK_DEPRECATED,
<a name="l00486"></a>00486 AV_CODEC_ID_METASOUND,
<a name="l00487"></a>00487 AV_CODEC_ID_PAF_AUDIO_DEPRECATED,
<a name="l00488"></a>00488 AV_CODEC_ID_ON2AVC,
<a name="l00489"></a>00489 AV_CODEC_ID_DSS_SP,
<a name="l00490"></a>00490 AV_CODEC_ID_FFWAVESYNTH = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'F'</span>,<span class="charliteral">'F'</span>,<span class="charliteral">'W'</span>,<span class="charliteral">'S'</span>),
<a name="l00491"></a>00491 AV_CODEC_ID_SONIC = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'O'</span>,<span class="charliteral">'N'</span>,<span class="charliteral">'C'</span>),
<a name="l00492"></a>00492 AV_CODEC_ID_SONIC_LS = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'O'</span>,<span class="charliteral">'N'</span>,<span class="charliteral">'L'</span>),
<a name="l00493"></a>00493 AV_CODEC_ID_PAF_AUDIO = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'P'</span>,<span class="charliteral">'A'</span>,<span class="charliteral">'F'</span>,<span class="charliteral">'A'</span>),
<a name="l00494"></a>00494 AV_CODEC_ID_OPUS = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'O'</span>,<span class="charliteral">'P'</span>,<span class="charliteral">'U'</span>,<span class="charliteral">'S'</span>),
<a name="l00495"></a>00495 AV_CODEC_ID_TAK = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'t'</span>,<span class="charliteral">'B'</span>,<span class="charliteral">'a'</span>,<span class="charliteral">'K'</span>),
<a name="l00496"></a>00496 AV_CODEC_ID_EVRC = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'s'</span>,<span class="charliteral">'e'</span>,<span class="charliteral">'v'</span>,<span class="charliteral">'c'</span>),
<a name="l00497"></a>00497 AV_CODEC_ID_SMV = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'s'</span>,<span class="charliteral">'s'</span>,<span class="charliteral">'m'</span>,<span class="charliteral">'v'</span>),
<a name="l00498"></a>00498 AV_CODEC_ID_DSD_LSBF = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'D'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'D'</span>,<span class="charliteral">'L'</span>),
<a name="l00499"></a>00499 AV_CODEC_ID_DSD_MSBF = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'D'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'D'</span>,<span class="charliteral">'M'</span>),
<a name="l00500"></a>00500 AV_CODEC_ID_DSD_LSBF_PLANAR = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'D'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'D'</span>,<span class="charliteral">'1'</span>),
<a name="l00501"></a>00501 AV_CODEC_ID_DSD_MSBF_PLANAR = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'D'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'D'</span>,<span class="charliteral">'8'</span>),
<a name="l00502"></a>00502
<a name="l00503"></a>00503 <span class="comment">/* subtitle codecs */</span>
<a name="l00504"></a>00504 AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, <span class="comment">///< A dummy ID pointing at the start of subtitle codecs.</span>
<a name="l00505"></a>00505 <span class="comment"></span> AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
<a name="l00506"></a>00506 AV_CODEC_ID_DVB_SUBTITLE,
<a name="l00507"></a>00507 AV_CODEC_ID_TEXT, <span class="comment">///< raw UTF-8 text</span>
<a name="l00508"></a>00508 <span class="comment"></span> AV_CODEC_ID_XSUB,
<a name="l00509"></a>00509 AV_CODEC_ID_SSA,
<a name="l00510"></a>00510 AV_CODEC_ID_MOV_TEXT,
<a name="l00511"></a>00511 AV_CODEC_ID_HDMV_PGS_SUBTITLE,
<a name="l00512"></a>00512 AV_CODEC_ID_DVB_TELETEXT,
<a name="l00513"></a>00513 AV_CODEC_ID_SRT,
<a name="l00514"></a>00514 AV_CODEC_ID_MICRODVD = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'m'</span>,<span class="charliteral">'D'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'D'</span>),
<a name="l00515"></a>00515 AV_CODEC_ID_EIA_608 = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'c'</span>,<span class="charliteral">'6'</span>,<span class="charliteral">'0'</span>,<span class="charliteral">'8'</span>),
<a name="l00516"></a>00516 AV_CODEC_ID_JACOSUB = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'J'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'U'</span>,<span class="charliteral">'B'</span>),
<a name="l00517"></a>00517 AV_CODEC_ID_SAMI = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'A'</span>,<span class="charliteral">'M'</span>,<span class="charliteral">'I'</span>),
<a name="l00518"></a>00518 AV_CODEC_ID_REALTEXT = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'R'</span>,<span class="charliteral">'T'</span>,<span class="charliteral">'X'</span>,<span class="charliteral">'T'</span>),
<a name="l00519"></a>00519 AV_CODEC_ID_STL = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'p'</span>,<span class="charliteral">'T'</span>,<span class="charliteral">'L'</span>),
<a name="l00520"></a>00520 AV_CODEC_ID_SUBVIEWER1 = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'b'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'1'</span>),
<a name="l00521"></a>00521 AV_CODEC_ID_SUBVIEWER = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'u'</span>,<span class="charliteral">'b'</span>,<span class="charliteral">'V'</span>),
<a name="l00522"></a>00522 AV_CODEC_ID_SUBRIP = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'S'</span>,<span class="charliteral">'R'</span>,<span class="charliteral">'i'</span>,<span class="charliteral">'p'</span>),
<a name="l00523"></a>00523 AV_CODEC_ID_WEBVTT = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'W'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'T'</span>,<span class="charliteral">'T'</span>),
<a name="l00524"></a>00524 AV_CODEC_ID_MPL2 = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'M'</span>,<span class="charliteral">'P'</span>,<span class="charliteral">'L'</span>,<span class="charliteral">'2'</span>),
<a name="l00525"></a>00525 AV_CODEC_ID_VPLAYER = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'V'</span>,<span class="charliteral">'P'</span>,<span class="charliteral">'l'</span>,<span class="charliteral">'r'</span>),
<a name="l00526"></a>00526 AV_CODEC_ID_PJS = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'P'</span>,<span class="charliteral">'h'</span>,<span class="charliteral">'J'</span>,<span class="charliteral">'S'</span>),
<a name="l00527"></a>00527 AV_CODEC_ID_ASS = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'A'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">'S'</span>,<span class="charliteral">' '</span>), <span class="comment">///< ASS as defined in Matroska</span>
<a name="l00528"></a>00528 <span class="comment"></span>
<a name="l00529"></a>00529 <span class="comment">/* other specific kind of codecs (generally used for attachments) */</span>
<a name="l00530"></a>00530 AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, <span class="comment">///< A dummy ID pointing at the start of various fake codecs.</span>
<a name="l00531"></a>00531 <span class="comment"></span> AV_CODEC_ID_TTF = 0x18000,
<a name="l00532"></a>00532 AV_CODEC_ID_BINTEXT = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'B'</span>,<span class="charliteral">'T'</span>,<span class="charliteral">'X'</span>,<span class="charliteral">'T'</span>),
<a name="l00533"></a>00533 AV_CODEC_ID_XBIN = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'X'</span>,<span class="charliteral">'B'</span>,<span class="charliteral">'I'</span>,<span class="charliteral">'N'</span>),
<a name="l00534"></a>00534 AV_CODEC_ID_IDF = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>( 0 ,<span class="charliteral">'I'</span>,<span class="charliteral">'D'</span>,<span class="charliteral">'F'</span>),
<a name="l00535"></a>00535 AV_CODEC_ID_OTF = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>( 0 ,<span class="charliteral">'O'</span>,<span class="charliteral">'T'</span>,<span class="charliteral">'F'</span>),
<a name="l00536"></a>00536 AV_CODEC_ID_SMPTE_KLV = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'K'</span>,<span class="charliteral">'L'</span>,<span class="charliteral">'V'</span>,<span class="charliteral">'A'</span>),
<a name="l00537"></a>00537 AV_CODEC_ID_DVD_NAV = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'D'</span>,<span class="charliteral">'N'</span>,<span class="charliteral">'A'</span>,<span class="charliteral">'V'</span>),
<a name="l00538"></a>00538 AV_CODEC_ID_TIMED_ID3 = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'T'</span>,<span class="charliteral">'I'</span>,<span class="charliteral">'D'</span>,<span class="charliteral">'3'</span>),
<a name="l00539"></a>00539 AV_CODEC_ID_BIN_DATA = <a class="code" href="common_8h.html#a1e233db224cd0a3079fd4572d1a3d717">MKBETAG</a>(<span class="charliteral">'D'</span>,<span class="charliteral">'A'</span>,<span class="charliteral">'T'</span>,<span class="charliteral">'A'</span>),
<a name="l00540"></a>00540
<a name="l00541"></a>00541
<a name="l00542"></a>00542 AV_CODEC_ID_PROBE = 0x19000, <span class="comment">///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it</span>
<a name="l00543"></a>00543 <span class="comment"></span>
<a name="l00544"></a>00544 AV_CODEC_ID_MPEG2TS = 0x20000, <span class="comment">/**< _FAKE_ codec to indicate a raw MPEG-2 TS</span>
<a name="l00545"></a>00545 <span class="comment"> * stream (only used by libavformat) */</span>
<a name="l00546"></a>00546 AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, <span class="comment">/**< _FAKE_ codec to indicate a MPEG-4 Systems</span>
<a name="l00547"></a>00547 <span class="comment"> * stream (only used by libavformat) */</span>
<a name="l00548"></a>00548 AV_CODEC_ID_FFMETADATA = 0x21000, <span class="comment">///< Dummy codec for streams containing only metadata information.</span>
<a name="l00549"></a>00549 <span class="comment"></span>
<a name="l00550"></a>00550 <span class="preprocessor">#if FF_API_CODEC_ID</span>
<a name="l00551"></a>00551 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="old__codec__ids_8h.html">old_codec_ids.h</a>"</span>
<a name="l00552"></a>00552 <span class="preprocessor">#endif</span>
<a name="l00553"></a>00553 <span class="preprocessor"></span>};
<a name="l00554"></a>00554 <span class="comment"></span>
<a name="l00555"></a>00555 <span class="comment">/**</span>
<a name="l00556"></a>00556 <span class="comment"> * This struct describes the properties of a single codec described by an</span>
<a name="l00557"></a>00557 <span class="comment"> * AVCodecID.</span>
<a name="l00558"></a>00558 <span class="comment"> * @see avcodec_descriptor_get()</span>
<a name="l00559"></a>00559 <span class="comment"> */</span>
<a name="l00560"></a><a class="code" href="structAVCodecDescriptor.html">00560</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a> {
<a name="l00561"></a><a class="code" href="structAVCodecDescriptor.html#ab7ba57d70e9d4d50bba20c778c09d069">00561</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <a class="code" href="structAVCodecDescriptor.html#ab7ba57d70e9d4d50bba20c778c09d069">id</a>;
<a name="l00562"></a><a class="code" href="structAVCodecDescriptor.html#ad628ddb3416cafa38c9d4f3c1f61ad50">00562</a> <span class="keyword">enum</span> <a class="code" href="group__lavu__misc.html#ga9a84bba4713dfced21a1a56163be1f48">AVMediaType</a> <a class="code" href="structAVCodecDescriptor.html#ad628ddb3416cafa38c9d4f3c1f61ad50">type</a>;<span class="comment"></span>
<a name="l00563"></a>00563 <span class="comment"> /**</span>
<a name="l00564"></a>00564 <span class="comment"> * Name of the codec described by this descriptor. It is non-empty and</span>
<a name="l00565"></a>00565 <span class="comment"> * unique for each codec descriptor. It should contain alphanumeric</span>
<a name="l00566"></a>00566 <span class="comment"> * characters and '_' only.</span>
<a name="l00567"></a>00567 <span class="comment"> */</span>
<a name="l00568"></a><a class="code" href="structAVCodecDescriptor.html#a955dba1de947abbed22d28682b0db516">00568</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVCodecDescriptor.html#a955dba1de947abbed22d28682b0db516" title="Name of the codec described by this descriptor.">name</a>;<span class="comment"></span>
<a name="l00569"></a>00569 <span class="comment"> /**</span>
<a name="l00570"></a>00570 <span class="comment"> * A more descriptive name for this codec. May be NULL.</span>
<a name="l00571"></a>00571 <span class="comment"> */</span>
<a name="l00572"></a><a class="code" href="structAVCodecDescriptor.html#a31fa9d4fed68cfe8a128d461ec2d3e20">00572</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVCodecDescriptor.html#a31fa9d4fed68cfe8a128d461ec2d3e20" title="A more descriptive name for this codec.">long_name</a>;<span class="comment"></span>
<a name="l00573"></a>00573 <span class="comment"> /**</span>
<a name="l00574"></a>00574 <span class="comment"> * Codec properties, a combination of AV_CODEC_PROP_* flags.</span>
<a name="l00575"></a>00575 <span class="comment"> */</span>
<a name="l00576"></a><a class="code" href="structAVCodecDescriptor.html#a9949288403a12812cd6e3892ac45f40f">00576</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecDescriptor.html#a9949288403a12812cd6e3892ac45f40f" title="Codec properties, a combination of AV_CODEC_PROP_* flags.">props</a>;
<a name="l00577"></a>00577 <span class="comment"></span>
<a name="l00578"></a>00578 <span class="comment"> /**</span>
<a name="l00579"></a>00579 <span class="comment"> * MIME type(s) associated with the codec.</span>
<a name="l00580"></a>00580 <span class="comment"> * May be NULL; if not, a NULL-terminated array of MIME types.</span>
<a name="l00581"></a>00581 <span class="comment"> * The first item is always non-NULL and is the preferred MIME type.</span>
<a name="l00582"></a>00582 <span class="comment"> */</span>
<a name="l00583"></a><a class="code" href="structAVCodecDescriptor.html#a15fdf65a032db42ffa532837f72f6921">00583</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> *<a class="code" href="structAVCodecDescriptor.html#a15fdf65a032db42ffa532837f72f6921" title="MIME type(s) associated with the codec.">mime_types</a>;
<a name="l00584"></a>00584 } <a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a>;
<a name="l00585"></a>00585 <span class="comment"></span>
<a name="l00586"></a>00586 <span class="comment">/**</span>
<a name="l00587"></a>00587 <span class="comment"> * Codec uses only intra compression.</span>
<a name="l00588"></a>00588 <span class="comment"> * Video codecs only.</span>
<a name="l00589"></a>00589 <span class="comment"> */</span>
<a name="l00590"></a><a class="code" href="group__lavc__core.html#ga70552a7d4d1803bc11be8e6c74529d24">00590</a> <span class="preprocessor">#define AV_CODEC_PROP_INTRA_ONLY (1 << 0)</span>
<a name="l00591"></a>00591 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00592"></a>00592 <span class="comment"> * Codec supports lossy compression. Audio and video codecs only.</span>
<a name="l00593"></a>00593 <span class="comment"> * @note a codec may support both lossy and lossless</span>
<a name="l00594"></a>00594 <span class="comment"> * compression modes</span>
<a name="l00595"></a>00595 <span class="comment"> */</span>
<a name="l00596"></a><a class="code" href="group__lavc__core.html#ga0bb6cb9b395a0f2345eb41ed990fbf9f">00596</a> <span class="preprocessor">#define AV_CODEC_PROP_LOSSY (1 << 1)</span>
<a name="l00597"></a>00597 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00598"></a>00598 <span class="comment"> * Codec supports lossless compression. Audio and video codecs only.</span>
<a name="l00599"></a>00599 <span class="comment"> */</span>
<a name="l00600"></a><a class="code" href="group__lavc__core.html#ga540358327f77f6b924ca25a712b7fdc1">00600</a> <span class="preprocessor">#define AV_CODEC_PROP_LOSSLESS (1 << 2)</span>
<a name="l00601"></a>00601 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00602"></a>00602 <span class="comment"> * Codec supports frame reordering. That is, the coded order (the order in which</span>
<a name="l00603"></a>00603 <span class="comment"> * the encoded packets are output by the encoders / stored / input to the</span>
<a name="l00604"></a>00604 <span class="comment"> * decoders) may be different from the presentation order of the corresponding</span>
<a name="l00605"></a>00605 <span class="comment"> * frames.</span>
<a name="l00606"></a>00606 <span class="comment"> *</span>
<a name="l00607"></a>00607 <span class="comment"> * For codecs that do not have this property set, PTS and DTS should always be</span>
<a name="l00608"></a>00608 <span class="comment"> * equal.</span>
<a name="l00609"></a>00609 <span class="comment"> */</span>
<a name="l00610"></a><a class="code" href="group__lavc__core.html#gaf28f8da6f74d303c115635d696a318b6">00610</a> <span class="preprocessor">#define AV_CODEC_PROP_REORDER (1 << 3)</span>
<a name="l00611"></a>00611 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00612"></a>00612 <span class="comment"> * Subtitle codec is bitmap based</span>
<a name="l00613"></a>00613 <span class="comment"> * Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field.</span>
<a name="l00614"></a>00614 <span class="comment"> */</span>
<a name="l00615"></a><a class="code" href="group__lavc__core.html#gac0dfb59ee63132c9a064696a741419f6">00615</a> <span class="preprocessor">#define AV_CODEC_PROP_BITMAP_SUB (1 << 16)</span>
<a name="l00616"></a>00616 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00617"></a>00617 <span class="comment"> * Subtitle codec is text based.</span>
<a name="l00618"></a>00618 <span class="comment"> * Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field.</span>
<a name="l00619"></a>00619 <span class="comment"> */</span>
<a name="l00620"></a><a class="code" href="group__lavc__core.html#gae1c276095faaece7c097f8fd9f1184db">00620</a> <span class="preprocessor">#define AV_CODEC_PROP_TEXT_SUB (1 << 17)</span>
<a name="l00621"></a>00621 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00622"></a>00622 <span class="comment">/**</span>
<a name="l00623"></a>00623 <span class="comment"> * @ingroup lavc_decoding</span>
<a name="l00624"></a>00624 <span class="comment"> * Required number of additionally allocated bytes at the end of the input bitstream for decoding.</span>
<a name="l00625"></a>00625 <span class="comment"> * This is mainly needed because some optimized bitstream readers read</span>
<a name="l00626"></a>00626 <span class="comment"> * 32 or 64 bit at once and could read over the end.<br></span>
<a name="l00627"></a>00627 <span class="comment"> * Note: If the first 23 bits of the additional bytes are not 0, then damaged</span>
<a name="l00628"></a>00628 <span class="comment"> * MPEG bitstreams could cause overread and segfault.</span>
<a name="l00629"></a>00629 <span class="comment"> */</span>
<a name="l00630"></a><a class="code" href="group__lavc__decoding.html#ga9207dd7cb4ee4416f8fd1f7a63af34b7">00630</a> <span class="preprocessor">#define FF_INPUT_BUFFER_PADDING_SIZE 32</span>
<a name="l00631"></a>00631 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00632"></a>00632 <span class="comment">/**</span>
<a name="l00633"></a>00633 <span class="comment"> * @ingroup lavc_encoding</span>
<a name="l00634"></a>00634 <span class="comment"> * minimum encoding buffer size</span>
<a name="l00635"></a>00635 <span class="comment"> * Used to avoid some checks during header writing.</span>
<a name="l00636"></a>00636 <span class="comment"> */</span>
<a name="l00637"></a><a class="code" href="group__lavc__encoding.html#gacf94eb890b3b77383ec7fd728db8509c">00637</a> <span class="preprocessor">#define FF_MIN_BUFFER_SIZE 16384</span>
<a name="l00638"></a>00638 <span class="preprocessor"></span>
<a name="l00639"></a>00639 <span class="comment"></span>
<a name="l00640"></a>00640 <span class="comment">/**</span>
<a name="l00641"></a>00641 <span class="comment"> * @ingroup lavc_encoding</span>
<a name="l00642"></a>00642 <span class="comment"> * motion estimation type.</span>
<a name="l00643"></a>00643 <span class="comment"> */</span>
<a name="l00644"></a><a class="code" href="group__lavc__encoding.html#ga09b261f1bce5161af3485cb3302edd27">00644</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__encoding.html#ga09b261f1bce5161af3485cb3302edd27" title="motion estimation type.">Motion_Est_ID</a> {
<a name="l00645"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a93dc3282c22808d298c81bfde3882c42">00645</a> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a93dc3282c22808d298c81bfde3882c42" title="no search, that is use 0,0 vector whenever one is needed">ME_ZERO</a> = 1, <span class="comment">///< no search, that is use 0,0 vector whenever one is needed</span>
<a name="l00646"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a84208f4e6c361aaf87ac0c0f71116431">00646</a> <span class="comment"></span> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a84208f4e6c361aaf87ac0c0f71116431">ME_FULL</a>,
<a name="l00647"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a712da9e85272e6bc8d73d897e40e8ab8">00647</a> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a712da9e85272e6bc8d73d897e40e8ab8">ME_LOG</a>,
<a name="l00648"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27ab9f980e93b9500d67b1308ad0e9ce72a">00648</a> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27ab9f980e93b9500d67b1308ad0e9ce72a">ME_PHODS</a>,
<a name="l00649"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a47a2cf1ba9719d733ff2c0c0fc6e3491">00649</a> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a47a2cf1ba9719d733ff2c0c0fc6e3491" title="enhanced predictive zonal search">ME_EPZS</a>, <span class="comment">///< enhanced predictive zonal search</span>
<a name="l00650"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a97220d3da7ac127439d96e641b48ca5f">00650</a> <span class="comment"></span> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a97220d3da7ac127439d96e641b48ca5f" title="reserved for experiments">ME_X1</a>, <span class="comment">///< reserved for experiments</span>
<a name="l00651"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a842aadc9a6d4f1c9fa20a17c77521327">00651</a> <span class="comment"></span> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a842aadc9a6d4f1c9fa20a17c77521327" title="hexagon based search">ME_HEX</a>, <span class="comment">///< hexagon based search</span>
<a name="l00652"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a933a98fe54bd38c7ba77ca9a917e3bc8">00652</a> <span class="comment"></span> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27a933a98fe54bd38c7ba77ca9a917e3bc8" title="uneven multi-hexagon search">ME_UMH</a>, <span class="comment">///< uneven multi-hexagon search</span>
<a name="l00653"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27ad0718ff68dd2d8f9642f5ca4aab1e181">00653</a> <span class="comment"></span> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27ad0718ff68dd2d8f9642f5ca4aab1e181" title="transformed exhaustive search algorithm">ME_TESA</a>, <span class="comment">///< transformed exhaustive search algorithm</span>
<a name="l00654"></a><a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27ab2b41a1b4640728bd95c1910b111270f">00654</a> <span class="comment"></span> <a class="code" href="group__lavc__encoding.html#gga09b261f1bce5161af3485cb3302edd27ab2b41a1b4640728bd95c1910b111270f" title="iterative search">ME_ITER</a>=50, <span class="comment">///< iterative search</span>
<a name="l00655"></a>00655 <span class="comment"></span>};
<a name="l00656"></a>00656 <span class="comment"></span>
<a name="l00657"></a>00657 <span class="comment">/**</span>
<a name="l00658"></a>00658 <span class="comment"> * @ingroup lavc_decoding</span>
<a name="l00659"></a>00659 <span class="comment"> */</span>
<a name="l00660"></a><a class="code" href="group__lavc__decoding.html#ga352363bce7d3ed82c101b3bc001d1c16">00660</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__decoding.html#ga352363bce7d3ed82c101b3bc001d1c16">AVDiscard</a>{
<a name="l00661"></a>00661 <span class="comment">/* We leave some space between them for extensions (drop some</span>
<a name="l00662"></a>00662 <span class="comment"> * keyframes for intra-only or drop just some bidir frames). */</span>
<a name="l00663"></a><a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a93d0436f7651b58debe3f995e2582dcd">00663</a> <a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a93d0436f7651b58debe3f995e2582dcd" title="discard nothing">AVDISCARD_NONE</a> =-16, <span class="comment">///< discard nothing</span>
<a name="l00664"></a><a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a81453d8c452e8ee794daf7fde1c80b5b">00664</a> <span class="comment"></span> <a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a81453d8c452e8ee794daf7fde1c80b5b" title="discard useless packets like 0 size packets in avi">AVDISCARD_DEFAULT</a> = 0, <span class="comment">///< discard useless packets like 0 size packets in avi</span>
<a name="l00665"></a><a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16ac5a5a87ffcd6fb2362ac18449d29bde8">00665</a> <span class="comment"></span> <a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16ac5a5a87ffcd6fb2362ac18449d29bde8" title="discard all non reference">AVDISCARD_NONREF</a> = 8, <span class="comment">///< discard all non reference</span>
<a name="l00666"></a><a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a776541ad00a4f13c3fdcd363988bffb3">00666</a> <span class="comment"></span> <a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a776541ad00a4f13c3fdcd363988bffb3" title="discard all bidirectional frames">AVDISCARD_BIDIR</a> = 16, <span class="comment">///< discard all bidirectional frames</span>
<a name="l00667"></a><a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16aabee31ca5c7c140d3a84b848164eeaf8">00667</a> <span class="comment"></span> <a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16aabee31ca5c7c140d3a84b848164eeaf8" title="discard all non intra frames">AVDISCARD_NONINTRA</a>= 24, <span class="comment">///< discard all non intra frames</span>
<a name="l00668"></a><a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a31c8164477d9f571f82003065d2ab6f1">00668</a> <span class="comment"></span> <a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a31c8164477d9f571f82003065d2ab6f1" title="discard all frames except keyframes">AVDISCARD_NONKEY</a> = 32, <span class="comment">///< discard all frames except keyframes</span>
<a name="l00669"></a><a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a07517e3890ba7e19a612945483dc066a">00669</a> <span class="comment"></span> <a class="code" href="group__lavc__decoding.html#gga352363bce7d3ed82c101b3bc001d1c16a07517e3890ba7e19a612945483dc066a" title="discard all">AVDISCARD_ALL</a> = 48, <span class="comment">///< discard all</span>
<a name="l00670"></a>00670 <span class="comment"></span>};
<a name="l00671"></a>00671
<a name="l00672"></a><a class="code" href="group__lavc__core.html#gadcff0a5957a99f6fdf1eec9d5a3fdfaf">00672</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gadcff0a5957a99f6fdf1eec9d5a3fdfaf">AVAudioServiceType</a> {
<a name="l00673"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa909e448624c46b32506f20acaeb59219">00673</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa909e448624c46b32506f20acaeb59219">AV_AUDIO_SERVICE_TYPE_MAIN</a> = 0,
<a name="l00674"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa89cc3ca931cc01de8b8b498492133f58">00674</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa89cc3ca931cc01de8b8b498492133f58">AV_AUDIO_SERVICE_TYPE_EFFECTS</a> = 1,
<a name="l00675"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafae1d0587828c1f7efdb0ac449946448fc">00675</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafae1d0587828c1f7efdb0ac449946448fc">AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED</a> = 2,
<a name="l00676"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafabd1590db13ebdc6f1c53fd5cd97ff3ca">00676</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafabd1590db13ebdc6f1c53fd5cd97ff3ca">AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED</a> = 3,
<a name="l00677"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa94e109ad671c99029eb89b61a840050c">00677</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa94e109ad671c99029eb89b61a840050c">AV_AUDIO_SERVICE_TYPE_DIALOGUE</a> = 4,
<a name="l00678"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafac279dfd2816ee38406920c0c4718bd90">00678</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafac279dfd2816ee38406920c0c4718bd90">AV_AUDIO_SERVICE_TYPE_COMMENTARY</a> = 5,
<a name="l00679"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa49e2c0c319dfdd3b5756e58900c8a88c">00679</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa49e2c0c319dfdd3b5756e58900c8a88c">AV_AUDIO_SERVICE_TYPE_EMERGENCY</a> = 6,
<a name="l00680"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa0c000c46073046780a3daa1e8f84e207">00680</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafa0c000c46073046780a3daa1e8f84e207">AV_AUDIO_SERVICE_TYPE_VOICE_OVER</a> = 7,
<a name="l00681"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafab4290d124e49f795ef1ba709fc60233c">00681</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafab4290d124e49f795ef1ba709fc60233c">AV_AUDIO_SERVICE_TYPE_KARAOKE</a> = 8,
<a name="l00682"></a><a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafac562760f8958fb519327590d42e91b0e">00682</a> <a class="code" href="group__lavc__core.html#ggadcff0a5957a99f6fdf1eec9d5a3fdfafac562760f8958fb519327590d42e91b0e" title="Not part of ABI.">AV_AUDIO_SERVICE_TYPE_NB</a> , <span class="comment">///< Not part of ABI</span>
<a name="l00683"></a>00683 <span class="comment"></span>};
<a name="l00684"></a>00684 <span class="comment"></span>
<a name="l00685"></a>00685 <span class="comment">/**</span>
<a name="l00686"></a>00686 <span class="comment"> * @ingroup lavc_encoding</span>
<a name="l00687"></a>00687 <span class="comment"> */</span>
<a name="l00688"></a><a class="code" href="structRcOverride.html">00688</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structRcOverride.html">RcOverride</a>{
<a name="l00689"></a><a class="code" href="structRcOverride.html#adba2ede2813367b12a1060571ecac63c">00689</a> <span class="keywordtype">int</span> <a class="code" href="structRcOverride.html#adba2ede2813367b12a1060571ecac63c">start_frame</a>;
<a name="l00690"></a><a class="code" href="structRcOverride.html#adfac60a604f4b61cb80c9ec0fb3f42b3">00690</a> <span class="keywordtype">int</span> <a class="code" href="structRcOverride.html#adfac60a604f4b61cb80c9ec0fb3f42b3">end_frame</a>;
<a name="l00691"></a><a class="code" href="structRcOverride.html#ab19147a3f876e82f52405f6d8a831915">00691</a> <span class="keywordtype">int</span> <a class="code" href="structRcOverride.html#ab19147a3f876e82f52405f6d8a831915">qscale</a>; <span class="comment">// If this is 0 then quality_factor will be used instead.</span>
<a name="l00692"></a><a class="code" href="structRcOverride.html#aeaf7e06332eed4f0d9f900178a8faa83">00692</a> <span class="keywordtype">float</span> <a class="code" href="structRcOverride.html#aeaf7e06332eed4f0d9f900178a8faa83">quality_factor</a>;
<a name="l00693"></a>00693 } <a class="code" href="structRcOverride.html">RcOverride</a>;
<a name="l00694"></a>00694
<a name="l00695"></a>00695 <span class="preprocessor">#if FF_API_MAX_BFRAMES</span>
<a name="l00696"></a>00696 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00697"></a>00697 <span class="comment"> * @deprecated there is no libavcodec-wide limit on the number of B-frames</span>
<a name="l00698"></a>00698 <span class="comment"> */</span>
<a name="l00699"></a><a class="code" href="group__lavc__core.html#gafe5eaf646b3390c6ae8a7a66cd4b7896">00699</a> <span class="preprocessor">#define FF_MAX_B_FRAMES 16</span>
<a name="l00700"></a>00700 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00701"></a>00701 <span class="preprocessor"></span>
<a name="l00702"></a>00702 <span class="comment">/* encoding support</span>
<a name="l00703"></a>00703 <span class="comment"> These flags can be passed in AVCodecContext.flags before initialization.</span>
<a name="l00704"></a>00704 <span class="comment"> Note: Not everything is supported yet.</span>
<a name="l00705"></a>00705 <span class="comment">*/</span>
<a name="l00706"></a>00706 <span class="comment"></span>
<a name="l00707"></a>00707 <span class="comment">/**</span>
<a name="l00708"></a>00708 <span class="comment"> * Allow decoders to produce frames with data planes that are not aligned</span>
<a name="l00709"></a>00709 <span class="comment"> * to CPU requirements (e.g. due to cropping).</span>
<a name="l00710"></a>00710 <span class="comment"> */</span>
<a name="l00711"></a><a class="code" href="group__lavc__core.html#gaa01127e1e57cc0fc118648e551974043">00711</a> <span class="preprocessor">#define CODEC_FLAG_UNALIGNED 0x0001</span>
<a name="l00712"></a><a class="code" href="group__lavc__core.html#gab743ec1092ea932e7964f7753d223bee">00712</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_QSCALE 0x0002 ///< Use fixed qscale.</span>
<a name="l00713"></a><a class="code" href="group__lavc__core.html#ga4acbdb36d2e13cb52793a585a22054dc">00713</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_4MV 0x0004 ///< 4 MV per MB allowed / advanced prediction for H.263.</span>
<a name="l00714"></a><a class="code" href="group__lavc__core.html#ga9a722d4cebcca23c176a445ada262bb1">00714</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_OUTPUT_CORRUPT 0x0008 ///< Output even those frames that might be corrupted</span>
<a name="l00715"></a><a class="code" href="group__lavc__core.html#ga98a9398894b844b3a18fe0cf2a64bbfb">00715</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_QPEL 0x0010 ///< Use qpel MC.</span>
<a name="l00716"></a>00716 <span class="preprocessor"></span><span class="preprocessor">#if FF_API_GMC</span>
<a name="l00717"></a>00717 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00718"></a>00718 <span class="comment"> * @deprecated use the "gmc" private option of the libxvid encoder</span>
<a name="l00719"></a>00719 <span class="comment"> */</span>
<a name="l00720"></a><a class="code" href="group__lavc__core.html#gabd989d2cb758080650b3ef7110ce2e02">00720</a> <span class="preprocessor">#define CODEC_FLAG_GMC 0x0020 ///< Use GMC.</span>
<a name="l00721"></a>00721 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00722"></a>00722 <span class="preprocessor"></span><span class="preprocessor">#if FF_API_MV0</span>
<a name="l00723"></a>00723 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00724"></a>00724 <span class="comment"> * @deprecated use the flag "mv0" in the "mpv_flags" private option of the</span>
<a name="l00725"></a>00725 <span class="comment"> * mpegvideo encoders</span>
<a name="l00726"></a>00726 <span class="comment"> */</span>
<a name="l00727"></a><a class="code" href="group__lavc__core.html#gaf156407325fbeed6a7e50dbfa351a59d">00727</a> <span class="preprocessor">#define CODEC_FLAG_MV0 0x0040</span>
<a name="l00728"></a>00728 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00729"></a>00729 <span class="preprocessor"></span><span class="preprocessor">#if FF_API_INPUT_PRESERVED</span>
<a name="l00730"></a>00730 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00731"></a>00731 <span class="comment"> * @deprecated passing reference-counted frames to the encoders replaces this</span>
<a name="l00732"></a>00732 <span class="comment"> * flag</span>
<a name="l00733"></a>00733 <span class="comment"> */</span>
<a name="l00734"></a><a class="code" href="group__lavc__core.html#ga953f1b45980492ebac2caee244b4ffb9">00734</a> <span class="preprocessor">#define CODEC_FLAG_INPUT_PRESERVED 0x0100</span>
<a name="l00735"></a>00735 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00736"></a><a class="code" href="group__lavc__core.html#ga7520c1b76c29de7d2380df7c76fdeb80">00736</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_PASS1 0x0200 ///< Use internal 2pass ratecontrol in first pass mode.</span>
<a name="l00737"></a><a class="code" href="group__lavc__core.html#gac70beecb5e693321cf327fb6499a640d">00737</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_PASS2 0x0400 ///< Use internal 2pass ratecontrol in second pass mode.</span>
<a name="l00738"></a><a class="code" href="group__lavc__core.html#gad97799a4d0af42bdb6dc92a712893f44">00738</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_GRAY 0x2000 ///< Only decode/encode grayscale.</span>
<a name="l00739"></a>00739 <span class="preprocessor"></span><span class="preprocessor">#if FF_API_EMU_EDGE</span>
<a name="l00740"></a>00740 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00741"></a>00741 <span class="comment"> * @deprecated edges are not used/required anymore. I.e. this flag is now always</span>
<a name="l00742"></a>00742 <span class="comment"> * set.</span>
<a name="l00743"></a>00743 <span class="comment"> */</span>
<a name="l00744"></a><a class="code" href="group__lavc__core.html#ga59f363ca5d22ad82adab3a5e6f520d10">00744</a> <span class="preprocessor">#define CODEC_FLAG_EMU_EDGE 0x4000</span>
<a name="l00745"></a>00745 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00746"></a><a class="code" href="group__lavc__core.html#ga6fdc076bd2bc059b524e09442436d838">00746</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding.</span>
<a name="l00747"></a><a class="code" href="group__lavc__core.html#ga3bbd99307dfa5f8a096d646bc9d03bca">00747</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_TRUNCATED 0x00010000 </span><span class="comment">/** Input bitstream might be truncated at a random</span>
<a name="l00748"></a>00748 <span class="comment"> location instead of only at frame boundaries. */</span>
<a name="l00749"></a>00749 <span class="preprocessor">#if FF_API_NORMALIZE_AQP</span>
<a name="l00750"></a>00750 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00751"></a>00751 <span class="comment"> * @deprecated use the flag "naq" in the "mpv_flags" private option of the</span>
<a name="l00752"></a>00752 <span class="comment"> * mpegvideo encoders</span>
<a name="l00753"></a><a class="code" href="group__lavc__core.html#gafb83abde2c1e8a275b8098dbaec2dab6">00753</a> <span class="comment"> */</span>
<a name="l00754"></a>00754 <span class="preprocessor">#define CODEC_FLAG_NORMALIZE_AQP 0x00020000</span>
<a name="l00755"></a><a class="code" href="group__lavc__core.html#gac0bec0a9872e168e875889d06e3b9745">00755</a> <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00756"></a><a class="code" href="group__lavc__core.html#ga153ac4631210154a5fbd364f5f6c3a37">00756</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_INTERLACED_DCT 0x00040000 ///< Use interlaced DCT.</span>
<a name="l00757"></a><a class="code" href="group__lavc__core.html#gaab6ceefd617cf265ef7ea1b87ed5933e">00757</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_LOW_DELAY 0x00080000 ///< Force low delay.</span>
<a name="l00758"></a><a class="code" href="group__lavc__core.html#ga7e93ca818d7baf38a9ba521cbdc76ae7">00758</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///< Place global headers in extradata instead of every keyframe.</span>
<a name="l00759"></a>00759 <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_BITEXACT 0x00800000 ///< Use only bitexact stuff (except (I)DCT).</span>
<a name="l00760"></a><a class="code" href="group__lavc__core.html#ga0d49fb360dacd83ff9c5700e2274e3ce">00760</a> <span class="preprocessor"></span><span class="comment">/* Fx : Flag for h263+ extra options */</span>
<a name="l00761"></a><a class="code" href="group__lavc__core.html#ga8fde264f3076c6a66da7335bd04a7588">00761</a> <span class="preprocessor">#define CODEC_FLAG_AC_PRED 0x01000000 ///< H.263 advanced intra coding / MPEG-4 AC prediction</span>
<a name="l00762"></a><a class="code" href="group__lavc__core.html#gaf61b518378ae97bfd3253abaa951ea76">00762</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_LOOP_FILTER 0x00000800 ///< loop filter</span>
<a name="l00763"></a><a class="code" href="group__lavc__core.html#ga548edd4e22e6f853630f08a0f18f4506">00763</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_INTERLACED_ME 0x20000000 ///< interlaced motion estimation</span>
<a name="l00764"></a><a class="code" href="group__lavc__core.html#ga178992cee1960d1e7b3caf1454a8e775">00764</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG_CLOSED_GOP 0x80000000</span>
<a name="l00765"></a><a class="code" href="group__lavc__core.html#ga2c728d6fdb41252eb2c17788aecd8b58">00765</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG2_FAST 0x00000001 ///< Allow non spec compliant speedup tricks.</span>
<a name="l00766"></a><a class="code" href="group__lavc__core.html#ga7c32c57a6dda25f64d1a0ee6894be164">00766</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///< Skip bitstream encoding.</span>
<a name="l00767"></a><a class="code" href="group__lavc__core.html#gae6fa288f0e5bfbda7246dfd398edb4e3">00767</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///< Place global headers at every keyframe instead of in extradata.</span>
<a name="l00768"></a><a class="code" href="group__lavc__core.html#gaae8ae4d78d97ee68fc3495be42dff68a">00768</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000 ///< timecode is in drop frame format. DEPRECATED!!!!</span>
<a name="l00769"></a>00769 <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG2_IGNORE_CROP 0x00010000 ///< Discard cropping information from SPS.</span>
<a name="l00770"></a><a class="code" href="group__lavc__core.html#ga24f124c07fbfbec412c0692673010e27">00770</a> <span class="preprocessor"></span>
<a name="l00771"></a><a class="code" href="group__lavc__core.html#ga950fb622a6f7aa04350862e3e21c67a3">00771</a> <span class="preprocessor">#define CODEC_FLAG2_CHUNKS 0x00008000 ///< Input bitstream might be truncated at a packet boundaries instead of only at frame boundaries.</span>
<a name="l00772"></a><a class="code" href="group__lavc__core.html#ga8e7df263578eff42ea40ab70ee90e3f7">00772</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG2_SHOW_ALL 0x00400000 ///< Show all frames before the first keyframe</span>
<a name="l00773"></a><a class="code" href="group__lavc__core.html#gaedf3b6470693906531f5aede34c74700">00773</a> <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG2_EXPORT_MVS 0x10000000 ///< Export motion vectors through frame side data</span>
<a name="l00774"></a>00774 <span class="preprocessor"></span><span class="preprocessor">#define CODEC_FLAG2_SKIP_MANUAL 0x20000000 ///< Do not skip samples and export skip information as frame side data</span>
<a name="l00775"></a>00775 <span class="preprocessor"></span>
<a name="l00776"></a>00776 <span class="comment">/* Unsupported options :</span>
<a name="l00777"></a>00777 <span class="comment"> * Syntax Arithmetic coding (SAC)</span>
<a name="l00778"></a>00778 <span class="comment"> * Reference Picture Selection</span>
<a name="l00779"></a>00779 <span class="comment"> * Independent Segment Decoding */</span>
<a name="l00780"></a>00780 <span class="comment">/* /Fx */</span>
<a name="l00781"></a>00781 <span class="comment">/* codec capabilities */</span>
<a name="l00782"></a><a class="code" href="group__lavc__core.html#gad976df2e31f4e9674d1382e72d0d0bf5">00782</a>
<a name="l00783"></a>00783 <span class="preprocessor">#define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 ///< Decoder can use draw_horiz_band callback.</span>
<a name="l00784"></a>00784 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00785"></a>00785 <span class="comment"> * Codec uses get_buffer() for allocating buffers and supports custom allocators.</span>
<a name="l00786"></a>00786 <span class="comment"> * If not set, it might not use get_buffer() at all or use operations that</span>
<a name="l00787"></a>00787 <span class="comment"> * assume the buffer was allocated by avcodec_default_get_buffer.</span>
<a name="l00788"></a><a class="code" href="group__lavc__core.html#ga87f9d8826e1154b01d16c52561d98d98">00788</a> <span class="comment"> */</span>
<a name="l00789"></a><a class="code" href="group__lavc__core.html#ga8783bdc2c37a5b8a0862450a482b6816">00789</a> <span class="preprocessor">#define CODEC_CAP_DR1 0x0002</span>
<a name="l00790"></a>00790 <span class="preprocessor"></span><span class="preprocessor">#define CODEC_CAP_TRUNCATED 0x0008</span>
<a name="l00791"></a>00791 <span class="preprocessor"></span><span class="preprocessor">#if FF_API_XVMC</span>
<a name="l00792"></a>00792 <span class="preprocessor"></span><span class="comment">/* Codec can export data for HW decoding. This flag indicates that</span>
<a name="l00793"></a>00793 <span class="comment"> * the codec would call get_format() with list that might contain HW accelerated</span>
<a name="l00794"></a>00794 <span class="comment"> * pixel formats (XvMC, VDPAU, VAAPI, etc). The application can pick any of them</span>
<a name="l00795"></a>00795 <span class="comment"> * including raw image format.</span>
<a name="l00796"></a>00796 <span class="comment"> * The application can use the passed context to determine bitstream version,</span>
<a name="l00797"></a>00797 <span class="comment"> * chroma format, resolution etc.</span>
<a name="l00798"></a>00798 <span class="comment"> */</span>
<a name="l00799"></a>00799 <span class="preprocessor">#define CODEC_CAP_HWACCEL 0x0010</span>
<a name="l00800"></a>00800 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* FF_API_XVMC */</span>
<a name="l00801"></a>00801 <span class="comment">/**</span>
<a name="l00802"></a>00802 <span class="comment"> * Encoder or decoder requires flushing with NULL input at the end in order to</span>
<a name="l00803"></a>00803 <span class="comment"> * give the complete and correct output.</span>
<a name="l00804"></a>00804 <span class="comment"> *</span>
<a name="l00805"></a>00805 <span class="comment"> * NOTE: If this flag is not set, the codec is guaranteed to never be fed with</span>
<a name="l00806"></a>00806 <span class="comment"> * with NULL data. The user can still send NULL data to the public encode</span>
<a name="l00807"></a>00807 <span class="comment"> * or decode function, but libavcodec will not pass it along to the codec</span>
<a name="l00808"></a>00808 <span class="comment"> * unless this flag is set.</span>
<a name="l00809"></a>00809 <span class="comment"> *</span>
<a name="l00810"></a>00810 <span class="comment"> * Decoders:</span>
<a name="l00811"></a>00811 <span class="comment"> * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL,</span>
<a name="l00812"></a>00812 <span class="comment"> * avpkt->size=0 at the end to get the delayed data until the decoder no longer</span>
<a name="l00813"></a>00813 <span class="comment"> * returns frames.</span>
<a name="l00814"></a>00814 <span class="comment"> *</span>
<a name="l00815"></a>00815 <span class="comment"> * Encoders:</span>
<a name="l00816"></a>00816 <span class="comment"> * The encoder needs to be fed with NULL data at the end of encoding until the</span>
<a name="l00817"></a>00817 <span class="comment"> * encoder no longer returns data.</span>
<a name="l00818"></a>00818 <span class="comment"> *</span>
<a name="l00819"></a>00819 <span class="comment"> * NOTE: For encoders implementing the AVCodec.encode2() function, setting this</span>
<a name="l00820"></a>00820 <span class="comment"> * flag also means that the encoder must set the pts and duration for</span>
<a name="l00821"></a>00821 <span class="comment"> * each output packet. If this flag is not set, the pts and duration will</span>
<a name="l00822"></a>00822 <span class="comment"> * be determined by libavcodec from the input frame.</span>
<a name="l00823"></a><a class="code" href="group__lavc__core.html#gad81abca6e6ea7e0ac25f328e7425698f">00823</a> <span class="comment"> */</span>
<a name="l00824"></a>00824 <span class="preprocessor">#define CODEC_CAP_DELAY 0x0020</span>
<a name="l00825"></a>00825 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00826"></a>00826 <span class="comment"> * Codec can be fed a final frame with a smaller size.</span>
<a name="l00827"></a>00827 <span class="comment"> * This can be used to prevent truncation of the last audio samples.</span>
<a name="l00828"></a><a class="code" href="group__lavc__core.html#ga256911836fcea40fb3d79c03d8ae73c6">00828</a> <span class="comment"> */</span>
<a name="l00829"></a>00829 <span class="preprocessor">#define CODEC_CAP_SMALL_LAST_FRAME 0x0040</span>
<a name="l00830"></a>00830 <span class="preprocessor"></span><span class="preprocessor">#if FF_API_CAP_VDPAU</span>
<a name="l00831"></a>00831 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00832"></a>00832 <span class="comment"> * Codec can export data for HW decoding (VDPAU).</span>
<a name="l00833"></a><a class="code" href="group__lavc__core.html#gac32558730799f8aa3c36013e729f3a32">00833</a> <span class="comment"> */</span>
<a name="l00834"></a>00834 <span class="preprocessor">#define CODEC_CAP_HWACCEL_VDPAU 0x0080</span>
<a name="l00835"></a>00835 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00836"></a>00836 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00837"></a>00837 <span class="comment"> * Codec can output multiple frames per AVPacket</span>
<a name="l00838"></a>00838 <span class="comment"> * Normally demuxers return one frame at a time, demuxers which do not do</span>
<a name="l00839"></a>00839 <span class="comment"> * are connected to a parser to split what they return into proper frames.</span>
<a name="l00840"></a>00840 <span class="comment"> * This flag is reserved to the very rare category of codecs which have a</span>
<a name="l00841"></a>00841 <span class="comment"> * bitstream that cannot be split into frames without timeconsuming</span>
<a name="l00842"></a>00842 <span class="comment"> * operations like full decoding. Demuxers carring such bitstreams thus</span>
<a name="l00843"></a>00843 <span class="comment"> * may return multiple frames in a packet. This has many disadvantages like</span>
<a name="l00844"></a>00844 <span class="comment"> * prohibiting stream copy in many cases thus it should only be considered</span>
<a name="l00845"></a>00845 <span class="comment"> * as a last resort.</span>
<a name="l00846"></a><a class="code" href="group__lavc__core.html#ga6e996607a6c9605e880c351b8d0437ad">00846</a> <span class="comment"> */</span>
<a name="l00847"></a>00847 <span class="preprocessor">#define CODEC_CAP_SUBFRAMES 0x0100</span>
<a name="l00848"></a>00848 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00849"></a>00849 <span class="comment"> * Codec is experimental and is thus avoided in favor of non experimental</span>
<a name="l00850"></a>00850 <span class="comment"> * encoders</span>
<a name="l00851"></a><a class="code" href="group__lavc__core.html#ga4d8340893edcdf15fc859f8c6291db1e">00851</a> <span class="comment"> */</span>
<a name="l00852"></a>00852 <span class="preprocessor">#define CODEC_CAP_EXPERIMENTAL 0x0200</span>
<a name="l00853"></a>00853 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00854"></a>00854 <span class="comment"> * Codec should fill in channel configuration and samplerate instead of container</span>
<a name="l00855"></a><a class="code" href="group__lavc__core.html#ga874b2baf9dd2bb3abff21bc77da6b9ba">00855</a> <span class="comment"> */</span>
<a name="l00856"></a>00856 <span class="preprocessor">#define CODEC_CAP_CHANNEL_CONF 0x0400</span>
<a name="l00857"></a>00857 <span class="preprocessor"></span><span class="preprocessor">#if FF_API_NEG_LINESIZES</span>
<a name="l00858"></a>00858 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00859"></a>00859 <span class="comment"> * @deprecated no codecs use this capability</span>
<a name="l00860"></a><a class="code" href="group__lavc__core.html#ga19dfa49f18ea643e695ee530d060f7de">00860</a> <span class="comment"> */</span>
<a name="l00861"></a>00861 <span class="preprocessor">#define CODEC_CAP_NEG_LINESIZES 0x0800</span>
<a name="l00862"></a>00862 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00863"></a>00863 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00864"></a>00864 <span class="comment"> * Codec supports frame-level multithreading.</span>
<a name="l00865"></a><a class="code" href="group__lavc__core.html#gaf7d97232f50d2c3aeb4bde978407f2da">00865</a> <span class="comment"> */</span>
<a name="l00866"></a>00866 <span class="preprocessor">#define CODEC_CAP_FRAME_THREADS 0x1000</span>
<a name="l00867"></a>00867 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00868"></a>00868 <span class="comment"> * Codec supports slice-based (or partition-based) multithreading.</span>
<a name="l00869"></a><a class="code" href="group__lavc__core.html#ga87252b1af7c5be41617ea5d61a05c5ac">00869</a> <span class="comment"> */</span>
<a name="l00870"></a>00870 <span class="preprocessor">#define CODEC_CAP_SLICE_THREADS 0x2000</span>
<a name="l00871"></a>00871 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00872"></a>00872 <span class="comment"> * Codec supports changed parameters at any point.</span>
<a name="l00873"></a><a class="code" href="group__lavc__core.html#gacfc914c55131ea82907741fec6ccac98">00873</a> <span class="comment"> */</span>
<a name="l00874"></a>00874 <span class="preprocessor">#define CODEC_CAP_PARAM_CHANGE 0x4000</span>
<a name="l00875"></a>00875 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00876"></a>00876 <span class="comment"> * Codec supports avctx->thread_count == 0 (auto).</span>
<a name="l00877"></a><a class="code" href="group__lavc__core.html#ga0629976ec9ecccbdd055f49f6ed7bf31">00877</a> <span class="comment"> */</span>
<a name="l00878"></a>00878 <span class="preprocessor">#define CODEC_CAP_AUTO_THREADS 0x8000</span>
<a name="l00879"></a>00879 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00880"></a>00880 <span class="comment"> * Audio encoder supports receiving a different number of samples in each call.</span>
<a name="l00881"></a><a class="code" href="group__lavc__core.html#gaa2e644f74c8013e29ec51d6accc7ac1b">00881</a> <span class="comment"> */</span>
<a name="l00882"></a>00882 <span class="preprocessor">#define CODEC_CAP_VARIABLE_FRAME_SIZE 0x10000</span>
<a name="l00883"></a>00883 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00884"></a>00884 <span class="comment"> * Codec is intra only.</span>
<a name="l00885"></a><a class="code" href="group__lavc__core.html#ga306312513613989095d9b1abcdd68f26">00885</a> <span class="comment"> */</span>
<a name="l00886"></a>00886 <span class="preprocessor">#define CODEC_CAP_INTRA_ONLY 0x40000000</span>
<a name="l00887"></a>00887 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l00888"></a>00888 <span class="comment"> * Codec is lossless.</span>
<a name="l00889"></a><a class="code" href="group__lavc__core.html#ga0d509737b1d687314ab97c7cebfd7ace">00889</a> <span class="comment"> */</span>
<a name="l00890"></a>00890 <span class="preprocessor">#define CODEC_CAP_LOSSLESS 0x80000000</span>
<a name="l00891"></a>00891 <span class="preprocessor"></span>
<a name="l00892"></a>00892 <span class="preprocessor">#if FF_API_MB_TYPE</span>
<a name="l00893"></a><a class="code" href="group__lavc__core.html#ga5b78b46a96f48a97d29857959b6f290e">00893</a> <span class="preprocessor"></span><span class="comment">//The following defines may change, don't expect compatibility if you use them.</span>
<a name="l00894"></a><a class="code" href="group__lavc__core.html#gaaa946c8f080ae11bfe786517b176e221">00894</a> <span class="preprocessor">#define MB_TYPE_INTRA4x4 0x0001</span>
<a name="l00895"></a><a class="code" href="group__lavc__core.html#ga4dd51be5c59afa99294d2daf0d743eb0">00895</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific</span>
<a name="l00896"></a><a class="code" href="group__lavc__core.html#gac03a9d42dfb3c1cb8ef0512dde22a723">00896</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_INTRA_PCM 0x0004 //FIXME H.264-specific</span>
<a name="l00897"></a><a class="code" href="group__lavc__core.html#gaa52ac304781a69b1b1651a9fbbc465a6">00897</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_16x16 0x0008</span>
<a name="l00898"></a><a class="code" href="group__lavc__core.html#ga412bface69a437c459e5104c75d967c9">00898</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_16x8 0x0010</span>
<a name="l00899"></a><a class="code" href="group__lavc__core.html#ga163ba4b015c25de7b8dc2132b763cfa3">00899</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_8x16 0x0020</span>
<a name="l00900"></a><a class="code" href="group__lavc__core.html#gabbac64c154ced42f44fdcf6398e4611f">00900</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_8x8 0x0040</span>
<a name="l00901"></a><a class="code" href="group__lavc__core.html#ga965a4fc680cb580e5d4a862e0858c6a7">00901</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_INTERLACED 0x0080</span>
<a name="l00902"></a><a class="code" href="group__lavc__core.html#gac467cb6520b6320c90336c1f46391645">00902</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_DIRECT2 0x0100 //FIXME</span>
<a name="l00903"></a><a class="code" href="group__lavc__core.html#ga1ee519ce8a0e364d1c806250c862116e">00903</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_ACPRED 0x0200</span>
<a name="l00904"></a><a class="code" href="group__lavc__core.html#ga688562b0eee1a11bb18e6c76d1aa16ad">00904</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_GMC 0x0400</span>
<a name="l00905"></a><a class="code" href="group__lavc__core.html#gad7bdf039c387862b3cec5b04766a2b69">00905</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_SKIP 0x0800</span>
<a name="l00906"></a><a class="code" href="group__lavc__core.html#gacfcf00a5345306d113725407b2a85819">00906</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_P0L0 0x1000</span>
<a name="l00907"></a><a class="code" href="group__lavc__core.html#ga0425380a8fce9552a1698fe82630d469">00907</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_P1L0 0x2000</span>
<a name="l00908"></a><a class="code" href="group__lavc__core.html#gadd0e64565de0e508b1fdf5602da614e4">00908</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_P0L1 0x4000</span>
<a name="l00909"></a><a class="code" href="group__lavc__core.html#gac8cac1ccad39ddfc2ac2914b11faebf8">00909</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_P1L1 0x8000</span>
<a name="l00910"></a><a class="code" href="group__lavc__core.html#ga6b0d689689b4b746ec3349cd10f9eda1">00910</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0)</span>
<a name="l00911"></a><a class="code" href="group__lavc__core.html#ga96214067cb851c0ca98729ab22f4ef02">00911</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1)</span>
<a name="l00912"></a><a class="code" href="group__lavc__core.html#ga24b494470a99c0ab083a4354c092ffee">00912</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)</span>
<a name="l00913"></a><a class="code" href="group__lavc__core.html#ga13f416dbca9061226a5f95969a72167a">00913</a> <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_QUANT 0x00010000</span>
<a name="l00914"></a>00914 <span class="preprocessor"></span><span class="preprocessor">#define MB_TYPE_CBP 0x00020000</span>
<a name="l00915"></a>00915 <span class="preprocessor"></span><span class="comment">//Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv, ...)</span>
<a name="l00916"></a>00916 <span class="preprocessor">#endif</span>
<a name="l00917"></a>00917 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00918"></a>00918 <span class="comment">/**</span>
<a name="l00919"></a>00919 <span class="comment"> * Pan Scan area.</span>
<a name="l00920"></a>00920 <span class="comment"> * This specifies the area which should be displayed.</span>
<a name="l00921"></a>00921 <span class="comment"> * Note there may be multiple such areas for one frame.</span>
<a name="l00922"></a><a class="code" href="structAVPanScan.html">00922</a> <span class="comment"> */</span>
<a name="l00923"></a>00923 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVPanScan.html" title="Pan Scan area.">AVPanScan</a>{<span class="comment"></span>
<a name="l00924"></a>00924 <span class="comment"> /**</span>
<a name="l00925"></a>00925 <span class="comment"> * id</span>
<a name="l00926"></a>00926 <span class="comment"> * - encoding: Set by user.</span>
<a name="l00927"></a>00927 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l00928"></a><a class="code" href="structAVPanScan.html#a34dfbcbb6c9582d0a10d9592a3d2eed2">00928</a> <span class="comment"> */</span>
<a name="l00929"></a>00929 <span class="keywordtype">int</span> <a class="code" href="structAVPanScan.html#a34dfbcbb6c9582d0a10d9592a3d2eed2" title="id">id</a>;
<a name="l00930"></a>00930 <span class="comment"></span>
<a name="l00931"></a>00931 <span class="comment"> /**</span>
<a name="l00932"></a>00932 <span class="comment"> * width and height in 1/16 pel</span>
<a name="l00933"></a>00933 <span class="comment"> * - encoding: Set by user.</span>
<a name="l00934"></a>00934 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l00935"></a><a class="code" href="structAVPanScan.html#a3963c714ee5ab0209f74de43bb2ef97b">00935</a> <span class="comment"> */</span>
<a name="l00936"></a><a class="code" href="structAVPanScan.html#a76e1fcfbecaf034b5c4d6604d602e474">00936</a> <span class="keywordtype">int</span> <a class="code" href="structAVPanScan.html#a3963c714ee5ab0209f74de43bb2ef97b" title="width and height in 1/16 pel">width</a>;
<a name="l00937"></a>00937 <span class="keywordtype">int</span> <a class="code" href="structAVPanScan.html#a76e1fcfbecaf034b5c4d6604d602e474">height</a>;
<a name="l00938"></a>00938 <span class="comment"></span>
<a name="l00939"></a>00939 <span class="comment"> /**</span>
<a name="l00940"></a>00940 <span class="comment"> * position of the top left corner in 1/16 pel for up to 3 fields/frames</span>
<a name="l00941"></a>00941 <span class="comment"> * - encoding: Set by user.</span>
<a name="l00942"></a>00942 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l00943"></a><a class="code" href="structAVPanScan.html#abfbf6d829276b4a73b97995827832eba">00943</a> <span class="comment"> */</span>
<a name="l00944"></a>00944 int16_t <a class="code" href="structAVPanScan.html#abfbf6d829276b4a73b97995827832eba" title="position of the top left corner in 1/16 pel for up to 3 fields/frames">position</a>[3][2];
<a name="l00945"></a>00945 }<a class="code" href="structAVPanScan.html" title="Pan Scan area.">AVPanScan</a>;
<a name="l00946"></a>00946
<a name="l00947"></a><a class="code" href="group__lavc__core.html#gae116e16a89a161d896328c2b71e6cdee">00947</a> <span class="preprocessor">#if FF_API_QSCALE_TYPE</span>
<a name="l00948"></a><a class="code" href="group__lavc__core.html#gaedaa9019954812364012018387a1e4f3">00948</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_QSCALE_TYPE_MPEG1 0</span>
<a name="l00949"></a><a class="code" href="group__lavc__core.html#gaaa37f7145f72603618ec5fa8b9dc9870">00949</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_QSCALE_TYPE_MPEG2 1</span>
<a name="l00950"></a><a class="code" href="group__lavc__core.html#ga273938801834d03c25ad207d2c4b040e">00950</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_QSCALE_TYPE_H264 2</span>
<a name="l00951"></a>00951 <span class="preprocessor"></span><span class="preprocessor">#define FF_QSCALE_TYPE_VP56 3</span>
<a name="l00952"></a>00952 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00953"></a>00953 <span class="preprocessor"></span>
<a name="l00954"></a><a class="code" href="group__lavc__core.html#gaf3bf1e9f4503d1a62d2e934d1cfd1ac4">00954</a> <span class="preprocessor">#if FF_API_GET_BUFFER</span>
<a name="l00955"></a><a class="code" href="group__lavc__core.html#gae1c5683bff1273858cdfa48026df8146">00955</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUFFER_TYPE_INTERNAL 1</span>
<a name="l00956"></a><a class="code" href="group__lavc__core.html#ga030a04dab5312d7c838441c37dfac0a3">00956</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUFFER_TYPE_USER 2 ///< direct rendering buffers (image is (de)allocated by user)</span>
<a name="l00957"></a><a class="code" href="group__lavc__core.html#ga5435aedd3f0fac54167b67b8e1a46fb2">00957</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUFFER_TYPE_SHARED 4 ///< Buffer from somewhere else; don't deallocate image (data/base), all other tables are not shared.</span>
<a name="l00958"></a>00958 <span class="preprocessor"></span><span class="preprocessor">#define FF_BUFFER_TYPE_COPY 8 ///< Just a (modified) copy of some other buffer, don't deallocate anything.</span>
<a name="l00959"></a><a class="code" href="group__lavc__core.html#gae8c2761f3ec95c329e3d6603fc520e75">00959</a> <span class="preprocessor"></span>
<a name="l00960"></a><a class="code" href="group__lavc__core.html#ga6bd6cbd2bee8d94455b2987a7827a98c">00960</a> <span class="preprocessor">#define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore).</span>
<a name="l00961"></a><a class="code" href="group__lavc__core.html#gad6e0d5a2a2b8bdc6b3ec38c62e76b1c1">00961</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer.</span>
<a name="l00962"></a><a class="code" href="group__lavc__core.html#gaeafb83cb3fe71ee22a16889e9aaa5283">00962</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer content.</span>
<a name="l00963"></a>00963 <span class="preprocessor"></span><span class="preprocessor">#define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer (update).</span>
<a name="l00964"></a>00964 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00965"></a>00965 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00966"></a>00966 <span class="comment">/**</span>
<a name="l00967"></a>00967 <span class="comment"> * The decoder will keep a reference to the frame and may reuse it later.</span>
<a name="l00968"></a><a class="code" href="group__lavc__core.html#ga6b4950dd3320e524f648799927f256a7">00968</a> <span class="comment"> */</span>
<a name="l00969"></a>00969 <span class="preprocessor">#define AV_GET_BUFFER_FLAG_REF (1 << 0)</span>
<a name="l00970"></a>00970 <span class="preprocessor"></span><span class="comment"></span>
<a name="l00971"></a>00971 <span class="comment">/**</span>
<a name="l00972"></a>00972 <span class="comment"> * @defgroup lavc_packet AVPacket</span>
<a name="l00973"></a>00973 <span class="comment"> *</span>
<a name="l00974"></a>00974 <span class="comment"> * Types and functions for working with AVPacket.</span>
<a name="l00975"></a>00975 <span class="comment"> * @{</span>
<a name="l00976"></a><a class="code" href="group__lavc__packet.html#ga9a80bfcacc586b483a973272800edb97">00976</a> <span class="comment"> */</span>
<a name="l00977"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a9b3c18a18a684fcbb1a2cc25cc6869dd">00977</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__packet.html#ga9a80bfcacc586b483a973272800edb97">AVPacketSideDataType</a> {
<a name="l00978"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97ad353d4a7841087354593a97bef92841a">00978</a> <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a9b3c18a18a684fcbb1a2cc25cc6869dd">AV_PKT_DATA_PALETTE</a>,
<a name="l00979"></a>00979 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97ad353d4a7841087354593a97bef92841a">AV_PKT_DATA_NEW_EXTRADATA</a>,
<a name="l00980"></a>00980 <span class="comment"></span>
<a name="l00981"></a>00981 <span class="comment"> /**</span>
<a name="l00982"></a>00982 <span class="comment"> * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:</span>
<a name="l00983"></a>00983 <span class="comment"> * @code</span>
<a name="l00984"></a>00984 <span class="comment"> * u32le param_flags</span>
<a name="l00985"></a>00985 <span class="comment"> * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT)</span>
<a name="l00986"></a>00986 <span class="comment"> * s32le channel_count</span>
<a name="l00987"></a>00987 <span class="comment"> * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT)</span>
<a name="l00988"></a>00988 <span class="comment"> * u64le channel_layout</span>
<a name="l00989"></a>00989 <span class="comment"> * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE)</span>
<a name="l00990"></a>00990 <span class="comment"> * s32le sample_rate</span>
<a name="l00991"></a>00991 <span class="comment"> * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS)</span>
<a name="l00992"></a>00992 <span class="comment"> * s32le width</span>
<a name="l00993"></a>00993 <span class="comment"> * s32le height</span>
<a name="l00994"></a>00994 <span class="comment"> * @endcode</span>
<a name="l00995"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97ad42d2eb8c04516552e0c422257192bc0">00995</a> <span class="comment"> */</span>
<a name="l00996"></a>00996 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97ad42d2eb8c04516552e0c422257192bc0" title="An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows:">AV_PKT_DATA_PARAM_CHANGE</a>,
<a name="l00997"></a>00997 <span class="comment"></span>
<a name="l00998"></a>00998 <span class="comment"> /**</span>
<a name="l00999"></a>00999 <span class="comment"> * An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of</span>
<a name="l01000"></a>01000 <span class="comment"> * structures with info about macroblocks relevant to splitting the</span>
<a name="l01001"></a>01001 <span class="comment"> * packet into smaller packets on macroblock edges (e.g. as for RFC 2190).</span>
<a name="l01002"></a>01002 <span class="comment"> * That is, it does not necessarily contain info about all macroblocks,</span>
<a name="l01003"></a>01003 <span class="comment"> * as long as the distance between macroblocks in the info is smaller</span>
<a name="l01004"></a>01004 <span class="comment"> * than the target payload size.</span>
<a name="l01005"></a>01005 <span class="comment"> * Each MB info structure is 12 bytes, and is laid out as follows:</span>
<a name="l01006"></a>01006 <span class="comment"> * @code</span>
<a name="l01007"></a>01007 <span class="comment"> * u32le bit offset from the start of the packet</span>
<a name="l01008"></a>01008 <span class="comment"> * u8 current quantizer at the start of the macroblock</span>
<a name="l01009"></a>01009 <span class="comment"> * u8 GOB number</span>
<a name="l01010"></a>01010 <span class="comment"> * u16le macroblock address within the GOB</span>
<a name="l01011"></a>01011 <span class="comment"> * u8 horizontal MV predictor</span>
<a name="l01012"></a>01012 <span class="comment"> * u8 vertical MV predictor</span>
<a name="l01013"></a>01013 <span class="comment"> * u8 horizontal MV predictor for block number 3</span>
<a name="l01014"></a>01014 <span class="comment"> * u8 vertical MV predictor for block number 3</span>
<a name="l01015"></a>01015 <span class="comment"> * @endcode</span>
<a name="l01016"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a48dc789fa9d31046e153233374f52b86">01016</a> <span class="comment"> */</span>
<a name="l01017"></a>01017 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a48dc789fa9d31046e153233374f52b86" title="An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of structures with info about macroblo...">AV_PKT_DATA_H263_MB_INFO</a>,
<a name="l01018"></a>01018 <span class="comment"></span>
<a name="l01019"></a>01019 <span class="comment"> /**</span>
<a name="l01020"></a>01020 <span class="comment"> * This side data should be associated with an audio stream and contains</span>
<a name="l01021"></a>01021 <span class="comment"> * ReplayGain information in form of the AVReplayGain struct.</span>
<a name="l01022"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97af91f58c27612d229e57eee2e587e03e6">01022</a> <span class="comment"> */</span>
<a name="l01023"></a>01023 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97af91f58c27612d229e57eee2e587e03e6" title="This side data should be associated with an audio stream and contains ReplayGain information in form ...">AV_PKT_DATA_REPLAYGAIN</a>,
<a name="l01024"></a>01024 <span class="comment"></span>
<a name="l01025"></a>01025 <span class="comment"> /**</span>
<a name="l01026"></a>01026 <span class="comment"> * This side data contains a 3x3 transformation matrix describing an affine</span>
<a name="l01027"></a>01027 <span class="comment"> * transformation that needs to be applied to the decoded video frames for</span>
<a name="l01028"></a>01028 <span class="comment"> * correct presentation.</span>
<a name="l01029"></a>01029 <span class="comment"> *</span>
<a name="l01030"></a>01030 <span class="comment"> * See libavutil/display.h for a detailed description of the data.</span>
<a name="l01031"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97aab8c149a1e6c67aad340733becec87e1">01031</a> <span class="comment"> */</span>
<a name="l01032"></a>01032 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97aab8c149a1e6c67aad340733becec87e1" title="This side data contains a 3x3 transformation matrix describing an affine transformation that needs to...">AV_PKT_DATA_DISPLAYMATRIX</a>,
<a name="l01033"></a>01033 <span class="comment"></span>
<a name="l01034"></a>01034 <span class="comment"> /**</span>
<a name="l01035"></a>01035 <span class="comment"> * This side data should be associated with a video stream and contains</span>
<a name="l01036"></a>01036 <span class="comment"> * Stereoscopic 3D information in form of the AVStereo3D struct.</span>
<a name="l01037"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97ad87020fae601b684bfb27ee64a457303">01037</a> <span class="comment"> */</span>
<a name="l01038"></a>01038 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97ad87020fae601b684bfb27ee64a457303" title="This side data should be associated with a video stream and contains Stereoscopic 3D information in f...">AV_PKT_DATA_STEREO3D</a>,
<a name="l01039"></a>01039 <span class="comment"></span>
<a name="l01040"></a>01040 <span class="comment"> /**</span>
<a name="l01041"></a>01041 <span class="comment"> * This side data should be associated with an audio stream and corresponds</span>
<a name="l01042"></a>01042 <span class="comment"> * to enum AVAudioServiceType.</span>
<a name="l01043"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a66ec22464b50c285114e79604e9e0a0b">01043</a> <span class="comment"> */</span>
<a name="l01044"></a>01044 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a66ec22464b50c285114e79604e9e0a0b" title="This side data should be associated with an audio stream and corresponds to enum AVAudioServiceType.">AV_PKT_DATA_AUDIO_SERVICE_TYPE</a>,
<a name="l01045"></a>01045 <span class="comment"></span>
<a name="l01046"></a>01046 <span class="comment"> /**</span>
<a name="l01047"></a>01047 <span class="comment"> * Recommmends skipping the specified number of samples</span>
<a name="l01048"></a>01048 <span class="comment"> * @code</span>
<a name="l01049"></a>01049 <span class="comment"> * u32le number of samples to skip from start of this packet</span>
<a name="l01050"></a>01050 <span class="comment"> * u32le number of samples to skip from end of this packet</span>
<a name="l01051"></a>01051 <span class="comment"> * u8 reason for start skip</span>
<a name="l01052"></a>01052 <span class="comment"> * u8 reason for end skip (0=padding silence, 1=convergence)</span>
<a name="l01053"></a>01053 <span class="comment"> * @endcode</span>
<a name="l01054"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a2093332d8086d25a04942ede61007f6a">01054</a> <span class="comment"> */</span>
<a name="l01055"></a>01055 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a2093332d8086d25a04942ede61007f6a" title="Recommmends skipping the specified number of samples.">AV_PKT_DATA_SKIP_SAMPLES</a>=70,
<a name="l01056"></a>01056 <span class="comment"></span>
<a name="l01057"></a>01057 <span class="comment"> /**</span>
<a name="l01058"></a>01058 <span class="comment"> * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that</span>
<a name="l01059"></a>01059 <span class="comment"> * the packet may contain "dual mono" audio specific to Japanese DTV</span>
<a name="l01060"></a>01060 <span class="comment"> * and if it is true, recommends only the selected channel to be used.</span>
<a name="l01061"></a>01061 <span class="comment"> * @code</span>
<a name="l01062"></a>01062 <span class="comment"> * u8 selected channels (0=mail/left, 1=sub/right, 2=both)</span>
<a name="l01063"></a>01063 <span class="comment"> * @endcode</span>
<a name="l01064"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a0933bb1f539acca421bfaa293cb3ee95">01064</a> <span class="comment"> */</span>
<a name="l01065"></a>01065 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a0933bb1f539acca421bfaa293cb3ee95" title="An AV_PKT_DATA_JP_DUALMONO side data packet indicates that the packet may contain "dual mono" audio s...">AV_PKT_DATA_JP_DUALMONO</a>,
<a name="l01066"></a>01066 <span class="comment"></span>
<a name="l01067"></a>01067 <span class="comment"> /**</span>
<a name="l01068"></a>01068 <span class="comment"> * A list of zero terminated key/value strings. There is no end marker for</span>
<a name="l01069"></a>01069 <span class="comment"> * the list, so it is required to rely on the side data size to stop.</span>
<a name="l01070"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a18d2e9d2c572fbe22a5880176fc41e9a">01070</a> <span class="comment"> */</span>
<a name="l01071"></a>01071 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a18d2e9d2c572fbe22a5880176fc41e9a" title="A list of zero terminated key/value strings.">AV_PKT_DATA_STRINGS_METADATA</a>,
<a name="l01072"></a>01072 <span class="comment"></span>
<a name="l01073"></a>01073 <span class="comment"> /**</span>
<a name="l01074"></a>01074 <span class="comment"> * Subtitle event position</span>
<a name="l01075"></a>01075 <span class="comment"> * @code</span>
<a name="l01076"></a>01076 <span class="comment"> * u32le x1</span>
<a name="l01077"></a>01077 <span class="comment"> * u32le y1</span>
<a name="l01078"></a>01078 <span class="comment"> * u32le x2</span>
<a name="l01079"></a>01079 <span class="comment"> * u32le y2</span>
<a name="l01080"></a>01080 <span class="comment"> * @endcode</span>
<a name="l01081"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a94c6e44bd31184da4d72ed4d322ffc69">01081</a> <span class="comment"> */</span>
<a name="l01082"></a>01082 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a94c6e44bd31184da4d72ed4d322ffc69" title="Subtitle event position.">AV_PKT_DATA_SUBTITLE_POSITION</a>,
<a name="l01083"></a>01083 <span class="comment"></span>
<a name="l01084"></a>01084 <span class="comment"> /**</span>
<a name="l01085"></a>01085 <span class="comment"> * Data found in BlockAdditional element of matroska container. There is</span>
<a name="l01086"></a>01086 <span class="comment"> * no end marker for the data, so it is required to rely on the side data</span>
<a name="l01087"></a>01087 <span class="comment"> * size to recognize the end. 8 byte id (as found in BlockAddId) followed</span>
<a name="l01088"></a>01088 <span class="comment"> * by data.</span>
<a name="l01089"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a72e6d25102c0504549754fcd9ac871b7">01089</a> <span class="comment"> */</span>
<a name="l01090"></a>01090 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a72e6d25102c0504549754fcd9ac871b7" title="Data found in BlockAdditional element of matroska container.">AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL</a>,
<a name="l01091"></a>01091 <span class="comment"></span>
<a name="l01092"></a>01092 <span class="comment"> /**</span>
<a name="l01093"></a>01093 <span class="comment"> * The optional first identifier line of a WebVTT cue.</span>
<a name="l01094"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97ad95c0f65ae13f5c2f03bf32accc5ecb2">01094</a> <span class="comment"> */</span>
<a name="l01095"></a>01095 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97ad95c0f65ae13f5c2f03bf32accc5ecb2" title="The optional first identifier line of a WebVTT cue.">AV_PKT_DATA_WEBVTT_IDENTIFIER</a>,
<a name="l01096"></a>01096 <span class="comment"></span>
<a name="l01097"></a>01097 <span class="comment"> /**</span>
<a name="l01098"></a>01098 <span class="comment"> * The optional settings (rendering instructions) that immediately</span>
<a name="l01099"></a>01099 <span class="comment"> * follow the timestamp specifier of a WebVTT cue.</span>
<a name="l01100"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a8dfefd91c6ee7f37af363a93a8211119">01100</a> <span class="comment"> */</span>
<a name="l01101"></a>01101 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a8dfefd91c6ee7f37af363a93a8211119" title="The optional settings (rendering instructions) that immediately follow the timestamp specifier of a W...">AV_PKT_DATA_WEBVTT_SETTINGS</a>,
<a name="l01102"></a>01102 <span class="comment"></span>
<a name="l01103"></a>01103 <span class="comment"> /**</span>
<a name="l01104"></a>01104 <span class="comment"> * A list of zero terminated key/value strings. There is no end marker for</span>
<a name="l01105"></a>01105 <span class="comment"> * the list, so it is required to rely on the side data size to stop. This</span>
<a name="l01106"></a>01106 <span class="comment"> * side data includes updated metadata which appeared in the stream.</span>
<a name="l01107"></a><a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a8f5f41fa3f854d68604ed81950bc8ee9">01107</a> <span class="comment"> */</span>
<a name="l01108"></a>01108 <a class="code" href="group__lavc__packet.html#gga9a80bfcacc586b483a973272800edb97a8f5f41fa3f854d68604ed81950bc8ee9" title="A list of zero terminated key/value strings.">AV_PKT_DATA_METADATA_UPDATE</a>,
<a name="l01109"></a>01109 };
<a name="l01110"></a><a class="code" href="structAVPacketSideData.html">01110</a>
<a name="l01111"></a><a class="code" href="structAVPacketSideData.html#a7d43e1011586e6c987f418b604b57ec3">01111</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVPacketSideData.html">AVPacketSideData</a> {
<a name="l01112"></a><a class="code" href="structAVPacketSideData.html#a7a708e643a56c21bf117ee058991558f">01112</a> uint8_t *<a class="code" href="structAVPacketSideData.html#a7d43e1011586e6c987f418b604b57ec3">data</a>;
<a name="l01113"></a><a class="code" href="structAVPacketSideData.html#ae943cb6d9d40d6a5d49e590bc20f2652">01113</a> <span class="keywordtype">int</span> <a class="code" href="structAVPacketSideData.html#a7a708e643a56c21bf117ee058991558f">size</a>;
<a name="l01114"></a>01114 <span class="keyword">enum</span> <a class="code" href="group__lavc__packet.html#ga9a80bfcacc586b483a973272800edb97">AVPacketSideDataType</a> <a class="code" href="structAVPacketSideData.html#ae943cb6d9d40d6a5d49e590bc20f2652">type</a>;
<a name="l01115"></a>01115 } <a class="code" href="structAVPacketSideData.html">AVPacketSideData</a>;
<a name="l01116"></a>01116 <span class="comment"></span>
<a name="l01117"></a>01117 <span class="comment">/**</span>
<a name="l01118"></a>01118 <span class="comment"> * This structure stores compressed data. It is typically exported by demuxers</span>
<a name="l01119"></a>01119 <span class="comment"> * and then passed as input to decoders, or received as output from encoders and</span>
<a name="l01120"></a>01120 <span class="comment"> * then passed to muxers.</span>
<a name="l01121"></a>01121 <span class="comment"> *</span>
<a name="l01122"></a>01122 <span class="comment"> * For video, it should typically contain one compressed frame. For audio it may</span>
<a name="l01123"></a>01123 <span class="comment"> * contain several compressed frames.</span>
<a name="l01124"></a>01124 <span class="comment"> *</span>
<a name="l01125"></a>01125 <span class="comment"> * AVPacket is one of the few structs in FFmpeg, whose size is a part of public</span>
<a name="l01126"></a>01126 <span class="comment"> * ABI. Thus it may be allocated on stack and no new fields can be added to it</span>
<a name="l01127"></a>01127 <span class="comment"> * without libavcodec and libavformat major bump.</span>
<a name="l01128"></a>01128 <span class="comment"> *</span>
<a name="l01129"></a>01129 <span class="comment"> * The semantics of data ownership depends on the buf or destruct (deprecated)</span>
<a name="l01130"></a>01130 <span class="comment"> * fields. If either is set, the packet data is dynamically allocated and is</span>
<a name="l01131"></a>01131 <span class="comment"> * valid indefinitely until av_free_packet() is called (which in turn calls</span>
<a name="l01132"></a>01132 <span class="comment"> * av_buffer_unref()/the destruct callback to free the data). If neither is set,</span>
<a name="l01133"></a>01133 <span class="comment"> * the packet data is typically backed by some static buffer somewhere and is</span>
<a name="l01134"></a>01134 <span class="comment"> * only valid for a limited time (e.g. until the next read call when demuxing).</span>
<a name="l01135"></a>01135 <span class="comment"> *</span>
<a name="l01136"></a>01136 <span class="comment"> * The side data is always allocated with av_malloc() and is freed in</span>
<a name="l01137"></a>01137 <span class="comment"> * av_free_packet().</span>
<a name="l01138"></a><a class="code" href="structAVPacket.html">01138</a> <span class="comment"> */</span>
<a name="l01139"></a>01139 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> {<span class="comment"></span>
<a name="l01140"></a>01140 <span class="comment"> /**</span>
<a name="l01141"></a>01141 <span class="comment"> * A reference to the reference-counted buffer where the packet data is</span>
<a name="l01142"></a>01142 <span class="comment"> * stored.</span>
<a name="l01143"></a>01143 <span class="comment"> * May be NULL, then the packet data is not reference-counted.</span>
<a name="l01144"></a><a class="code" href="structAVPacket.html#a3bf81872813551fe9343dd0e09993e38">01144</a> <span class="comment"> */</span>
<a name="l01145"></a>01145 <a class="code" href="structAVBufferRef.html" title="A reference to a data buffer.">AVBufferRef</a> *<a class="code" href="structAVPacket.html#a3bf81872813551fe9343dd0e09993e38" title="A reference to the reference-counted buffer where the packet data is stored.">buf</a>;<span class="comment"></span>
<a name="l01146"></a>01146 <span class="comment"> /**</span>
<a name="l01147"></a>01147 <span class="comment"> * Presentation timestamp in AVStream->time_base units; the time at which</span>
<a name="l01148"></a>01148 <span class="comment"> * the decompressed packet will be presented to the user.</span>
<a name="l01149"></a>01149 <span class="comment"> * Can be AV_NOPTS_VALUE if it is not stored in the file.</span>
<a name="l01150"></a>01150 <span class="comment"> * pts MUST be larger or equal to dts as presentation cannot happen before</span>
<a name="l01151"></a>01151 <span class="comment"> * decompression, unless one wants to view hex dumps. Some formats misuse</span>
<a name="l01152"></a>01152 <span class="comment"> * the terms dts and pts/cts to mean something different. Such timestamps</span>
<a name="l01153"></a>01153 <span class="comment"> * must be converted to true pts/dts before they are stored in AVPacket.</span>
<a name="l01154"></a><a class="code" href="structAVPacket.html#a73bde0a37f3b1efc839f11295bfbf42a">01154</a> <span class="comment"> */</span>
<a name="l01155"></a>01155 int64_t <a class="code" href="structAVPacket.html#a73bde0a37f3b1efc839f11295bfbf42a" title="Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...">pts</a>;<span class="comment"></span>
<a name="l01156"></a>01156 <span class="comment"> /**</span>
<a name="l01157"></a>01157 <span class="comment"> * Decompression timestamp in AVStream->time_base units; the time at which</span>
<a name="l01158"></a>01158 <span class="comment"> * the packet is decompressed.</span>
<a name="l01159"></a>01159 <span class="comment"> * Can be AV_NOPTS_VALUE if it is not stored in the file.</span>
<a name="l01160"></a><a class="code" href="structAVPacket.html#a85dbbd306b44b02390cd91c45e6a0f76">01160</a> <span class="comment"> */</span>
<a name="l01161"></a><a class="code" href="structAVPacket.html#aaf4fe58dfcc7c232c1f2268b539d8367">01161</a> int64_t <a class="code" href="structAVPacket.html#a85dbbd306b44b02390cd91c45e6a0f76" title="Decompression timestamp in AVStream->time_base units; the time at which the packet is decompressed...">dts</a>;
<a name="l01162"></a><a class="code" href="structAVPacket.html#a4d1ea19f63eb107111fd650ca514d1f4">01162</a> uint8_t *<a class="code" href="structAVPacket.html#aaf4fe58dfcc7c232c1f2268b539d8367">data</a>;
<a name="l01163"></a><a class="code" href="structAVPacket.html#a0d1cb9b5a32b00fb6edc81ea3aae2a49">01163</a> <span class="keywordtype">int</span> <a class="code" href="structAVPacket.html#a4d1ea19f63eb107111fd650ca514d1f4">size</a>;
<a name="l01164"></a>01164 <span class="keywordtype">int</span> <a class="code" href="structAVPacket.html#a0d1cb9b5a32b00fb6edc81ea3aae2a49">stream_index</a>;<span class="comment"></span>
<a name="l01165"></a>01165 <span class="comment"> /**</span>
<a name="l01166"></a>01166 <span class="comment"> * A combination of AV_PKT_FLAG values</span>
<a name="l01167"></a><a class="code" href="structAVPacket.html#a437be96a9da675f12caa228a9c81bd82">01167</a> <span class="comment"> */</span>
<a name="l01168"></a>01168 <span class="keywordtype">int</span> <a class="code" href="structAVPacket.html#a437be96a9da675f12caa228a9c81bd82" title="A combination of AV_PKT_FLAG values.">flags</a>;<span class="comment"></span>
<a name="l01169"></a>01169 <span class="comment"> /**</span>
<a name="l01170"></a>01170 <span class="comment"> * Additional packet data that can be provided by the container.</span>
<a name="l01171"></a>01171 <span class="comment"> * Packet can contain several types of side information.</span>
<a name="l01172"></a><a class="code" href="structAVPacket.html#ac55bfef91c33f02704ba76518d0f294c">01172</a> <span class="comment"> */</span>
<a name="l01173"></a><a class="code" href="structAVPacket.html#af415e25244b26921e8fc249d45499b84">01173</a> <a class="code" href="structAVPacketSideData.html">AVPacketSideData</a> *<a class="code" href="structAVPacket.html#ac55bfef91c33f02704ba76518d0f294c" title="Additional packet data that can be provided by the container.">side_data</a>;
<a name="l01174"></a>01174 <span class="keywordtype">int</span> <a class="code" href="structAVPacket.html#af415e25244b26921e8fc249d45499b84">side_data_elems</a>;
<a name="l01175"></a>01175 <span class="comment"></span>
<a name="l01176"></a>01176 <span class="comment"> /**</span>
<a name="l01177"></a>01177 <span class="comment"> * Duration of this packet in AVStream->time_base units, 0 if unknown.</span>
<a name="l01178"></a>01178 <span class="comment"> * Equals next_pts - this_pts in presentation order.</span>
<a name="l01179"></a><a class="code" href="structAVPacket.html#af151ba1967c37038088883cd544eeacd">01179</a> <span class="comment"> */</span>
<a name="l01180"></a>01180 <span class="keywordtype">int</span> <a class="code" href="structAVPacket.html#af151ba1967c37038088883cd544eeacd" title="Duration of this packet in AVStream->time_base units, 0 if unknown.">duration</a>;
<a name="l01181"></a>01181 <span class="preprocessor">#if FF_API_DESTRUCT_PACKET</span>
<a name="l01182"></a><a class="code" href="structAVPacket.html#a280ad3897f11593dd65c109cf0b66fc8">01182</a> <span class="preprocessor"></span> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l01183"></a>01183 void (*<a class="code" href="structAVPacket.html#a280ad3897f11593dd65c109cf0b66fc8">destruct</a>)(<span class="keyword">struct </span><a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *);
<a name="l01184"></a><a class="code" href="structAVPacket.html#aeba7ec45ff7ac22381ad066f8eafdc96">01184</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l01185"></a>01185 <span class="keywordtype">void</span> *<a class="code" href="structAVPacket.html#aeba7ec45ff7ac22381ad066f8eafdc96">priv</a>;
<a name="l01186"></a><a class="code" href="structAVPacket.html#ab5793d8195cf4789dfb3913b7a693903">01186</a> <span class="preprocessor">#endif</span>
<a name="l01187"></a>01187 <span class="preprocessor"></span> int64_t <a class="code" href="structAVPacket.html#ab5793d8195cf4789dfb3913b7a693903" title="byte position in stream, -1 if unknown">pos</a>; <span class="comment">///< byte position in stream, -1 if unknown</span>
<a name="l01188"></a>01188 <span class="comment"></span><span class="comment"></span>
<a name="l01189"></a>01189 <span class="comment"> /**</span>
<a name="l01190"></a>01190 <span class="comment"> * Time difference in AVStream->time_base units from the pts of this</span>
<a name="l01191"></a>01191 <span class="comment"> * packet to the point at which the output from the decoder has converged</span>
<a name="l01192"></a>01192 <span class="comment"> * independent from the availability of previous frames. That is, the</span>
<a name="l01193"></a>01193 <span class="comment"> * frames are virtually identical no matter if decoding started from</span>
<a name="l01194"></a>01194 <span class="comment"> * the very first frame or from this keyframe.</span>
<a name="l01195"></a>01195 <span class="comment"> * Is AV_NOPTS_VALUE if unknown.</span>
<a name="l01196"></a>01196 <span class="comment"> * This field is not the display duration of the current packet.</span>
<a name="l01197"></a>01197 <span class="comment"> * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY</span>
<a name="l01198"></a>01198 <span class="comment"> * set.</span>
<a name="l01199"></a>01199 <span class="comment"> *</span>
<a name="l01200"></a>01200 <span class="comment"> * The purpose of this field is to allow seeking in streams that have no</span>
<a name="l01201"></a>01201 <span class="comment"> * keyframes in the conventional sense. It corresponds to the</span>
<a name="l01202"></a>01202 <span class="comment"> * recovery point SEI in H.264 and match_time_delta in NUT. It is also</span>
<a name="l01203"></a>01203 <span class="comment"> * essential for some types of subtitle streams to ensure that all</span>
<a name="l01204"></a>01204 <span class="comment"> * subtitles are correctly displayed after seeking.</span>
<a name="l01205"></a><a class="code" href="structAVPacket.html#a942409654446e8da1834c17ce69d0ce9">01205</a> <span class="comment"> */</span>
<a name="l01206"></a>01206 int64_t <a class="code" href="structAVPacket.html#a942409654446e8da1834c17ce69d0ce9" title="Time difference in AVStream->time_base units from the pts of this packet to the point at which the ou...">convergence_duration</a>;
<a name="l01207"></a><a class="code" href="group__lavc__packet.html#ga75603d7c2b8adf5829f4fd2fb860168f">01207</a> } <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a>;
<a name="l01208"></a><a class="code" href="group__lavc__packet.html#ga46187df0d7711108ece88804dcc38025">01208</a> <span class="preprocessor">#define AV_PKT_FLAG_KEY 0x0001 ///< The packet contains a keyframe</span>
<a name="l01209"></a>01209 <span class="preprocessor"></span><span class="preprocessor">#define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted</span>
<a name="l01210"></a><a class="code" href="group__lavc__packet.html#ga437bfa981d4c8968ca92f41ecbcb8054">01210</a> <span class="preprocessor"></span>
<a name="l01211"></a><a class="code" href="group__lavc__packet.html#gga437bfa981d4c8968ca92f41ecbcb8054a18ac29a4e928b1ef8eff4893ae70073c">01211</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__packet.html#ga437bfa981d4c8968ca92f41ecbcb8054">AVSideDataParamChangeFlags</a> {
<a name="l01212"></a><a class="code" href="group__lavc__packet.html#gga437bfa981d4c8968ca92f41ecbcb8054a1afb2793dfb14b0db3caca605b2baabc">01212</a> <a class="code" href="group__lavc__packet.html#gga437bfa981d4c8968ca92f41ecbcb8054a18ac29a4e928b1ef8eff4893ae70073c">AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT</a> = 0x0001,
<a name="l01213"></a><a class="code" href="group__lavc__packet.html#gga437bfa981d4c8968ca92f41ecbcb8054ac0fd6e147f7e6ebe14002f95594e5317">01213</a> <a class="code" href="group__lavc__packet.html#gga437bfa981d4c8968ca92f41ecbcb8054a1afb2793dfb14b0db3caca605b2baabc">AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT</a> = 0x0002,
<a name="l01214"></a><a class="code" href="group__lavc__packet.html#gga437bfa981d4c8968ca92f41ecbcb8054af1a5e3b694261807e0ed9032b424c165">01214</a> <a class="code" href="group__lavc__packet.html#gga437bfa981d4c8968ca92f41ecbcb8054ac0fd6e147f7e6ebe14002f95594e5317">AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE</a> = 0x0004,
<a name="l01215"></a>01215 <a class="code" href="group__lavc__packet.html#gga437bfa981d4c8968ca92f41ecbcb8054af1a5e3b694261807e0ed9032b424c165">AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS</a> = 0x0008,
<a name="l01216"></a>01216 };<span class="comment"></span>
<a name="l01217"></a>01217 <span class="comment">/**</span>
<a name="l01218"></a>01218 <span class="comment"> * @}</span>
<a name="l01219"></a>01219 <span class="comment"> */</span>
<a name="l01220"></a>01220
<a name="l01221"></a>01221 <span class="keyword">struct </span>AVCodecInternal;
<a name="l01222"></a><a class="code" href="group__lavc__core.html#ga957ef25581a6b3c98589817b1cbed02c">01222</a>
<a name="l01223"></a><a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02ca886b3191488ef874bf3e94b3d9cec713">01223</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#ga957ef25581a6b3c98589817b1cbed02c">AVFieldOrder</a> {
<a name="l01224"></a><a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02ca9165cfa953463411e28670a9d06af2e2">01224</a> <a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02ca886b3191488ef874bf3e94b3d9cec713">AV_FIELD_UNKNOWN</a>,
<a name="l01225"></a><a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02ca236b46495cd9254b4030d36fc6f27f23">01225</a> <a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02ca9165cfa953463411e28670a9d06af2e2">AV_FIELD_PROGRESSIVE</a>,
<a name="l01226"></a><a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02ca7bf84c3d1e2714ddee42b3e94826fca4">01226</a> <a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02ca236b46495cd9254b4030d36fc6f27f23">AV_FIELD_TT</a>, <span class="comment">//< Top coded_first, top displayed first</span>
<a name="l01227"></a><a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02cae1efa8b010ca5331f1f845104e7c0667">01227</a> <a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02ca7bf84c3d1e2714ddee42b3e94826fca4">AV_FIELD_BB</a>, <span class="comment">//< Bottom coded first, bottom displayed first</span>
<a name="l01228"></a><a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02caba81a12143ed2cea06438739a7caaafb">01228</a> <a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02cae1efa8b010ca5331f1f845104e7c0667">AV_FIELD_TB</a>, <span class="comment">//< Top coded first, bottom displayed first</span>
<a name="l01229"></a>01229 <a class="code" href="group__lavc__core.html#gga957ef25581a6b3c98589817b1cbed02caba81a12143ed2cea06438739a7caaafb">AV_FIELD_BT</a>, <span class="comment">//< Bottom coded first, top displayed first</span>
<a name="l01230"></a>01230 };
<a name="l01231"></a>01231 <span class="comment"></span>
<a name="l01232"></a>01232 <span class="comment">/**</span>
<a name="l01233"></a>01233 <span class="comment"> * main external API structure.</span>
<a name="l01234"></a>01234 <span class="comment"> * New fields can be added to the end with minor version bumps.</span>
<a name="l01235"></a>01235 <span class="comment"> * Removal, reordering and changes to existing fields require a major</span>
<a name="l01236"></a>01236 <span class="comment"> * version bump.</span>
<a name="l01237"></a>01237 <span class="comment"> * Please use AVOptions (av_opt* / av_set/get*()) to access these fields from user</span>
<a name="l01238"></a>01238 <span class="comment"> * applications.</span>
<a name="l01239"></a>01239 <span class="comment"> * sizeof(AVCodecContext) must not be used outside libav*.</span>
<a name="l01240"></a><a class="code" href="structAVCodecContext.html">01240</a> <span class="comment"> */</span>
<a name="l01241"></a>01241 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> {<span class="comment"></span>
<a name="l01242"></a>01242 <span class="comment"> /**</span>
<a name="l01243"></a>01243 <span class="comment"> * information on struct for av_log</span>
<a name="l01244"></a>01244 <span class="comment"> * - set by avcodec_alloc_context3</span>
<a name="l01245"></a><a class="code" href="structAVCodecContext.html#a90622d3af2a9abba986a1c9f7ca21b16">01245</a> <span class="comment"> */</span>
<a name="l01246"></a><a class="code" href="structAVCodecContext.html#a7f9e4467c3394228bc3c9f308a42303c">01246</a> <span class="keyword">const</span> <a class="code" href="structAVClass.html" title="Describe the class of an AVClass context structure.">AVClass</a> *<a class="code" href="structAVCodecContext.html#a90622d3af2a9abba986a1c9f7ca21b16" title="information on struct for av_log">av_class</a>;
<a name="l01247"></a>01247 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7f9e4467c3394228bc3c9f308a42303c">log_level_offset</a>;
<a name="l01248"></a><a class="code" href="structAVCodecContext.html#a3f99ca3115c44e6d7772c9384faf15e6">01248</a>
<a name="l01249"></a><a class="code" href="structAVCodecContext.html#ab00398f08f8622c3e6c0f1a12eb99808">01249</a> <span class="keyword">enum</span> <a class="code" href="group__lavu__misc.html#ga9a84bba4713dfced21a1a56163be1f48">AVMediaType</a> <a class="code" href="structAVCodecContext.html#a3f99ca3115c44e6d7772c9384faf15e6">codec_type</a>; <span class="comment">/* see AVMEDIA_TYPE_xxx */</span>
<a name="l01250"></a>01250 <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *<a class="code" href="structAVCodecContext.html#ab00398f08f8622c3e6c0f1a12eb99808">codec</a>;
<a name="l01251"></a>01251 <span class="preprocessor">#if FF_API_CODEC_NAME</span>
<a name="l01252"></a>01252 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l01253"></a>01253 <span class="comment"> * @deprecated this field is not used for anything in libavcodec</span>
<a name="l01254"></a>01254 <span class="comment"> */</span>
<a name="l01255"></a><a class="code" href="structAVCodecContext.html#af06f38566db6d95d4a272f29dbf979b0">01255</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l01256"></a>01256 <span class="keywordtype">char</span> <a class="code" href="structAVCodecContext.html#af06f38566db6d95d4a272f29dbf979b0">codec_name</a>[32];
<a name="l01257"></a><a class="code" href="structAVCodecContext.html#adc5f65d6099fd8339c1580c091777223">01257</a> <span class="preprocessor">#endif</span>
<a name="l01258"></a>01258 <span class="preprocessor"></span> <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <a class="code" href="structAVCodecContext.html#adc5f65d6099fd8339c1580c091777223">codec_id</a>; <span class="comment">/* see AV_CODEC_ID_xxx */</span>
<a name="l01259"></a>01259 <span class="comment"></span>
<a name="l01260"></a>01260 <span class="comment"> /**</span>
<a name="l01261"></a>01261 <span class="comment"> * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').</span>
<a name="l01262"></a>01262 <span class="comment"> * This is used to work around some encoder bugs.</span>
<a name="l01263"></a>01263 <span class="comment"> * A demuxer should set this to what is stored in the field used to identify the codec.</span>
<a name="l01264"></a>01264 <span class="comment"> * If there are multiple such fields in a container then the demuxer should choose the one</span>
<a name="l01265"></a>01265 <span class="comment"> * which maximizes the information about the used codec.</span>
<a name="l01266"></a>01266 <span class="comment"> * If the codec tag field in a container is larger than 32 bits then the demuxer should</span>
<a name="l01267"></a>01267 <span class="comment"> * remap the longer ID to 32 bits with a table or other structure. Alternatively a new</span>
<a name="l01268"></a>01268 <span class="comment"> * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated</span>
<a name="l01269"></a>01269 <span class="comment"> * first.</span>
<a name="l01270"></a>01270 <span class="comment"> * - encoding: Set by user, if not then the default based on codec_id will be used.</span>
<a name="l01271"></a>01271 <span class="comment"> * - decoding: Set by user, will be converted to uppercase by libavcodec during init.</span>
<a name="l01272"></a><a class="code" href="structAVCodecContext.html#a2c974557671dd459674b170c5e64d79a">01272</a> <span class="comment"> */</span>
<a name="l01273"></a>01273 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a2c974557671dd459674b170c5e64d79a" title="fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').">codec_tag</a>;
<a name="l01274"></a>01274
<a name="l01275"></a>01275 <span class="preprocessor">#if FF_API_STREAM_CODEC_TAG</span>
<a name="l01276"></a>01276 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l01277"></a>01277 <span class="comment"> * @deprecated this field is unused</span>
<a name="l01278"></a>01278 <span class="comment"> */</span>
<a name="l01279"></a><a class="code" href="structAVCodecContext.html#aafdffb1e778754ba7fc84a63eea39187">01279</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l01280"></a>01280 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aafdffb1e778754ba7fc84a63eea39187">stream_codec_tag</a>;
<a name="l01281"></a>01281 <span class="preprocessor">#endif</span>
<a name="l01282"></a><a class="code" href="structAVCodecContext.html#af3379123060ad8cc9c321c29af4f8360">01282</a> <span class="preprocessor"></span>
<a name="l01283"></a>01283 <span class="keywordtype">void</span> *<a class="code" href="structAVCodecContext.html#af3379123060ad8cc9c321c29af4f8360">priv_data</a>;
<a name="l01284"></a>01284 <span class="comment"></span>
<a name="l01285"></a>01285 <span class="comment"> /**</span>
<a name="l01286"></a>01286 <span class="comment"> * Private context used for internal data.</span>
<a name="l01287"></a>01287 <span class="comment"> *</span>
<a name="l01288"></a>01288 <span class="comment"> * Unlike priv_data, this is not codec-specific. It is used in general</span>
<a name="l01289"></a>01289 <span class="comment"> * libavcodec functions.</span>
<a name="l01290"></a><a class="code" href="structAVCodecContext.html#aeffc0091dc3138015b53107c8ffb04af">01290</a> <span class="comment"> */</span>
<a name="l01291"></a>01291 <span class="keyword">struct </span>AVCodecInternal *<span class="keyword">internal</span>;
<a name="l01292"></a>01292 <span class="comment"></span>
<a name="l01293"></a>01293 <span class="comment"> /**</span>
<a name="l01294"></a>01294 <span class="comment"> * Private data of the user, can be used to carry app specific stuff.</span>
<a name="l01295"></a>01295 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01296"></a>01296 <span class="comment"> * - decoding: Set by user.</span>
<a name="l01297"></a><a class="code" href="structAVCodecContext.html#aab9c4495feeedde28c1e908d76b7b9f5">01297</a> <span class="comment"> */</span>
<a name="l01298"></a>01298 <span class="keywordtype">void</span> *<a class="code" href="structAVCodecContext.html#aab9c4495feeedde28c1e908d76b7b9f5" title="Private data of the user, can be used to carry app specific stuff.">opaque</a>;
<a name="l01299"></a>01299 <span class="comment"></span>
<a name="l01300"></a>01300 <span class="comment"> /**</span>
<a name="l01301"></a>01301 <span class="comment"> * the average bitrate</span>
<a name="l01302"></a>01302 <span class="comment"> * - encoding: Set by user; unused for constant quantizer encoding.</span>
<a name="l01303"></a>01303 <span class="comment"> * - decoding: Set by libavcodec. 0 or some bitrate if this info is available in the stream.</span>
<a name="l01304"></a><a class="code" href="structAVCodecContext.html#ad9214d5af3e98ea7f1d4e94be6a522de">01304</a> <span class="comment"> */</span>
<a name="l01305"></a>01305 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ad9214d5af3e98ea7f1d4e94be6a522de" title="the average bitrate">bit_rate</a>;
<a name="l01306"></a>01306 <span class="comment"></span>
<a name="l01307"></a>01307 <span class="comment"> /**</span>
<a name="l01308"></a>01308 <span class="comment"> * number of bits the bitstream is allowed to diverge from the reference.</span>
<a name="l01309"></a>01309 <span class="comment"> * the reference can be CBR (for CBR pass1) or VBR (for pass2)</span>
<a name="l01310"></a>01310 <span class="comment"> * - encoding: Set by user; unused for constant quantizer encoding.</span>
<a name="l01311"></a>01311 <span class="comment"> * - decoding: unused</span>
<a name="l01312"></a><a class="code" href="structAVCodecContext.html#a65f37abbfc9d4630aa7fd44b9a1ebb21">01312</a> <span class="comment"> */</span>
<a name="l01313"></a>01313 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a65f37abbfc9d4630aa7fd44b9a1ebb21" title="number of bits the bitstream is allowed to diverge from the reference.">bit_rate_tolerance</a>;
<a name="l01314"></a>01314 <span class="comment"></span>
<a name="l01315"></a>01315 <span class="comment"> /**</span>
<a name="l01316"></a>01316 <span class="comment"> * Global quality for codecs which cannot change it per frame.</span>
<a name="l01317"></a>01317 <span class="comment"> * This should be proportional to MPEG-1/2/4 qscale.</span>
<a name="l01318"></a>01318 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01319"></a>01319 <span class="comment"> * - decoding: unused</span>
<a name="l01320"></a><a class="code" href="structAVCodecContext.html#a209f5ec60cb5f0b0a4962f4c5c5bb541">01320</a> <span class="comment"> */</span>
<a name="l01321"></a>01321 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a209f5ec60cb5f0b0a4962f4c5c5bb541" title="Global quality for codecs which cannot change it per frame.">global_quality</a>;
<a name="l01322"></a>01322 <span class="comment"></span>
<a name="l01323"></a>01323 <span class="comment"> /**</span>
<a name="l01324"></a>01324 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01325"></a>01325 <span class="comment"> * - decoding: unused</span>
<a name="l01326"></a><a class="code" href="structAVCodecContext.html#aa401ca663644caa51ede1889659c23d6">01326</a> <span class="comment"> */</span>
<a name="l01327"></a><a class="code" href="libavcodec_2avcodec_8h.html#a6787143040c08e5c1da558371a732425">01327</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aa401ca663644caa51ede1889659c23d6">compression_level</a>;
<a name="l01328"></a>01328 <span class="preprocessor">#define FF_COMPRESSION_DEFAULT -1</span>
<a name="l01329"></a>01329 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01330"></a>01330 <span class="comment"> /**</span>
<a name="l01331"></a>01331 <span class="comment"> * CODEC_FLAG_*.</span>
<a name="l01332"></a>01332 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01333"></a>01333 <span class="comment"> * - decoding: Set by user.</span>
<a name="l01334"></a><a class="code" href="structAVCodecContext.html#abb01e291550fa3fb96188af4d494587e">01334</a> <span class="comment"> */</span>
<a name="l01335"></a>01335 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#abb01e291550fa3fb96188af4d494587e" title="CODEC_FLAG_*.">flags</a>;
<a name="l01336"></a>01336 <span class="comment"></span>
<a name="l01337"></a>01337 <span class="comment"> /**</span>
<a name="l01338"></a>01338 <span class="comment"> * CODEC_FLAG2_*</span>
<a name="l01339"></a>01339 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01340"></a>01340 <span class="comment"> * - decoding: Set by user.</span>
<a name="l01341"></a><a class="code" href="structAVCodecContext.html#a1944f9a4f8f2e123c087e1fe7613d571">01341</a> <span class="comment"> */</span>
<a name="l01342"></a>01342 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a1944f9a4f8f2e123c087e1fe7613d571" title="CODEC_FLAG2_*.">flags2</a>;
<a name="l01343"></a>01343 <span class="comment"></span>
<a name="l01344"></a>01344 <span class="comment"> /**</span>
<a name="l01345"></a>01345 <span class="comment"> * some codecs need / can use extradata like Huffman tables.</span>
<a name="l01346"></a>01346 <span class="comment"> * mjpeg: Huffman tables</span>
<a name="l01347"></a>01347 <span class="comment"> * rv10: additional flags</span>
<a name="l01348"></a>01348 <span class="comment"> * mpeg4: global headers (they can be in the bitstream or here)</span>
<a name="l01349"></a>01349 <span class="comment"> * The allocated memory should be FF_INPUT_BUFFER_PADDING_SIZE bytes larger</span>
<a name="l01350"></a>01350 <span class="comment"> * than extradata_size to avoid problems if it is read with the bitstream reader.</span>
<a name="l01351"></a>01351 <span class="comment"> * The bytewise contents of extradata must not depend on the architecture or CPU endianness.</span>
<a name="l01352"></a>01352 <span class="comment"> * - encoding: Set/allocated/freed by libavcodec.</span>
<a name="l01353"></a>01353 <span class="comment"> * - decoding: Set/allocated/freed by user.</span>
<a name="l01354"></a><a class="code" href="structAVCodecContext.html#abe964316aaaa61967b012efdcced79c4">01354</a> <span class="comment"> */</span>
<a name="l01355"></a><a class="code" href="structAVCodecContext.html#ae246ca7a1c72c151891ed0599e8dbfba">01355</a> uint8_t *<a class="code" href="structAVCodecContext.html#abe964316aaaa61967b012efdcced79c4" title="some codecs need / can use extradata like Huffman tables.">extradata</a>;
<a name="l01356"></a>01356 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae246ca7a1c72c151891ed0599e8dbfba">extradata_size</a>;
<a name="l01357"></a>01357 <span class="comment"></span>
<a name="l01358"></a>01358 <span class="comment"> /**</span>
<a name="l01359"></a>01359 <span class="comment"> * This is the fundamental unit of time (in seconds) in terms</span>
<a name="l01360"></a>01360 <span class="comment"> * of which frame timestamps are represented. For fixed-fps content,</span>
<a name="l01361"></a>01361 <span class="comment"> * timebase should be 1/framerate and timestamp increments should be</span>
<a name="l01362"></a>01362 <span class="comment"> * identically 1.</span>
<a name="l01363"></a>01363 <span class="comment"> * This often, but not always is the inverse of the frame rate or field rate</span>
<a name="l01364"></a>01364 <span class="comment"> * for video.</span>
<a name="l01365"></a>01365 <span class="comment"> * - encoding: MUST be set by user.</span>
<a name="l01366"></a>01366 <span class="comment"> * - decoding: the use of this field for decoding is deprecated.</span>
<a name="l01367"></a>01367 <span class="comment"> * Use framerate instead.</span>
<a name="l01368"></a><a class="code" href="structAVCodecContext.html#ab7bfeb9fa5840aac090e2b0bd0ef7589">01368</a> <span class="comment"> */</span>
<a name="l01369"></a>01369 <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> <a class="code" href="structAVCodecContext.html#ab7bfeb9fa5840aac090e2b0bd0ef7589" title="This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...">time_base</a>;
<a name="l01370"></a>01370 <span class="comment"></span>
<a name="l01371"></a>01371 <span class="comment"> /**</span>
<a name="l01372"></a>01372 <span class="comment"> * For some codecs, the time base is closer to the field rate than the frame rate.</span>
<a name="l01373"></a>01373 <span class="comment"> * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration</span>
<a name="l01374"></a>01374 <span class="comment"> * if no telecine is used ...</span>
<a name="l01375"></a>01375 <span class="comment"> *</span>
<a name="l01376"></a>01376 <span class="comment"> * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2.</span>
<a name="l01377"></a><a class="code" href="structAVCodecContext.html#a5c62b9c1528a272923ea2a4b86dea31a">01377</a> <span class="comment"> */</span>
<a name="l01378"></a>01378 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5c62b9c1528a272923ea2a4b86dea31a" title="For some codecs, the time base is closer to the field rate than the frame rate.">ticks_per_frame</a>;
<a name="l01379"></a>01379 <span class="comment"></span>
<a name="l01380"></a>01380 <span class="comment"> /**</span>
<a name="l01381"></a>01381 <span class="comment"> * Codec delay.</span>
<a name="l01382"></a>01382 <span class="comment"> *</span>
<a name="l01383"></a>01383 <span class="comment"> * Encoding: Number of frames delay there will be from the encoder input to</span>
<a name="l01384"></a>01384 <span class="comment"> * the decoder output. (we assume the decoder matches the spec)</span>
<a name="l01385"></a>01385 <span class="comment"> * Decoding: Number of frames delay in addition to what a standard decoder</span>
<a name="l01386"></a>01386 <span class="comment"> * as specified in the spec would produce.</span>
<a name="l01387"></a>01387 <span class="comment"> *</span>
<a name="l01388"></a>01388 <span class="comment"> * Video:</span>
<a name="l01389"></a>01389 <span class="comment"> * Number of frames the decoded output will be delayed relative to the</span>
<a name="l01390"></a>01390 <span class="comment"> * encoded input.</span>
<a name="l01391"></a>01391 <span class="comment"> *</span>
<a name="l01392"></a>01392 <span class="comment"> * Audio:</span>
<a name="l01393"></a>01393 <span class="comment"> * For encoding, this field is unused (see initial_padding).</span>
<a name="l01394"></a>01394 <span class="comment"> *</span>
<a name="l01395"></a>01395 <span class="comment"> * For decoding, this is the number of samples the decoder needs to</span>
<a name="l01396"></a>01396 <span class="comment"> * output before the decoder's output is valid. When seeking, you should</span>
<a name="l01397"></a>01397 <span class="comment"> * start decoding this many samples prior to your desired seek point.</span>
<a name="l01398"></a>01398 <span class="comment"> *</span>
<a name="l01399"></a>01399 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l01400"></a>01400 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l01401"></a><a class="code" href="structAVCodecContext.html#a948993adfdfcd64b81dad1151fe50f33">01401</a> <span class="comment"> */</span>
<a name="l01402"></a>01402 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a948993adfdfcd64b81dad1151fe50f33" title="Codec delay.">delay</a>;
<a name="l01403"></a>01403
<a name="l01404"></a>01404
<a name="l01405"></a>01405 <span class="comment">/* video only */</span><span class="comment"></span>
<a name="l01406"></a>01406 <span class="comment"> /**</span>
<a name="l01407"></a>01407 <span class="comment"> * picture width / height.</span>
<a name="l01408"></a>01408 <span class="comment"> * - encoding: MUST be set by user.</span>
<a name="l01409"></a>01409 <span class="comment"> * - decoding: May be set by the user before opening the decoder if known e.g.</span>
<a name="l01410"></a>01410 <span class="comment"> * from the container. Some decoders will require the dimensions</span>
<a name="l01411"></a>01411 <span class="comment"> * to be set by the caller. During decoding, the decoder may</span>
<a name="l01412"></a>01412 <span class="comment"> * overwrite those values as required.</span>
<a name="l01413"></a><a class="code" href="structAVCodecContext.html#a0d8f46461754e8abea0847dcbc41b956">01413</a> <span class="comment"> */</span>
<a name="l01414"></a>01414 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a0d8f46461754e8abea0847dcbc41b956" title="picture width / height.">width</a>, <a class="code" href="structAVCodecContext.html#a0449afd803eb107bd4dbc8b5ea22e363">height</a>;
<a name="l01415"></a>01415 <span class="comment"></span>
<a name="l01416"></a>01416 <span class="comment"> /**</span>
<a name="l01417"></a>01417 <span class="comment"> * Bitstream width / height, may be different from width/height e.g. when</span>
<a name="l01418"></a>01418 <span class="comment"> * the decoded frame is cropped before being output or lowres is enabled.</span>
<a name="l01419"></a>01419 <span class="comment"> * - encoding: unused</span>
<a name="l01420"></a>01420 <span class="comment"> * - decoding: May be set by the user before opening the decoder if known</span>
<a name="l01421"></a>01421 <span class="comment"> * e.g. from the container. During decoding, the decoder may</span>
<a name="l01422"></a>01422 <span class="comment"> * overwrite those values as required.</span>
<a name="l01423"></a><a class="code" href="structAVCodecContext.html#ae3c157e97ff15d46e898a538c6bc7f09">01423</a> <span class="comment"> */</span>
<a name="l01424"></a>01424 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae3c157e97ff15d46e898a538c6bc7f09" title="Bitstream width / height, may be different from width/height e.g.">coded_width</a>, <a class="code" href="structAVCodecContext.html#ab2ebb76836ef4cd9822b5077c17b33d0">coded_height</a>;
<a name="l01425"></a>01425
<a name="l01426"></a><a class="code" href="libavcodec_2avcodec_8h.html#a2ac59087a5668d2e943218dd6df64373">01426</a> <span class="preprocessor">#if FF_API_ASPECT_EXTENDED</span>
<a name="l01427"></a>01427 <span class="preprocessor"></span><span class="preprocessor">#define FF_ASPECT_EXTENDED 15</span>
<a name="l01428"></a>01428 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l01429"></a>01429 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01430"></a>01430 <span class="comment"> /**</span>
<a name="l01431"></a>01431 <span class="comment"> * the number of pictures in a group of pictures, or 0 for intra_only</span>
<a name="l01432"></a>01432 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01433"></a>01433 <span class="comment"> * - decoding: unused</span>
<a name="l01434"></a><a class="code" href="structAVCodecContext.html#a9b6b3f1fcbdcc2ad9f4dbb4370496e38">01434</a> <span class="comment"> */</span>
<a name="l01435"></a>01435 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a9b6b3f1fcbdcc2ad9f4dbb4370496e38" title="the number of pictures in a group of pictures, or 0 for intra_only">gop_size</a>;
<a name="l01436"></a>01436 <span class="comment"></span>
<a name="l01437"></a>01437 <span class="comment"> /**</span>
<a name="l01438"></a>01438 <span class="comment"> * Pixel format, see AV_PIX_FMT_xxx.</span>
<a name="l01439"></a>01439 <span class="comment"> * May be set by the demuxer if known from headers.</span>
<a name="l01440"></a>01440 <span class="comment"> * May be overridden by the decoder if it knows better.</span>
<a name="l01441"></a>01441 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01442"></a>01442 <span class="comment"> * - decoding: Set by user if known, overridden by libavcodec if known</span>
<a name="l01443"></a><a class="code" href="structAVCodecContext.html#a0425c77b3d06d71e5db88b1d7e1b37f2">01443</a> <span class="comment"> */</span>
<a name="l01444"></a>01444 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="structAVCodecContext.html#a0425c77b3d06d71e5db88b1d7e1b37f2" title="Pixel format, see AV_PIX_FMT_xxx.">pix_fmt</a>;
<a name="l01445"></a>01445 <span class="comment"></span>
<a name="l01446"></a>01446 <span class="comment"> /**</span>
<a name="l01447"></a>01447 <span class="comment"> * Motion estimation algorithm used for video coding.</span>
<a name="l01448"></a>01448 <span class="comment"> * 1 (zero), 2 (full), 3 (log), 4 (phods), 5 (epzs), 6 (x1), 7 (hex),</span>
<a name="l01449"></a>01449 <span class="comment"> * 8 (umh), 9 (iter), 10 (tesa) [7, 8, 10 are x264 specific, 9 is snow specific]</span>
<a name="l01450"></a>01450 <span class="comment"> * - encoding: MUST be set by user.</span>
<a name="l01451"></a>01451 <span class="comment"> * - decoding: unused</span>
<a name="l01452"></a><a class="code" href="structAVCodecContext.html#ae969fc4cb4ac9ca5c61f7f7c6f78e14d">01452</a> <span class="comment"> */</span>
<a name="l01453"></a>01453 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae969fc4cb4ac9ca5c61f7f7c6f78e14d" title="Motion estimation algorithm used for video coding.">me_method</a>;
<a name="l01454"></a>01454 <span class="comment"></span>
<a name="l01455"></a>01455 <span class="comment"> /**</span>
<a name="l01456"></a>01456 <span class="comment"> * If non NULL, 'draw_horiz_band' is called by the libavcodec</span>
<a name="l01457"></a>01457 <span class="comment"> * decoder to draw a horizontal band. It improves cache usage. Not</span>
<a name="l01458"></a>01458 <span class="comment"> * all codecs can do that. You must check the codec capabilities</span>
<a name="l01459"></a>01459 <span class="comment"> * beforehand.</span>
<a name="l01460"></a>01460 <span class="comment"> * When multithreading is used, it may be called from multiple threads</span>
<a name="l01461"></a>01461 <span class="comment"> * at the same time; threads might draw different parts of the same AVFrame,</span>
<a name="l01462"></a>01462 <span class="comment"> * or multiple AVFrames, and there is no guarantee that slices will be drawn</span>
<a name="l01463"></a>01463 <span class="comment"> * in order.</span>
<a name="l01464"></a>01464 <span class="comment"> * The function is also used by hardware acceleration APIs.</span>
<a name="l01465"></a>01465 <span class="comment"> * It is called at least once during frame decoding to pass</span>
<a name="l01466"></a>01466 <span class="comment"> * the data needed for hardware render.</span>
<a name="l01467"></a>01467 <span class="comment"> * In that mode instead of pixel data, AVFrame points to</span>
<a name="l01468"></a>01468 <span class="comment"> * a structure specific to the acceleration API. The application</span>
<a name="l01469"></a>01469 <span class="comment"> * reads the structure and can change some fields to indicate progress</span>
<a name="l01470"></a>01470 <span class="comment"> * or mark state.</span>
<a name="l01471"></a>01471 <span class="comment"> * - encoding: unused</span>
<a name="l01472"></a>01472 <span class="comment"> * - decoding: Set by user.</span>
<a name="l01473"></a>01473 <span class="comment"> * @param height the height of the slice</span>
<a name="l01474"></a>01474 <span class="comment"> * @param y the y position of the slice</span>
<a name="l01475"></a>01475 <span class="comment"> * @param type 1->top field, 2->bottom field, 3->frame</span>
<a name="l01476"></a>01476 <span class="comment"> * @param offset offset into the AVFrame.data from which the slice should be read</span>
<a name="l01477"></a><a class="code" href="structAVCodecContext.html#aa6e68a5af5b69e58c6b033a9e3ea007f">01477</a> <span class="comment"> */</span>
<a name="l01478"></a>01478 void (*<a class="code" href="structAVCodecContext.html#aa6e68a5af5b69e58c6b033a9e3ea007f" title="If non NULL, 'draw_horiz_band' is called by the libavcodec decoder to draw a horizontal band...">draw_horiz_band</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s,
<a name="l01479"></a>01479 <span class="keyword">const</span> <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *src, <span class="keywordtype">int</span> offset[<a class="code" href="frame_8h.html#add80189702cf0f5ea82718576fb43201">AV_NUM_DATA_POINTERS</a>],
<a name="l01480"></a>01480 <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> type, <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a0449afd803eb107bd4dbc8b5ea22e363">height</a>);
<a name="l01481"></a>01481 <span class="comment"></span>
<a name="l01482"></a>01482 <span class="comment"> /**</span>
<a name="l01483"></a>01483 <span class="comment"> * callback to negotiate the pixelFormat</span>
<a name="l01484"></a>01484 <span class="comment"> * @param fmt is the list of formats which are supported by the codec,</span>
<a name="l01485"></a>01485 <span class="comment"> * it is terminated by -1 as 0 is a valid format, the formats are ordered by quality.</span>
<a name="l01486"></a>01486 <span class="comment"> * The first is always the native one.</span>
<a name="l01487"></a>01487 <span class="comment"> * @note The callback may be called again immediately if initialization for</span>
<a name="l01488"></a>01488 <span class="comment"> * the selected (hardware-accelerated) pixel format failed.</span>
<a name="l01489"></a>01489 <span class="comment"> * @warning Behavior is undefined if the callback returns a value not</span>
<a name="l01490"></a>01490 <span class="comment"> * in the fmt list of formats.</span>
<a name="l01491"></a>01491 <span class="comment"> * @return the chosen format</span>
<a name="l01492"></a>01492 <span class="comment"> * - encoding: unused</span>
<a name="l01493"></a>01493 <span class="comment"> * - decoding: Set by user, if not set the native format will be chosen.</span>
<a name="l01494"></a><a class="code" href="structAVCodecContext.html#ae85c5a0e81e9f97c063881148edc28b7">01494</a> <span class="comment"> */</span>
<a name="l01495"></a>01495 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> (*<a class="code" href="structAVCodecContext.html#ae85c5a0e81e9f97c063881148edc28b7" title="callback to negotiate the pixelFormat">get_format</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <span class="keyword">const</span> <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> * fmt);
<a name="l01496"></a>01496 <span class="comment"></span>
<a name="l01497"></a>01497 <span class="comment"> /**</span>
<a name="l01498"></a>01498 <span class="comment"> * maximum number of B-frames between non-B-frames</span>
<a name="l01499"></a>01499 <span class="comment"> * Note: The output will be delayed by max_b_frames+1 relative to the input.</span>
<a name="l01500"></a>01500 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01501"></a>01501 <span class="comment"> * - decoding: unused</span>
<a name="l01502"></a><a class="code" href="structAVCodecContext.html#a3e5334a611a3e2a6a653805bb9e2d4d4">01502</a> <span class="comment"> */</span>
<a name="l01503"></a>01503 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3e5334a611a3e2a6a653805bb9e2d4d4" title="maximum number of B-frames between non-B-frames Note: The output will be delayed by max_b_frames+1 re...">max_b_frames</a>;
<a name="l01504"></a>01504 <span class="comment"></span>
<a name="l01505"></a>01505 <span class="comment"> /**</span>
<a name="l01506"></a>01506 <span class="comment"> * qscale factor between IP and B-frames</span>
<a name="l01507"></a>01507 <span class="comment"> * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset).</span>
<a name="l01508"></a>01508 <span class="comment"> * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).</span>
<a name="l01509"></a>01509 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01510"></a>01510 <span class="comment"> * - decoding: unused</span>
<a name="l01511"></a><a class="code" href="structAVCodecContext.html#a40a7fdf60f853d9140bbe1204a66efb2">01511</a> <span class="comment"> */</span>
<a name="l01512"></a>01512 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#a40a7fdf60f853d9140bbe1204a66efb2" title="qscale factor between IP and B-frames If > 0 then the last P-frame quantizer will be used (q= lastp_q...">b_quant_factor</a>;
<a name="l01513"></a>01513 <span class="comment"></span>
<a name="l01514"></a><a class="code" href="structAVCodecContext.html#aa243eb5ac9606ee7d0e1e8402ffcb289">01514</a> <span class="comment"> /** obsolete FIXME remove */</span>
<a name="l01515"></a><a class="code" href="libavcodec_2avcodec_8h.html#a6ab15951a46ec0f2e3d7bd79c6c454b8">01515</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aa243eb5ac9606ee7d0e1e8402ffcb289" title="obsolete FIXME remove">rc_strategy</a>;
<a name="l01516"></a>01516 <span class="preprocessor">#define FF_RC_STRATEGY_XVID 1</span>
<a name="l01517"></a><a class="code" href="structAVCodecContext.html#a64625af3f41e59bf3cf58be910a0cd3b">01517</a> <span class="preprocessor"></span>
<a name="l01518"></a>01518 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a64625af3f41e59bf3cf58be910a0cd3b">b_frame_strategy</a>;
<a name="l01519"></a>01519 <span class="comment"></span>
<a name="l01520"></a>01520 <span class="comment"> /**</span>
<a name="l01521"></a>01521 <span class="comment"> * qscale offset between IP and B-frames</span>
<a name="l01522"></a>01522 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01523"></a>01523 <span class="comment"> * - decoding: unused</span>
<a name="l01524"></a><a class="code" href="structAVCodecContext.html#a31a2ef78cf186083c2c676dda8e226db">01524</a> <span class="comment"> */</span>
<a name="l01525"></a>01525 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#a31a2ef78cf186083c2c676dda8e226db" title="qscale offset between IP and B-frames">b_quant_offset</a>;
<a name="l01526"></a>01526 <span class="comment"></span>
<a name="l01527"></a>01527 <span class="comment"> /**</span>
<a name="l01528"></a>01528 <span class="comment"> * Size of the frame reordering buffer in the decoder.</span>
<a name="l01529"></a>01529 <span class="comment"> * For MPEG-2 it is 1 IPB or 0 low delay IP.</span>
<a name="l01530"></a>01530 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l01531"></a>01531 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l01532"></a><a class="code" href="structAVCodecContext.html#a686a77363668795c15c87b532cc455fa">01532</a> <span class="comment"> */</span>
<a name="l01533"></a>01533 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a686a77363668795c15c87b532cc455fa" title="Size of the frame reordering buffer in the decoder.">has_b_frames</a>;
<a name="l01534"></a>01534 <span class="comment"></span>
<a name="l01535"></a>01535 <span class="comment"> /**</span>
<a name="l01536"></a>01536 <span class="comment"> * 0-> h263 quant 1-> mpeg quant</span>
<a name="l01537"></a>01537 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01538"></a>01538 <span class="comment"> * - decoding: unused</span>
<a name="l01539"></a><a class="code" href="structAVCodecContext.html#a1ee77728beef26e1b3b6ff3cc9b27433">01539</a> <span class="comment"> */</span>
<a name="l01540"></a>01540 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a1ee77728beef26e1b3b6ff3cc9b27433" title="0-> h263 quant 1-> mpeg quant">mpeg_quant</a>;
<a name="l01541"></a>01541 <span class="comment"></span>
<a name="l01542"></a>01542 <span class="comment"> /**</span>
<a name="l01543"></a>01543 <span class="comment"> * qscale factor between P and I-frames</span>
<a name="l01544"></a>01544 <span class="comment"> * If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset).</span>
<a name="l01545"></a>01545 <span class="comment"> * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).</span>
<a name="l01546"></a>01546 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01547"></a>01547 <span class="comment"> * - decoding: unused</span>
<a name="l01548"></a><a class="code" href="structAVCodecContext.html#aef7017818f06f053f2e63fe759b30eb1">01548</a> <span class="comment"> */</span>
<a name="l01549"></a>01549 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#aef7017818f06f053f2e63fe759b30eb1" title="qscale factor between P and I-frames If > 0 then the last p frame quantizer will be used (q= lastp_q*...">i_quant_factor</a>;
<a name="l01550"></a>01550 <span class="comment"></span>
<a name="l01551"></a>01551 <span class="comment"> /**</span>
<a name="l01552"></a>01552 <span class="comment"> * qscale offset between P and I-frames</span>
<a name="l01553"></a>01553 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01554"></a>01554 <span class="comment"> * - decoding: unused</span>
<a name="l01555"></a><a class="code" href="structAVCodecContext.html#afe9b149e17b9e28823ab3cf9732b990d">01555</a> <span class="comment"> */</span>
<a name="l01556"></a>01556 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#afe9b149e17b9e28823ab3cf9732b990d" title="qscale offset between P and I-frames">i_quant_offset</a>;
<a name="l01557"></a>01557 <span class="comment"></span>
<a name="l01558"></a>01558 <span class="comment"> /**</span>
<a name="l01559"></a>01559 <span class="comment"> * luminance masking (0-> disabled)</span>
<a name="l01560"></a>01560 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01561"></a>01561 <span class="comment"> * - decoding: unused</span>
<a name="l01562"></a><a class="code" href="structAVCodecContext.html#ae14fedf2fb0f6bda26a1badae5f8aeb4">01562</a> <span class="comment"> */</span>
<a name="l01563"></a>01563 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#ae14fedf2fb0f6bda26a1badae5f8aeb4" title="luminance masking (0-> disabled)">lumi_masking</a>;
<a name="l01564"></a>01564 <span class="comment"></span>
<a name="l01565"></a>01565 <span class="comment"> /**</span>
<a name="l01566"></a>01566 <span class="comment"> * temporary complexity masking (0-> disabled)</span>
<a name="l01567"></a>01567 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01568"></a>01568 <span class="comment"> * - decoding: unused</span>
<a name="l01569"></a><a class="code" href="structAVCodecContext.html#a8fccee6f69d7ddf5c01d3042bd2772b3">01569</a> <span class="comment"> */</span>
<a name="l01570"></a>01570 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#a8fccee6f69d7ddf5c01d3042bd2772b3" title="temporary complexity masking (0-> disabled)">temporal_cplx_masking</a>;
<a name="l01571"></a>01571 <span class="comment"></span>
<a name="l01572"></a>01572 <span class="comment"> /**</span>
<a name="l01573"></a>01573 <span class="comment"> * spatial complexity masking (0-> disabled)</span>
<a name="l01574"></a>01574 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01575"></a>01575 <span class="comment"> * - decoding: unused</span>
<a name="l01576"></a><a class="code" href="structAVCodecContext.html#af79ff5dc9b33e370267f406dd2d5dc67">01576</a> <span class="comment"> */</span>
<a name="l01577"></a>01577 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#af79ff5dc9b33e370267f406dd2d5dc67" title="spatial complexity masking (0-> disabled)">spatial_cplx_masking</a>;
<a name="l01578"></a>01578 <span class="comment"></span>
<a name="l01579"></a>01579 <span class="comment"> /**</span>
<a name="l01580"></a>01580 <span class="comment"> * p block masking (0-> disabled)</span>
<a name="l01581"></a>01581 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01582"></a>01582 <span class="comment"> * - decoding: unused</span>
<a name="l01583"></a><a class="code" href="structAVCodecContext.html#a906b4bb56c38c49ef2de171ccdc55e30">01583</a> <span class="comment"> */</span>
<a name="l01584"></a>01584 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#a906b4bb56c38c49ef2de171ccdc55e30" title="p block masking (0-> disabled)">p_masking</a>;
<a name="l01585"></a>01585 <span class="comment"></span>
<a name="l01586"></a>01586 <span class="comment"> /**</span>
<a name="l01587"></a>01587 <span class="comment"> * darkness masking (0-> disabled)</span>
<a name="l01588"></a>01588 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01589"></a>01589 <span class="comment"> * - decoding: unused</span>
<a name="l01590"></a><a class="code" href="structAVCodecContext.html#a94bc3962f63a607a7d26d927f9bffb10">01590</a> <span class="comment"> */</span>
<a name="l01591"></a>01591 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#a94bc3962f63a607a7d26d927f9bffb10" title="darkness masking (0-> disabled)">dark_masking</a>;
<a name="l01592"></a>01592 <span class="comment"></span>
<a name="l01593"></a>01593 <span class="comment"> /**</span>
<a name="l01594"></a>01594 <span class="comment"> * slice count</span>
<a name="l01595"></a>01595 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l01596"></a>01596 <span class="comment"> * - decoding: Set by user (or 0).</span>
<a name="l01597"></a><a class="code" href="structAVCodecContext.html#a5ab4f688d837387c83315fba6027a43a">01597</a> <span class="comment"> */</span>
<a name="l01598"></a>01598 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5ab4f688d837387c83315fba6027a43a" title="slice count">slice_count</a>;<span class="comment"></span>
<a name="l01599"></a>01599 <span class="comment"> /**</span>
<a name="l01600"></a>01600 <span class="comment"> * prediction method (needed for huffyuv)</span>
<a name="l01601"></a>01601 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01602"></a>01602 <span class="comment"> * - decoding: unused</span>
<a name="l01603"></a><a class="code" href="structAVCodecContext.html#abfe2f66459911679409d0b223fcbd522">01603</a> <span class="comment"> */</span>
<a name="l01604"></a><a class="code" href="libavcodec_2avcodec_8h.html#a629b7d691b260f7ca698073bdfd1dd0a">01604</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#abfe2f66459911679409d0b223fcbd522" title="prediction method (needed for huffyuv)">prediction_method</a>;
<a name="l01605"></a><a class="code" href="libavcodec_2avcodec_8h.html#a37227f87595f7928c8c1208df69245ea">01605</a> <span class="preprocessor">#define FF_PRED_LEFT 0</span>
<a name="l01606"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab9b5d4c9bcb173a27bd164cb3b4d7855">01606</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PRED_PLANE 1</span>
<a name="l01607"></a>01607 <span class="preprocessor"></span><span class="preprocessor">#define FF_PRED_MEDIAN 2</span>
<a name="l01608"></a>01608 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01609"></a>01609 <span class="comment"> /**</span>
<a name="l01610"></a>01610 <span class="comment"> * slice offsets in the frame in bytes</span>
<a name="l01611"></a>01611 <span class="comment"> * - encoding: Set/allocated by libavcodec.</span>
<a name="l01612"></a>01612 <span class="comment"> * - decoding: Set/allocated by user (or NULL).</span>
<a name="l01613"></a><a class="code" href="structAVCodecContext.html#aedd75624ca647d2ac04b20c1eb7352e6">01613</a> <span class="comment"> */</span>
<a name="l01614"></a>01614 <span class="keywordtype">int</span> *<a class="code" href="structAVCodecContext.html#aedd75624ca647d2ac04b20c1eb7352e6" title="slice offsets in the frame in bytes">slice_offset</a>;
<a name="l01615"></a>01615 <span class="comment"></span>
<a name="l01616"></a>01616 <span class="comment"> /**</span>
<a name="l01617"></a>01617 <span class="comment"> * sample aspect ratio (0 if unknown)</span>
<a name="l01618"></a>01618 <span class="comment"> * That is the width of a pixel divided by the height of the pixel.</span>
<a name="l01619"></a>01619 <span class="comment"> * Numerator and denominator must be relatively prime and smaller than 256 for some video standards.</span>
<a name="l01620"></a>01620 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01621"></a>01621 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l01622"></a><a class="code" href="structAVCodecContext.html#a5252d34fbce300228d4dbda19a8c3293">01622</a> <span class="comment"> */</span>
<a name="l01623"></a>01623 <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> <a class="code" href="structAVCodecContext.html#a5252d34fbce300228d4dbda19a8c3293" title="sample aspect ratio (0 if unknown) That is the width of a pixel divided by the height of the pixel...">sample_aspect_ratio</a>;
<a name="l01624"></a>01624 <span class="comment"></span>
<a name="l01625"></a>01625 <span class="comment"> /**</span>
<a name="l01626"></a>01626 <span class="comment"> * motion estimation comparison function</span>
<a name="l01627"></a>01627 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01628"></a>01628 <span class="comment"> * - decoding: unused</span>
<a name="l01629"></a><a class="code" href="structAVCodecContext.html#a184b7563344db253540f222d8d023ae1">01629</a> <span class="comment"> */</span>
<a name="l01630"></a>01630 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a184b7563344db253540f222d8d023ae1" title="motion estimation comparison function">me_cmp</a>;<span class="comment"></span>
<a name="l01631"></a>01631 <span class="comment"> /**</span>
<a name="l01632"></a>01632 <span class="comment"> * subpixel motion estimation comparison function</span>
<a name="l01633"></a>01633 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01634"></a>01634 <span class="comment"> * - decoding: unused</span>
<a name="l01635"></a><a class="code" href="structAVCodecContext.html#a76d47cbb639922fee05ce6057d95457c">01635</a> <span class="comment"> */</span>
<a name="l01636"></a>01636 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a76d47cbb639922fee05ce6057d95457c" title="subpixel motion estimation comparison function">me_sub_cmp</a>;<span class="comment"></span>
<a name="l01637"></a>01637 <span class="comment"> /**</span>
<a name="l01638"></a>01638 <span class="comment"> * macroblock comparison function (not supported yet)</span>
<a name="l01639"></a>01639 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01640"></a>01640 <span class="comment"> * - decoding: unused</span>
<a name="l01641"></a><a class="code" href="structAVCodecContext.html#a99286e29b23e56cc65f7877102ee876f">01641</a> <span class="comment"> */</span>
<a name="l01642"></a>01642 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a99286e29b23e56cc65f7877102ee876f" title="macroblock comparison function (not supported yet)">mb_cmp</a>;<span class="comment"></span>
<a name="l01643"></a>01643 <span class="comment"> /**</span>
<a name="l01644"></a>01644 <span class="comment"> * interlaced DCT comparison function</span>
<a name="l01645"></a>01645 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01646"></a>01646 <span class="comment"> * - decoding: unused</span>
<a name="l01647"></a><a class="code" href="structAVCodecContext.html#aa136d238dbf5ea7085f6117b59e5d5eb">01647</a> <span class="comment"> */</span>
<a name="l01648"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5ced04f38d12ad119dda509da1b43eb7">01648</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aa136d238dbf5ea7085f6117b59e5d5eb" title="interlaced DCT comparison function">ildct_cmp</a>;
<a name="l01649"></a><a class="code" href="libavcodec_2avcodec_8h.html#a08cc824c6da624325be6c0a48561729e">01649</a> <span class="preprocessor">#define FF_CMP_SAD 0</span>
<a name="l01650"></a><a class="code" href="libavcodec_2avcodec_8h.html#a47d744af4e9db69ed15409ed056007c0">01650</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_SSE 1</span>
<a name="l01651"></a><a class="code" href="libavcodec_2avcodec_8h.html#a25c94282d6ab84f5f8e6803105813527">01651</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_SATD 2</span>
<a name="l01652"></a><a class="code" href="libavcodec_2avcodec_8h.html#aa1a37935d19036f578c5e766178f59b6">01652</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_DCT 3</span>
<a name="l01653"></a><a class="code" href="libavcodec_2avcodec_8h.html#a4408d3a17a4de7dac2f99a751524ac27">01653</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_PSNR 4</span>
<a name="l01654"></a><a class="code" href="libavcodec_2avcodec_8h.html#af0e853ac6880d5ce4122b367f7f60b23">01654</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_BIT 5</span>
<a name="l01655"></a><a class="code" href="libavcodec_2avcodec_8h.html#afc610b48f5ab921276bc3c0e0984fdfe">01655</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_RD 6</span>
<a name="l01656"></a><a class="code" href="libavcodec_2avcodec_8h.html#a112e3952983400562dc9b6acce736bd6">01656</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_ZERO 7</span>
<a name="l01657"></a><a class="code" href="libavcodec_2avcodec_8h.html#a2d0a91ab7215ddd033c1519da2ba82c6">01657</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_VSAD 8</span>
<a name="l01658"></a><a class="code" href="libavcodec_2avcodec_8h.html#a4a7e6a77e5f27d3fc1a8de5effa3897c">01658</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_VSSE 9</span>
<a name="l01659"></a><a class="code" href="libavcodec_2avcodec_8h.html#a083963028b2c118103c8f6bcfc2e024f">01659</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_NSSE 10</span>
<a name="l01660"></a><a class="code" href="libavcodec_2avcodec_8h.html#a301cef5b2b4e3268be40c9f30c7f371f">01660</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_W53 11</span>
<a name="l01661"></a><a class="code" href="libavcodec_2avcodec_8h.html#a11065c07a11c92d2f168620b8d2d7a68">01661</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_W97 12</span>
<a name="l01662"></a><a class="code" href="libavcodec_2avcodec_8h.html#a02d665e44512df1db73fde009c8aa3ca">01662</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_DCTMAX 13</span>
<a name="l01663"></a><a class="code" href="libavcodec_2avcodec_8h.html#a265e91f6d00ad75d918bedccfeedd08a">01663</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_DCT264 14</span>
<a name="l01664"></a>01664 <span class="preprocessor"></span><span class="preprocessor">#define FF_CMP_CHROMA 256</span>
<a name="l01665"></a>01665 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01666"></a>01666 <span class="comment"> /**</span>
<a name="l01667"></a>01667 <span class="comment"> * ME diamond size & shape</span>
<a name="l01668"></a>01668 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01669"></a>01669 <span class="comment"> * - decoding: unused</span>
<a name="l01670"></a><a class="code" href="structAVCodecContext.html#a41fe8a6a05a20ef02eb49a46f774fb2b">01670</a> <span class="comment"> */</span>
<a name="l01671"></a>01671 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a41fe8a6a05a20ef02eb49a46f774fb2b" title="ME diamond size & shape.">dia_size</a>;
<a name="l01672"></a>01672 <span class="comment"></span>
<a name="l01673"></a>01673 <span class="comment"> /**</span>
<a name="l01674"></a>01674 <span class="comment"> * amount of previous MV predictors (2a+1 x 2a+1 square)</span>
<a name="l01675"></a>01675 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01676"></a>01676 <span class="comment"> * - decoding: unused</span>
<a name="l01677"></a><a class="code" href="structAVCodecContext.html#a7ca6bf3e2949e617cac66498779e6103">01677</a> <span class="comment"> */</span>
<a name="l01678"></a>01678 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7ca6bf3e2949e617cac66498779e6103" title="amount of previous MV predictors (2a+1 x 2a+1 square)">last_predictor_count</a>;
<a name="l01679"></a>01679 <span class="comment"></span>
<a name="l01680"></a>01680 <span class="comment"> /**</span>
<a name="l01681"></a>01681 <span class="comment"> * prepass for motion estimation</span>
<a name="l01682"></a>01682 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01683"></a>01683 <span class="comment"> * - decoding: unused</span>
<a name="l01684"></a><a class="code" href="structAVCodecContext.html#a89ad25261c3edb8ad2c6bbbf68d71e58">01684</a> <span class="comment"> */</span>
<a name="l01685"></a>01685 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a89ad25261c3edb8ad2c6bbbf68d71e58" title="prepass for motion estimation">pre_me</a>;
<a name="l01686"></a>01686 <span class="comment"></span>
<a name="l01687"></a>01687 <span class="comment"> /**</span>
<a name="l01688"></a>01688 <span class="comment"> * motion estimation prepass comparison function</span>
<a name="l01689"></a>01689 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01690"></a>01690 <span class="comment"> * - decoding: unused</span>
<a name="l01691"></a><a class="code" href="structAVCodecContext.html#ac05e5676655afdc05a83c06a90f3eea7">01691</a> <span class="comment"> */</span>
<a name="l01692"></a>01692 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ac05e5676655afdc05a83c06a90f3eea7" title="motion estimation prepass comparison function">me_pre_cmp</a>;
<a name="l01693"></a>01693 <span class="comment"></span>
<a name="l01694"></a>01694 <span class="comment"> /**</span>
<a name="l01695"></a>01695 <span class="comment"> * ME prepass diamond size & shape</span>
<a name="l01696"></a>01696 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01697"></a>01697 <span class="comment"> * - decoding: unused</span>
<a name="l01698"></a><a class="code" href="structAVCodecContext.html#ae0eacb07c8a7a5b231d64c70c88645ff">01698</a> <span class="comment"> */</span>
<a name="l01699"></a>01699 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae0eacb07c8a7a5b231d64c70c88645ff" title="ME prepass diamond size & shape.">pre_dia_size</a>;
<a name="l01700"></a>01700 <span class="comment"></span>
<a name="l01701"></a>01701 <span class="comment"> /**</span>
<a name="l01702"></a>01702 <span class="comment"> * subpel ME quality</span>
<a name="l01703"></a>01703 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01704"></a>01704 <span class="comment"> * - decoding: unused</span>
<a name="l01705"></a><a class="code" href="structAVCodecContext.html#a3ad6d8644e00de2ecb636546d2e45121">01705</a> <span class="comment"> */</span>
<a name="l01706"></a>01706 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3ad6d8644e00de2ecb636546d2e45121" title="subpel ME quality">me_subpel_quality</a>;
<a name="l01707"></a>01707
<a name="l01708"></a>01708 <span class="preprocessor">#if FF_API_AFD</span>
<a name="l01709"></a>01709 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l01710"></a>01710 <span class="comment"> * DTG active format information (additional aspect ratio</span>
<a name="l01711"></a>01711 <span class="comment"> * information only used in DVB MPEG-2 transport streams)</span>
<a name="l01712"></a>01712 <span class="comment"> * 0 if not set.</span>
<a name="l01713"></a>01713 <span class="comment"> *</span>
<a name="l01714"></a>01714 <span class="comment"> * - encoding: unused</span>
<a name="l01715"></a>01715 <span class="comment"> * - decoding: Set by decoder.</span>
<a name="l01716"></a>01716 <span class="comment"> * @deprecated Deprecated in favor of AVSideData</span>
<a name="l01717"></a><a class="code" href="structAVCodecContext.html#a7f90bc0c9c1b7996c0955f59c846b951">01717</a> <span class="comment"> */</span>
<a name="l01718"></a><a class="code" href="libavcodec_2avcodec_8h.html#ac0ffb77be13da7ca0a84194c1c2da4cb">01718</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7f90bc0c9c1b7996c0955f59c846b951" title="DTG active format information (additional aspect ratio information only used in DVB MPEG-2 transport ...">dtg_active_format</a>;
<a name="l01719"></a><a class="code" href="libavcodec_2avcodec_8h.html#a171d5ac1c8318b9f1fd0b8063c3561d3">01719</a> <span class="preprocessor">#define FF_DTG_AFD_SAME 8</span>
<a name="l01720"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab842c4cd9ac511fc01a5663a21b9dfc4">01720</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DTG_AFD_4_3 9</span>
<a name="l01721"></a><a class="code" href="libavcodec_2avcodec_8h.html#a9bf591e32587de5b9d13185c76e3ca14">01721</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DTG_AFD_16_9 10</span>
<a name="l01722"></a><a class="code" href="libavcodec_2avcodec_8h.html#a0aecde7615fff9a4730c3dd12bc12072">01722</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DTG_AFD_14_9 11</span>
<a name="l01723"></a><a class="code" href="libavcodec_2avcodec_8h.html#a05defda47702b28429a798429612996f">01723</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DTG_AFD_4_3_SP_14_9 13</span>
<a name="l01724"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5ed63bbfb1da03e32649037dc979de0d">01724</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DTG_AFD_16_9_SP_14_9 14</span>
<a name="l01725"></a>01725 <span class="preprocessor"></span><span class="preprocessor">#define FF_DTG_AFD_SP_4_3 15</span>
<a name="l01726"></a>01726 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* FF_API_AFD */</span>
<a name="l01727"></a>01727 <span class="comment"></span>
<a name="l01728"></a>01728 <span class="comment"> /**</span>
<a name="l01729"></a>01729 <span class="comment"> * maximum motion estimation search range in subpel units</span>
<a name="l01730"></a>01730 <span class="comment"> * If 0 then no limit.</span>
<a name="l01731"></a>01731 <span class="comment"> *</span>
<a name="l01732"></a>01732 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01733"></a>01733 <span class="comment"> * - decoding: unused</span>
<a name="l01734"></a><a class="code" href="structAVCodecContext.html#ad16d78b369781e09d14343788284300a">01734</a> <span class="comment"> */</span>
<a name="l01735"></a>01735 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ad16d78b369781e09d14343788284300a" title="maximum motion estimation search range in subpel units If 0 then no limit.">me_range</a>;
<a name="l01736"></a>01736 <span class="comment"></span>
<a name="l01737"></a>01737 <span class="comment"> /**</span>
<a name="l01738"></a>01738 <span class="comment"> * intra quantizer bias</span>
<a name="l01739"></a>01739 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01740"></a>01740 <span class="comment"> * - decoding: unused</span>
<a name="l01741"></a><a class="code" href="structAVCodecContext.html#acb4a8098f06ceed349a7a9f2eb1c4ee1">01741</a> <span class="comment"> */</span>
<a name="l01742"></a><a class="code" href="libavcodec_2avcodec_8h.html#a29ed29a826b7757721cce0c16723b915">01742</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#acb4a8098f06ceed349a7a9f2eb1c4ee1" title="intra quantizer bias">intra_quant_bias</a>;
<a name="l01743"></a>01743 <span class="preprocessor">#define FF_DEFAULT_QUANT_BIAS 999999</span>
<a name="l01744"></a>01744 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01745"></a>01745 <span class="comment"> /**</span>
<a name="l01746"></a>01746 <span class="comment"> * inter quantizer bias</span>
<a name="l01747"></a>01747 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01748"></a>01748 <span class="comment"> * - decoding: unused</span>
<a name="l01749"></a><a class="code" href="structAVCodecContext.html#a07a0b83c4bf22c652b494759e6385867">01749</a> <span class="comment"> */</span>
<a name="l01750"></a>01750 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a07a0b83c4bf22c652b494759e6385867" title="inter quantizer bias">inter_quant_bias</a>;
<a name="l01751"></a>01751 <span class="comment"></span>
<a name="l01752"></a>01752 <span class="comment"> /**</span>
<a name="l01753"></a>01753 <span class="comment"> * slice flags</span>
<a name="l01754"></a>01754 <span class="comment"> * - encoding: unused</span>
<a name="l01755"></a>01755 <span class="comment"> * - decoding: Set by user.</span>
<a name="l01756"></a><a class="code" href="structAVCodecContext.html#a2ce5f24ee2312281a68b40428b384bc8">01756</a> <span class="comment"> */</span>
<a name="l01757"></a><a class="code" href="libavcodec_2avcodec_8h.html#abdbe2252387f1670158977fbf5e19b80">01757</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a2ce5f24ee2312281a68b40428b384bc8" title="slice flags">slice_flags</a>;
<a name="l01758"></a><a class="code" href="libavcodec_2avcodec_8h.html#a05bc8bbba8ecd59c934a68569522748f">01758</a> <span class="preprocessor">#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display</span>
<a name="l01759"></a><a class="code" href="libavcodec_2avcodec_8h.html#af79202c4ec0e99f695a241bd0d9b93ee">01759</a> <span class="preprocessor"></span><span class="preprocessor">#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics)</span>
<a name="l01760"></a>01760 <span class="preprocessor"></span><span class="preprocessor">#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)</span>
<a name="l01761"></a>01761 <span class="preprocessor"></span>
<a name="l01762"></a>01762 <span class="preprocessor">#if FF_API_XVMC</span>
<a name="l01763"></a>01763 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l01764"></a>01764 <span class="comment"> * XVideo Motion Acceleration</span>
<a name="l01765"></a>01765 <span class="comment"> * - encoding: forbidden</span>
<a name="l01766"></a>01766 <span class="comment"> * - decoding: set by decoder</span>
<a name="l01767"></a>01767 <span class="comment"> * @deprecated XvMC doesn't need it anymore.</span>
<a name="l01768"></a>01768 <span class="comment"> */</span>
<a name="l01769"></a>01769 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <span class="keywordtype">int</span> xvmc_acceleration;
<a name="l01770"></a>01770 <span class="preprocessor">#endif </span><span class="comment">/* FF_API_XVMC */</span>
<a name="l01771"></a>01771 <span class="comment"></span>
<a name="l01772"></a>01772 <span class="comment"> /**</span>
<a name="l01773"></a>01773 <span class="comment"> * macroblock decision mode</span>
<a name="l01774"></a>01774 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01775"></a>01775 <span class="comment"> * - decoding: unused</span>
<a name="l01776"></a><a class="code" href="structAVCodecContext.html#a66af0e26734255f1eacabd7d67558482">01776</a> <span class="comment"> */</span>
<a name="l01777"></a><a class="code" href="libavcodec_2avcodec_8h.html#ac07b09eadb08fd0c03b1a321bdd0a87e">01777</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a66af0e26734255f1eacabd7d67558482" title="macroblock decision mode">mb_decision</a>;
<a name="l01778"></a><a class="code" href="libavcodec_2avcodec_8h.html#a913b1e23631ab9b3d895f4a5cca2edc5">01778</a> <span class="preprocessor">#define FF_MB_DECISION_SIMPLE 0 ///< uses mb_cmp</span>
<a name="l01779"></a><a class="code" href="libavcodec_2avcodec_8h.html#a539f109f975c674a226309aa022bcc8b">01779</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_MB_DECISION_BITS 1 ///< chooses the one which needs the fewest bits</span>
<a name="l01780"></a>01780 <span class="preprocessor"></span><span class="preprocessor">#define FF_MB_DECISION_RD 2 ///< rate distortion</span>
<a name="l01781"></a>01781 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01782"></a>01782 <span class="comment"> /**</span>
<a name="l01783"></a>01783 <span class="comment"> * custom intra quantization matrix</span>
<a name="l01784"></a>01784 <span class="comment"> * - encoding: Set by user, can be NULL.</span>
<a name="l01785"></a>01785 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l01786"></a><a class="code" href="structAVCodecContext.html#ab2c2db3596802edecafa24e494b33879">01786</a> <span class="comment"> */</span>
<a name="l01787"></a>01787 uint16_t *<a class="code" href="structAVCodecContext.html#ab2c2db3596802edecafa24e494b33879" title="custom intra quantization matrix">intra_matrix</a>;
<a name="l01788"></a>01788 <span class="comment"></span>
<a name="l01789"></a>01789 <span class="comment"> /**</span>
<a name="l01790"></a>01790 <span class="comment"> * custom inter quantization matrix</span>
<a name="l01791"></a>01791 <span class="comment"> * - encoding: Set by user, can be NULL.</span>
<a name="l01792"></a>01792 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l01793"></a><a class="code" href="structAVCodecContext.html#a5eab2273bf713aca6284b8ba06ead659">01793</a> <span class="comment"> */</span>
<a name="l01794"></a>01794 uint16_t *<a class="code" href="structAVCodecContext.html#a5eab2273bf713aca6284b8ba06ead659" title="custom inter quantization matrix">inter_matrix</a>;
<a name="l01795"></a>01795 <span class="comment"></span>
<a name="l01796"></a>01796 <span class="comment"> /**</span>
<a name="l01797"></a>01797 <span class="comment"> * scene change detection threshold</span>
<a name="l01798"></a>01798 <span class="comment"> * 0 is default, larger means fewer detected scene changes.</span>
<a name="l01799"></a>01799 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01800"></a>01800 <span class="comment"> * - decoding: unused</span>
<a name="l01801"></a><a class="code" href="structAVCodecContext.html#a5a01e9774060c41493c97d43b9737061">01801</a> <span class="comment"> */</span>
<a name="l01802"></a>01802 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5a01e9774060c41493c97d43b9737061" title="scene change detection threshold 0 is default, larger means fewer detected scene changes.">scenechange_threshold</a>;
<a name="l01803"></a>01803 <span class="comment"></span>
<a name="l01804"></a>01804 <span class="comment"> /**</span>
<a name="l01805"></a>01805 <span class="comment"> * noise reduction strength</span>
<a name="l01806"></a>01806 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01807"></a>01807 <span class="comment"> * - decoding: unused</span>
<a name="l01808"></a><a class="code" href="structAVCodecContext.html#a04065050e4f8f9b6ca6a302b4a857bbf">01808</a> <span class="comment"> */</span>
<a name="l01809"></a>01809 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a04065050e4f8f9b6ca6a302b4a857bbf" title="noise reduction strength">noise_reduction</a>;
<a name="l01810"></a>01810
<a name="l01811"></a>01811 <span class="preprocessor">#if FF_API_MPV_OPT</span>
<a name="l01812"></a>01812 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l01813"></a>01813 <span class="comment"> * @deprecated this field is unused</span>
<a name="l01814"></a>01814 <span class="comment"> */</span>
<a name="l01815"></a><a class="code" href="structAVCodecContext.html#a7e47b8781df47bbe53962320d4b09481">01815</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l01816"></a>01816 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7e47b8781df47bbe53962320d4b09481">me_threshold</a>;
<a name="l01817"></a>01817 <span class="comment"></span>
<a name="l01818"></a>01818 <span class="comment"> /**</span>
<a name="l01819"></a>01819 <span class="comment"> * @deprecated this field is unused</span>
<a name="l01820"></a>01820 <span class="comment"> */</span>
<a name="l01821"></a><a class="code" href="structAVCodecContext.html#af5f0b6ac0000ae8a3af9cf63a7bfb626">01821</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l01822"></a>01822 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#af5f0b6ac0000ae8a3af9cf63a7bfb626">mb_threshold</a>;
<a name="l01823"></a>01823 <span class="preprocessor">#endif</span>
<a name="l01824"></a>01824 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01825"></a>01825 <span class="comment"> /**</span>
<a name="l01826"></a>01826 <span class="comment"> * precision of the intra DC coefficient - 8</span>
<a name="l01827"></a>01827 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01828"></a>01828 <span class="comment"> * - decoding: Set by libavcodec</span>
<a name="l01829"></a><a class="code" href="structAVCodecContext.html#ac5c1b3cd296d19d7492e554d987d00e7">01829</a> <span class="comment"> */</span>
<a name="l01830"></a>01830 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ac5c1b3cd296d19d7492e554d987d00e7" title="precision of the intra DC coefficient - 8">intra_dc_precision</a>;
<a name="l01831"></a>01831 <span class="comment"></span>
<a name="l01832"></a>01832 <span class="comment"> /**</span>
<a name="l01833"></a>01833 <span class="comment"> * Number of macroblock rows at the top which are skipped.</span>
<a name="l01834"></a>01834 <span class="comment"> * - encoding: unused</span>
<a name="l01835"></a>01835 <span class="comment"> * - decoding: Set by user.</span>
<a name="l01836"></a><a class="code" href="structAVCodecContext.html#a023de607be08e4e8e9b15349f3a1f446">01836</a> <span class="comment"> */</span>
<a name="l01837"></a>01837 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a023de607be08e4e8e9b15349f3a1f446" title="Number of macroblock rows at the top which are skipped.">skip_top</a>;
<a name="l01838"></a>01838 <span class="comment"></span>
<a name="l01839"></a>01839 <span class="comment"> /**</span>
<a name="l01840"></a>01840 <span class="comment"> * Number of macroblock rows at the bottom which are skipped.</span>
<a name="l01841"></a>01841 <span class="comment"> * - encoding: unused</span>
<a name="l01842"></a>01842 <span class="comment"> * - decoding: Set by user.</span>
<a name="l01843"></a><a class="code" href="structAVCodecContext.html#ae39075ccc5ac22a20d315259e8ad8458">01843</a> <span class="comment"> */</span>
<a name="l01844"></a>01844 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae39075ccc5ac22a20d315259e8ad8458" title="Number of macroblock rows at the bottom which are skipped.">skip_bottom</a>;
<a name="l01845"></a>01845
<a name="l01846"></a>01846 <span class="preprocessor">#if FF_API_MPV_OPT</span>
<a name="l01847"></a>01847 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l01848"></a>01848 <span class="comment"> * @deprecated use encoder private options instead</span>
<a name="l01849"></a>01849 <span class="comment"> */</span>
<a name="l01850"></a><a class="code" href="structAVCodecContext.html#a35fa6e2ad9ceb7fb77e09ff189a90c1e">01850</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l01851"></a>01851 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#a35fa6e2ad9ceb7fb77e09ff189a90c1e">border_masking</a>;
<a name="l01852"></a>01852 <span class="preprocessor">#endif</span>
<a name="l01853"></a>01853 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01854"></a>01854 <span class="comment"> /**</span>
<a name="l01855"></a>01855 <span class="comment"> * minimum MB lagrange multipler</span>
<a name="l01856"></a>01856 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01857"></a>01857 <span class="comment"> * - decoding: unused</span>
<a name="l01858"></a><a class="code" href="structAVCodecContext.html#aa2a4d11439556b459cc0c833c8d9dc3d">01858</a> <span class="comment"> */</span>
<a name="l01859"></a>01859 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aa2a4d11439556b459cc0c833c8d9dc3d" title="minimum MB lagrange multipler">mb_lmin</a>;
<a name="l01860"></a>01860 <span class="comment"></span>
<a name="l01861"></a>01861 <span class="comment"> /**</span>
<a name="l01862"></a>01862 <span class="comment"> * maximum MB lagrange multipler</span>
<a name="l01863"></a>01863 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01864"></a>01864 <span class="comment"> * - decoding: unused</span>
<a name="l01865"></a><a class="code" href="structAVCodecContext.html#a3ec9ca08ce8cbc916ff71b6664a50428">01865</a> <span class="comment"> */</span>
<a name="l01866"></a>01866 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3ec9ca08ce8cbc916ff71b6664a50428" title="maximum MB lagrange multipler">mb_lmax</a>;
<a name="l01867"></a>01867 <span class="comment"></span>
<a name="l01868"></a>01868 <span class="comment"> /**</span>
<a name="l01869"></a>01869 <span class="comment"> *</span>
<a name="l01870"></a>01870 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01871"></a>01871 <span class="comment"> * - decoding: unused</span>
<a name="l01872"></a><a class="code" href="structAVCodecContext.html#a90ce781a285bd3688a501a888d652dbd">01872</a> <span class="comment"> */</span>
<a name="l01873"></a>01873 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a90ce781a285bd3688a501a888d652dbd">me_penalty_compensation</a>;
<a name="l01874"></a>01874 <span class="comment"></span>
<a name="l01875"></a>01875 <span class="comment"> /**</span>
<a name="l01876"></a>01876 <span class="comment"> *</span>
<a name="l01877"></a>01877 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01878"></a>01878 <span class="comment"> * - decoding: unused</span>
<a name="l01879"></a><a class="code" href="structAVCodecContext.html#a4df462fdb6b38432ecfd37f30c1d082c">01879</a> <span class="comment"> */</span>
<a name="l01880"></a>01880 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a4df462fdb6b38432ecfd37f30c1d082c">bidir_refine</a>;
<a name="l01881"></a>01881 <span class="comment"></span>
<a name="l01882"></a>01882 <span class="comment"> /**</span>
<a name="l01883"></a>01883 <span class="comment"> *</span>
<a name="l01884"></a>01884 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01885"></a>01885 <span class="comment"> * - decoding: unused</span>
<a name="l01886"></a><a class="code" href="structAVCodecContext.html#a29c103eacc35d3d43c2022ac4ceb33a1">01886</a> <span class="comment"> */</span>
<a name="l01887"></a>01887 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a29c103eacc35d3d43c2022ac4ceb33a1">brd_scale</a>;
<a name="l01888"></a>01888 <span class="comment"></span>
<a name="l01889"></a>01889 <span class="comment"> /**</span>
<a name="l01890"></a>01890 <span class="comment"> * minimum GOP size</span>
<a name="l01891"></a>01891 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01892"></a>01892 <span class="comment"> * - decoding: unused</span>
<a name="l01893"></a><a class="code" href="structAVCodecContext.html#a3f920af17b8b15cc9d9465ecb732afcb">01893</a> <span class="comment"> */</span>
<a name="l01894"></a>01894 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3f920af17b8b15cc9d9465ecb732afcb" title="minimum GOP size">keyint_min</a>;
<a name="l01895"></a>01895 <span class="comment"></span>
<a name="l01896"></a>01896 <span class="comment"> /**</span>
<a name="l01897"></a>01897 <span class="comment"> * number of reference frames</span>
<a name="l01898"></a>01898 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01899"></a>01899 <span class="comment"> * - decoding: Set by lavc.</span>
<a name="l01900"></a><a class="code" href="structAVCodecContext.html#aa0cb7241b4624dba761c8cf58fb2d5f0">01900</a> <span class="comment"> */</span>
<a name="l01901"></a>01901 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aa0cb7241b4624dba761c8cf58fb2d5f0" title="number of reference frames">refs</a>;
<a name="l01902"></a>01902 <span class="comment"></span>
<a name="l01903"></a>01903 <span class="comment"> /**</span>
<a name="l01904"></a>01904 <span class="comment"> * chroma qp offset from luma</span>
<a name="l01905"></a>01905 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01906"></a>01906 <span class="comment"> * - decoding: unused</span>
<a name="l01907"></a><a class="code" href="structAVCodecContext.html#ad0648de462329a899457c04f539e3782">01907</a> <span class="comment"> */</span>
<a name="l01908"></a>01908 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ad0648de462329a899457c04f539e3782" title="chroma qp offset from luma">chromaoffset</a>;
<a name="l01909"></a>01909
<a name="l01910"></a>01910 <span class="preprocessor">#if FF_API_UNUSED_MEMBERS</span>
<a name="l01911"></a>01911 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l01912"></a>01912 <span class="comment"> * Multiplied by qscale for each frame and added to scene_change_score.</span>
<a name="l01913"></a>01913 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01914"></a>01914 <span class="comment"> * - decoding: unused</span>
<a name="l01915"></a><a class="code" href="structAVCodecContext.html#a7ae3033020a173f3c5f6cd608caf9ff3">01915</a> <span class="comment"> */</span>
<a name="l01916"></a>01916 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7ae3033020a173f3c5f6cd608caf9ff3" title="Multiplied by qscale for each frame and added to scene_change_score.">scenechange_factor</a>;
<a name="l01917"></a>01917 <span class="preprocessor">#endif</span>
<a name="l01918"></a>01918 <span class="preprocessor"></span><span class="comment"></span>
<a name="l01919"></a>01919 <span class="comment"> /**</span>
<a name="l01920"></a>01920 <span class="comment"> *</span>
<a name="l01921"></a>01921 <span class="comment"> * Note: Value depends upon the compare function used for fullpel ME.</span>
<a name="l01922"></a>01922 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01923"></a>01923 <span class="comment"> * - decoding: unused</span>
<a name="l01924"></a><a class="code" href="structAVCodecContext.html#aa1f666a5ac597e723e0b64aad4133a02">01924</a> <span class="comment"> */</span>
<a name="l01925"></a>01925 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aa1f666a5ac597e723e0b64aad4133a02" title="Note: Value depends upon the compare function used for fullpel ME.">mv0_threshold</a>;
<a name="l01926"></a>01926 <span class="comment"></span>
<a name="l01927"></a>01927 <span class="comment"> /**</span>
<a name="l01928"></a>01928 <span class="comment"> * Adjust sensitivity of b_frame_strategy 1.</span>
<a name="l01929"></a>01929 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01930"></a>01930 <span class="comment"> * - decoding: unused</span>
<a name="l01931"></a><a class="code" href="structAVCodecContext.html#ab061daa4576c7c17288a9aac7ee8d69b">01931</a> <span class="comment"> */</span>
<a name="l01932"></a>01932 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ab061daa4576c7c17288a9aac7ee8d69b" title="Adjust sensitivity of b_frame_strategy 1.">b_sensitivity</a>;
<a name="l01933"></a>01933 <span class="comment"></span>
<a name="l01934"></a>01934 <span class="comment"> /**</span>
<a name="l01935"></a>01935 <span class="comment"> * Chromaticity coordinates of the source primaries.</span>
<a name="l01936"></a>01936 <span class="comment"> * - encoding: Set by user</span>
<a name="l01937"></a>01937 <span class="comment"> * - decoding: Set by libavcodec</span>
<a name="l01938"></a><a class="code" href="structAVCodecContext.html#a3a41b3e5bde23b877799f6e72dac8ef3">01938</a> <span class="comment"> */</span>
<a name="l01939"></a>01939 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#ad384ee5a840bafd73daef08e6d9cafe7" title="Chromaticity coordinates of the source primaries.">AVColorPrimaries</a> <a class="code" href="structAVCodecContext.html#a3a41b3e5bde23b877799f6e72dac8ef3" title="Chromaticity coordinates of the source primaries.">color_primaries</a>;
<a name="l01940"></a>01940 <span class="comment"></span>
<a name="l01941"></a>01941 <span class="comment"> /**</span>
<a name="l01942"></a>01942 <span class="comment"> * Color Transfer Characteristic.</span>
<a name="l01943"></a>01943 <span class="comment"> * - encoding: Set by user</span>
<a name="l01944"></a>01944 <span class="comment"> * - decoding: Set by libavcodec</span>
<a name="l01945"></a><a class="code" href="structAVCodecContext.html#ab649e8c599f5a0e2a30448e67a36deb6">01945</a> <span class="comment"> */</span>
<a name="l01946"></a>01946 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#ad4791ea14975f098b649db7fcd731ce6" title="Color Transfer Characteristic.">AVColorTransferCharacteristic</a> <a class="code" href="structAVCodecContext.html#ab649e8c599f5a0e2a30448e67a36deb6" title="Color Transfer Characteristic.">color_trc</a>;
<a name="l01947"></a>01947 <span class="comment"></span>
<a name="l01948"></a>01948 <span class="comment"> /**</span>
<a name="l01949"></a>01949 <span class="comment"> * YUV colorspace type.</span>
<a name="l01950"></a>01950 <span class="comment"> * - encoding: Set by user</span>
<a name="l01951"></a>01951 <span class="comment"> * - decoding: Set by libavcodec</span>
<a name="l01952"></a><a class="code" href="structAVCodecContext.html#a8cd8caa7d40319324ce3d879a2edbd9f">01952</a> <span class="comment"> */</span>
<a name="l01953"></a>01953 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#aff71a069509a1ad3ff54d53a1c894c85" title="YUV colorspace type.">AVColorSpace</a> <a class="code" href="structAVCodecContext.html#a8cd8caa7d40319324ce3d879a2edbd9f" title="YUV colorspace type.">colorspace</a>;
<a name="l01954"></a>01954 <span class="comment"></span>
<a name="l01955"></a>01955 <span class="comment"> /**</span>
<a name="l01956"></a>01956 <span class="comment"> * MPEG vs JPEG YUV range.</span>
<a name="l01957"></a>01957 <span class="comment"> * - encoding: Set by user</span>
<a name="l01958"></a>01958 <span class="comment"> * - decoding: Set by libavcodec</span>
<a name="l01959"></a><a class="code" href="structAVCodecContext.html#a255bf7100a4ba6dcb6ee5d87740a4f35">01959</a> <span class="comment"> */</span>
<a name="l01960"></a>01960 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a3da0bf691418bc22c4bcbe6583ad589a" title="MPEG vs JPEG YUV range.">AVColorRange</a> <a class="code" href="structAVCodecContext.html#a255bf7100a4ba6dcb6ee5d87740a4f35" title="MPEG vs JPEG YUV range.">color_range</a>;
<a name="l01961"></a>01961 <span class="comment"></span>
<a name="l01962"></a>01962 <span class="comment"> /**</span>
<a name="l01963"></a>01963 <span class="comment"> * This defines the location of chroma samples.</span>
<a name="l01964"></a>01964 <span class="comment"> * - encoding: Set by user</span>
<a name="l01965"></a>01965 <span class="comment"> * - decoding: Set by libavcodec</span>
<a name="l01966"></a><a class="code" href="structAVCodecContext.html#ac60a0209642b5d74068cab0ac35a78b2">01966</a> <span class="comment"> */</span>
<a name="l01967"></a>01967 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a1f86ed1b6a420faccacf77c98db6c1ff" title="Location of chroma samples.">AVChromaLocation</a> <a class="code" href="structAVCodecContext.html#ac60a0209642b5d74068cab0ac35a78b2" title="This defines the location of chroma samples.">chroma_sample_location</a>;
<a name="l01968"></a>01968 <span class="comment"></span>
<a name="l01969"></a>01969 <span class="comment"> /**</span>
<a name="l01970"></a>01970 <span class="comment"> * Number of slices.</span>
<a name="l01971"></a>01971 <span class="comment"> * Indicates number of picture subdivisions. Used for parallelized</span>
<a name="l01972"></a>01972 <span class="comment"> * decoding.</span>
<a name="l01973"></a>01973 <span class="comment"> * - encoding: Set by user</span>
<a name="l01974"></a>01974 <span class="comment"> * - decoding: unused</span>
<a name="l01975"></a><a class="code" href="structAVCodecContext.html#aff4e6a78c0f08be43879644632e04b24">01975</a> <span class="comment"> */</span>
<a name="l01976"></a>01976 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aff4e6a78c0f08be43879644632e04b24" title="Number of slices.">slices</a>;
<a name="l01977"></a>01977 <span class="comment"></span>
<a name="l01978"></a>01978 <span class="comment"> /** Field order</span>
<a name="l01979"></a>01979 <span class="comment"> * - encoding: set by libavcodec</span>
<a name="l01980"></a>01980 <span class="comment"> * - decoding: Set by user.</span>
<a name="l01981"></a><a class="code" href="structAVCodecContext.html#a5d222eeeb0b54ab462af363bcb9273bc">01981</a> <span class="comment"> */</span>
<a name="l01982"></a>01982 <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#ga957ef25581a6b3c98589817b1cbed02c">AVFieldOrder</a> <a class="code" href="structAVCodecContext.html#a5d222eeeb0b54ab462af363bcb9273bc" title="Field order.">field_order</a>;
<a name="l01983"></a>01983
<a name="l01984"></a><a class="code" href="structAVCodecContext.html#a8ff0b000c463361e234af48d03aadfc0">01984</a> <span class="comment">/* audio only */</span>
<a name="l01985"></a><a class="code" href="structAVCodecContext.html#ac1e6c2cd1269caa7570575725c682a49">01985</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a8ff0b000c463361e234af48d03aadfc0" title="samples per second">sample_rate</a>; <span class="comment">///< samples per second</span>
<a name="l01986"></a>01986 <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ac1e6c2cd1269caa7570575725c682a49" title="number of audio channels">channels</a>; <span class="comment">///< number of audio channels</span>
<a name="l01987"></a>01987 <span class="comment"></span><span class="comment"></span>
<a name="l01988"></a>01988 <span class="comment"> /**</span>
<a name="l01989"></a>01989 <span class="comment"> * audio sample format</span>
<a name="l01990"></a>01990 <span class="comment"> * - encoding: Set by user.</span>
<a name="l01991"></a>01991 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l01992"></a><a class="code" href="structAVCodecContext.html#a1bdba69ea111e2a9d03fdaa7a46a4c45">01992</a> <span class="comment"> */</span>
<a name="l01993"></a>01993 <span class="keyword">enum</span> <a class="code" href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5" title="Audio sample formats.">AVSampleFormat</a> <a class="code" href="structAVCodecContext.html#a1bdba69ea111e2a9d03fdaa7a46a4c45" title="audio sample format">sample_fmt</a>; <span class="comment">///< sample format</span>
<a name="l01994"></a>01994 <span class="comment"></span>
<a name="l01995"></a>01995 <span class="comment">/* The following data should not be initialized. */</span><span class="comment"></span>
<a name="l01996"></a>01996 <span class="comment"> /**</span>
<a name="l01997"></a>01997 <span class="comment"> * Number of samples per channel in an audio frame.</span>
<a name="l01998"></a>01998 <span class="comment"> *</span>
<a name="l01999"></a>01999 <span class="comment"> * - encoding: set by libavcodec in avcodec_open2(). Each submitted frame</span>
<a name="l02000"></a>02000 <span class="comment"> * except the last must contain exactly frame_size samples per channel.</span>
<a name="l02001"></a>02001 <span class="comment"> * May be 0 when the codec has CODEC_CAP_VARIABLE_FRAME_SIZE set, then the</span>
<a name="l02002"></a>02002 <span class="comment"> * frame size is not restricted.</span>
<a name="l02003"></a>02003 <span class="comment"> * - decoding: may be set by some decoders to indicate constant frame size</span>
<a name="l02004"></a><a class="code" href="structAVCodecContext.html#aec57f0d859a6df8b479cd93ca3a44a33">02004</a> <span class="comment"> */</span>
<a name="l02005"></a>02005 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aec57f0d859a6df8b479cd93ca3a44a33" title="Number of samples per channel in an audio frame.">frame_size</a>;
<a name="l02006"></a>02006 <span class="comment"></span>
<a name="l02007"></a>02007 <span class="comment"> /**</span>
<a name="l02008"></a>02008 <span class="comment"> * Frame counter, set by libavcodec.</span>
<a name="l02009"></a>02009 <span class="comment"> *</span>
<a name="l02010"></a>02010 <span class="comment"> * - decoding: total number of frames returned from the decoder so far.</span>
<a name="l02011"></a>02011 <span class="comment"> * - encoding: total number of frames passed to the encoder so far.</span>
<a name="l02012"></a>02012 <span class="comment"> *</span>
<a name="l02013"></a>02013 <span class="comment"> * @note the counter is not incremented if encoding/decoding resulted in</span>
<a name="l02014"></a>02014 <span class="comment"> * an error.</span>
<a name="l02015"></a><a class="code" href="structAVCodecContext.html#a9e5a25a530d01c04491216c368a1a04a">02015</a> <span class="comment"> */</span>
<a name="l02016"></a>02016 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a9e5a25a530d01c04491216c368a1a04a" title="Frame counter, set by libavcodec.">frame_number</a>;
<a name="l02017"></a>02017 <span class="comment"></span>
<a name="l02018"></a>02018 <span class="comment"> /**</span>
<a name="l02019"></a>02019 <span class="comment"> * number of bytes per packet if constant and known or 0</span>
<a name="l02020"></a>02020 <span class="comment"> * Used by some WAV based audio codecs.</span>
<a name="l02021"></a><a class="code" href="structAVCodecContext.html#ae56433cc80666ff63af59db4de5b5e45">02021</a> <span class="comment"> */</span>
<a name="l02022"></a>02022 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae56433cc80666ff63af59db4de5b5e45" title="number of bytes per packet if constant and known or 0 Used by some WAV based audio codecs...">block_align</a>;
<a name="l02023"></a>02023 <span class="comment"></span>
<a name="l02024"></a>02024 <span class="comment"> /**</span>
<a name="l02025"></a>02025 <span class="comment"> * Audio cutoff bandwidth (0 means "automatic")</span>
<a name="l02026"></a>02026 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02027"></a>02027 <span class="comment"> * - decoding: unused</span>
<a name="l02028"></a><a class="code" href="structAVCodecContext.html#ae2cc92cf09edd8fdf95018bf5e08b910">02028</a> <span class="comment"> */</span>
<a name="l02029"></a>02029 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae2cc92cf09edd8fdf95018bf5e08b910" title="Audio cutoff bandwidth (0 means "automatic")">cutoff</a>;
<a name="l02030"></a>02030
<a name="l02031"></a>02031 <span class="preprocessor">#if FF_API_REQUEST_CHANNELS</span>
<a name="l02032"></a>02032 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02033"></a>02033 <span class="comment"> * Decoder should decode to this many channels if it can (0 for default)</span>
<a name="l02034"></a>02034 <span class="comment"> * - encoding: unused</span>
<a name="l02035"></a>02035 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02036"></a>02036 <span class="comment"> * @deprecated Deprecated in favor of request_channel_layout.</span>
<a name="l02037"></a><a class="code" href="structAVCodecContext.html#a5ad41beeb47aeedd84d1e81dc2ad40e2">02037</a> <span class="comment"> */</span>
<a name="l02038"></a>02038 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5ad41beeb47aeedd84d1e81dc2ad40e2" title="Decoder should decode to this many channels if it can (0 for default)">request_channels</a>;
<a name="l02039"></a>02039 <span class="preprocessor">#endif</span>
<a name="l02040"></a>02040 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02041"></a>02041 <span class="comment"> /**</span>
<a name="l02042"></a>02042 <span class="comment"> * Audio channel layout.</span>
<a name="l02043"></a>02043 <span class="comment"> * - encoding: set by user.</span>
<a name="l02044"></a>02044 <span class="comment"> * - decoding: set by user, may be overwritten by libavcodec.</span>
<a name="l02045"></a><a class="code" href="structAVCodecContext.html#aeb08c575a79eb84fc4155dda88f46c06">02045</a> <span class="comment"> */</span>
<a name="l02046"></a>02046 uint64_t <a class="code" href="structAVCodecContext.html#aeb08c575a79eb84fc4155dda88f46c06" title="Audio channel layout.">channel_layout</a>;
<a name="l02047"></a>02047 <span class="comment"></span>
<a name="l02048"></a>02048 <span class="comment"> /**</span>
<a name="l02049"></a>02049 <span class="comment"> * Request decoder to use this channel layout if it can (0 for default)</span>
<a name="l02050"></a>02050 <span class="comment"> * - encoding: unused</span>
<a name="l02051"></a>02051 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02052"></a><a class="code" href="structAVCodecContext.html#a9c02c458deaa58cc603da038b6acab1b">02052</a> <span class="comment"> */</span>
<a name="l02053"></a>02053 uint64_t <a class="code" href="structAVCodecContext.html#a9c02c458deaa58cc603da038b6acab1b" title="Request decoder to use this channel layout if it can (0 for default)">request_channel_layout</a>;
<a name="l02054"></a>02054 <span class="comment"></span>
<a name="l02055"></a>02055 <span class="comment"> /**</span>
<a name="l02056"></a>02056 <span class="comment"> * Type of service that the audio stream conveys.</span>
<a name="l02057"></a>02057 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02058"></a>02058 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l02059"></a><a class="code" href="structAVCodecContext.html#a37e07891360937493c8ece702a09e0d6">02059</a> <span class="comment"> */</span>
<a name="l02060"></a>02060 <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gadcff0a5957a99f6fdf1eec9d5a3fdfaf">AVAudioServiceType</a> <a class="code" href="structAVCodecContext.html#a37e07891360937493c8ece702a09e0d6" title="Type of service that the audio stream conveys.">audio_service_type</a>;
<a name="l02061"></a>02061 <span class="comment"></span>
<a name="l02062"></a>02062 <span class="comment"> /**</span>
<a name="l02063"></a>02063 <span class="comment"> * desired sample format</span>
<a name="l02064"></a>02064 <span class="comment"> * - encoding: Not used.</span>
<a name="l02065"></a>02065 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02066"></a>02066 <span class="comment"> * Decoder will decode to this format if it can.</span>
<a name="l02067"></a><a class="code" href="structAVCodecContext.html#a8f43cf7ebfe15119e93fa757572f4601">02067</a> <span class="comment"> */</span>
<a name="l02068"></a>02068 <span class="keyword">enum</span> <a class="code" href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5" title="Audio sample formats.">AVSampleFormat</a> <a class="code" href="structAVCodecContext.html#a8f43cf7ebfe15119e93fa757572f4601" title="desired sample format">request_sample_fmt</a>;
<a name="l02069"></a>02069
<a name="l02070"></a>02070 <span class="preprocessor">#if FF_API_GET_BUFFER</span>
<a name="l02071"></a>02071 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02072"></a>02072 <span class="comment"> * Called at the beginning of each frame to get a buffer for it.</span>
<a name="l02073"></a>02073 <span class="comment"> *</span>
<a name="l02074"></a>02074 <span class="comment"> * The function will set AVFrame.data[], AVFrame.linesize[].</span>
<a name="l02075"></a>02075 <span class="comment"> * AVFrame.extended_data[] must also be set, but it should be the same as</span>
<a name="l02076"></a>02076 <span class="comment"> * AVFrame.data[] except for planar audio with more channels than can fit</span>
<a name="l02077"></a>02077 <span class="comment"> * in AVFrame.data[]. In that case, AVFrame.data[] shall still contain as</span>
<a name="l02078"></a>02078 <span class="comment"> * many data pointers as it can hold.</span>
<a name="l02079"></a>02079 <span class="comment"> *</span>
<a name="l02080"></a>02080 <span class="comment"> * if CODEC_CAP_DR1 is not set then get_buffer() must call</span>
<a name="l02081"></a>02081 <span class="comment"> * avcodec_default_get_buffer() instead of providing buffers allocated by</span>
<a name="l02082"></a>02082 <span class="comment"> * some other means.</span>
<a name="l02083"></a>02083 <span class="comment"> *</span>
<a name="l02084"></a>02084 <span class="comment"> * AVFrame.data[] should be 32- or 16-byte-aligned unless the CPU doesn't</span>
<a name="l02085"></a>02085 <span class="comment"> * need it. avcodec_default_get_buffer() aligns the output buffer properly,</span>
<a name="l02086"></a>02086 <span class="comment"> * but if get_buffer() is overridden then alignment considerations should</span>
<a name="l02087"></a>02087 <span class="comment"> * be taken into account.</span>
<a name="l02088"></a>02088 <span class="comment"> *</span>
<a name="l02089"></a>02089 <span class="comment"> * @see avcodec_default_get_buffer()</span>
<a name="l02090"></a>02090 <span class="comment"> *</span>
<a name="l02091"></a>02091 <span class="comment"> * Video:</span>
<a name="l02092"></a>02092 <span class="comment"> *</span>
<a name="l02093"></a>02093 <span class="comment"> * If pic.reference is set then the frame will be read later by libavcodec.</span>
<a name="l02094"></a>02094 <span class="comment"> * avcodec_align_dimensions2() should be used to find the required width and</span>
<a name="l02095"></a>02095 <span class="comment"> * height, as they normally need to be rounded up to the next multiple of 16.</span>
<a name="l02096"></a>02096 <span class="comment"> *</span>
<a name="l02097"></a>02097 <span class="comment"> * If frame multithreading is used and thread_safe_callbacks is set,</span>
<a name="l02098"></a>02098 <span class="comment"> * it may be called from a different thread, but not from more than one at</span>
<a name="l02099"></a>02099 <span class="comment"> * once. Does not need to be reentrant.</span>
<a name="l02100"></a>02100 <span class="comment"> *</span>
<a name="l02101"></a>02101 <span class="comment"> * @see release_buffer(), reget_buffer()</span>
<a name="l02102"></a>02102 <span class="comment"> * @see avcodec_align_dimensions2()</span>
<a name="l02103"></a>02103 <span class="comment"> *</span>
<a name="l02104"></a>02104 <span class="comment"> * Audio:</span>
<a name="l02105"></a>02105 <span class="comment"> *</span>
<a name="l02106"></a>02106 <span class="comment"> * Decoders request a buffer of a particular size by setting</span>
<a name="l02107"></a>02107 <span class="comment"> * AVFrame.nb_samples prior to calling get_buffer(). The decoder may,</span>
<a name="l02108"></a>02108 <span class="comment"> * however, utilize only part of the buffer by setting AVFrame.nb_samples</span>
<a name="l02109"></a>02109 <span class="comment"> * to a smaller value in the output frame.</span>
<a name="l02110"></a>02110 <span class="comment"> *</span>
<a name="l02111"></a>02111 <span class="comment"> * Decoders cannot use the buffer after returning from</span>
<a name="l02112"></a>02112 <span class="comment"> * avcodec_decode_audio4(), so they will not call release_buffer(), as it</span>
<a name="l02113"></a>02113 <span class="comment"> * is assumed to be released immediately upon return. In some rare cases,</span>
<a name="l02114"></a>02114 <span class="comment"> * a decoder may need to call get_buffer() more than once in a single</span>
<a name="l02115"></a>02115 <span class="comment"> * call to avcodec_decode_audio4(). In that case, when get_buffer() is</span>
<a name="l02116"></a>02116 <span class="comment"> * called again after it has already been called once, the previously</span>
<a name="l02117"></a>02117 <span class="comment"> * acquired buffer is assumed to be released at that time and may not be</span>
<a name="l02118"></a>02118 <span class="comment"> * reused by the decoder.</span>
<a name="l02119"></a>02119 <span class="comment"> *</span>
<a name="l02120"></a>02120 <span class="comment"> * As a convenience, av_samples_get_buffer_size() and</span>
<a name="l02121"></a>02121 <span class="comment"> * av_samples_fill_arrays() in libavutil may be used by custom get_buffer()</span>
<a name="l02122"></a>02122 <span class="comment"> * functions to find the required data size and to fill data pointers and</span>
<a name="l02123"></a>02123 <span class="comment"> * linesize. In AVFrame.linesize, only linesize[0] may be set for audio</span>
<a name="l02124"></a>02124 <span class="comment"> * since all planes must be the same size.</span>
<a name="l02125"></a>02125 <span class="comment"> *</span>
<a name="l02126"></a>02126 <span class="comment"> * @see av_samples_get_buffer_size(), av_samples_fill_arrays()</span>
<a name="l02127"></a>02127 <span class="comment"> *</span>
<a name="l02128"></a>02128 <span class="comment"> * - encoding: unused</span>
<a name="l02129"></a>02129 <span class="comment"> * - decoding: Set by libavcodec, user can override.</span>
<a name="l02130"></a>02130 <span class="comment"> *</span>
<a name="l02131"></a>02131 <span class="comment"> * @deprecated use get_buffer2()</span>
<a name="l02132"></a>02132 <span class="comment"> */</span>
<a name="l02133"></a><a class="code" href="structAVCodecContext.html#ad2a02f9d24723a62e30a3cfecdb7c2c5">02133</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02134"></a>02134 int (*<a class="code" href="structAVCodecContext.html#ad2a02f9d24723a62e30a3cfecdb7c2c5" title="Called at the beginning of each frame to get a buffer for it.">get_buffer</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *pic);
<a name="l02135"></a>02135 <span class="comment"></span>
<a name="l02136"></a>02136 <span class="comment"> /**</span>
<a name="l02137"></a>02137 <span class="comment"> * Called to release buffers which were allocated with get_buffer.</span>
<a name="l02138"></a>02138 <span class="comment"> * A released buffer can be reused in get_buffer().</span>
<a name="l02139"></a>02139 <span class="comment"> * pic.data[*] must be set to NULL.</span>
<a name="l02140"></a>02140 <span class="comment"> * May be called from a different thread if frame multithreading is used,</span>
<a name="l02141"></a>02141 <span class="comment"> * but not by more than one thread at once, so does not need to be reentrant.</span>
<a name="l02142"></a>02142 <span class="comment"> * - encoding: unused</span>
<a name="l02143"></a>02143 <span class="comment"> * - decoding: Set by libavcodec, user can override.</span>
<a name="l02144"></a>02144 <span class="comment"> *</span>
<a name="l02145"></a>02145 <span class="comment"> * @deprecated custom freeing callbacks should be set from get_buffer2()</span>
<a name="l02146"></a>02146 <span class="comment"> */</span>
<a name="l02147"></a><a class="code" href="structAVCodecContext.html#a8756e30ca5ccc941e6bbde8bcc546bdf">02147</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02148"></a>02148 void (*<a class="code" href="structAVCodecContext.html#a8756e30ca5ccc941e6bbde8bcc546bdf" title="Called to release buffers which were allocated with get_buffer.">release_buffer</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *pic);
<a name="l02149"></a>02149 <span class="comment"></span>
<a name="l02150"></a>02150 <span class="comment"> /**</span>
<a name="l02151"></a>02151 <span class="comment"> * Called at the beginning of a frame to get cr buffer for it.</span>
<a name="l02152"></a>02152 <span class="comment"> * Buffer type (size, hints) must be the same. libavcodec won't check it.</span>
<a name="l02153"></a>02153 <span class="comment"> * libavcodec will pass previous buffer in pic, function should return</span>
<a name="l02154"></a>02154 <span class="comment"> * same buffer or new buffer with old frame "painted" into it.</span>
<a name="l02155"></a>02155 <span class="comment"> * If pic.data[0] == NULL must behave like get_buffer().</span>
<a name="l02156"></a>02156 <span class="comment"> * if CODEC_CAP_DR1 is not set then reget_buffer() must call</span>
<a name="l02157"></a>02157 <span class="comment"> * avcodec_default_reget_buffer() instead of providing buffers allocated by</span>
<a name="l02158"></a>02158 <span class="comment"> * some other means.</span>
<a name="l02159"></a>02159 <span class="comment"> * - encoding: unused</span>
<a name="l02160"></a>02160 <span class="comment"> * - decoding: Set by libavcodec, user can override.</span>
<a name="l02161"></a>02161 <span class="comment"> */</span>
<a name="l02162"></a><a class="code" href="structAVCodecContext.html#a83befc5734f3907b96f86206e49b1f06">02162</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02163"></a>02163 int (*<a class="code" href="structAVCodecContext.html#a83befc5734f3907b96f86206e49b1f06" title="Called at the beginning of a frame to get cr buffer for it.">reget_buffer</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *pic);
<a name="l02164"></a>02164 <span class="preprocessor">#endif</span>
<a name="l02165"></a>02165 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02166"></a>02166 <span class="comment"> /**</span>
<a name="l02167"></a>02167 <span class="comment"> * This callback is called at the beginning of each frame to get data</span>
<a name="l02168"></a>02168 <span class="comment"> * buffer(s) for it. There may be one contiguous buffer for all the data or</span>
<a name="l02169"></a>02169 <span class="comment"> * there may be a buffer per each data plane or anything in between. What</span>
<a name="l02170"></a>02170 <span class="comment"> * this means is, you may set however many entries in buf[] you feel necessary.</span>
<a name="l02171"></a>02171 <span class="comment"> * Each buffer must be reference-counted using the AVBuffer API (see description</span>
<a name="l02172"></a>02172 <span class="comment"> * of buf[] below).</span>
<a name="l02173"></a>02173 <span class="comment"> *</span>
<a name="l02174"></a>02174 <span class="comment"> * The following fields will be set in the frame before this callback is</span>
<a name="l02175"></a>02175 <span class="comment"> * called:</span>
<a name="l02176"></a>02176 <span class="comment"> * - format</span>
<a name="l02177"></a>02177 <span class="comment"> * - width, height (video only)</span>
<a name="l02178"></a>02178 <span class="comment"> * - sample_rate, channel_layout, nb_samples (audio only)</span>
<a name="l02179"></a>02179 <span class="comment"> * Their values may differ from the corresponding values in</span>
<a name="l02180"></a>02180 <span class="comment"> * AVCodecContext. This callback must use the frame values, not the codec</span>
<a name="l02181"></a>02181 <span class="comment"> * context values, to calculate the required buffer size.</span>
<a name="l02182"></a>02182 <span class="comment"> *</span>
<a name="l02183"></a>02183 <span class="comment"> * This callback must fill the following fields in the frame:</span>
<a name="l02184"></a>02184 <span class="comment"> * - data[]</span>
<a name="l02185"></a>02185 <span class="comment"> * - linesize[]</span>
<a name="l02186"></a>02186 <span class="comment"> * - extended_data:</span>
<a name="l02187"></a>02187 <span class="comment"> * * if the data is planar audio with more than 8 channels, then this</span>
<a name="l02188"></a>02188 <span class="comment"> * callback must allocate and fill extended_data to contain all pointers</span>
<a name="l02189"></a>02189 <span class="comment"> * to all data planes. data[] must hold as many pointers as it can.</span>
<a name="l02190"></a>02190 <span class="comment"> * extended_data must be allocated with av_malloc() and will be freed in</span>
<a name="l02191"></a>02191 <span class="comment"> * av_frame_unref().</span>
<a name="l02192"></a>02192 <span class="comment"> * * otherwise exended_data must point to data</span>
<a name="l02193"></a>02193 <span class="comment"> * - buf[] must contain one or more pointers to AVBufferRef structures. Each of</span>
<a name="l02194"></a>02194 <span class="comment"> * the frame's data and extended_data pointers must be contained in these. That</span>
<a name="l02195"></a>02195 <span class="comment"> * is, one AVBufferRef for each allocated chunk of memory, not necessarily one</span>
<a name="l02196"></a>02196 <span class="comment"> * AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(),</span>
<a name="l02197"></a>02197 <span class="comment"> * and av_buffer_ref().</span>
<a name="l02198"></a>02198 <span class="comment"> * - extended_buf and nb_extended_buf must be allocated with av_malloc() by</span>
<a name="l02199"></a>02199 <span class="comment"> * this callback and filled with the extra buffers if there are more</span>
<a name="l02200"></a>02200 <span class="comment"> * buffers than buf[] can hold. extended_buf will be freed in</span>
<a name="l02201"></a>02201 <span class="comment"> * av_frame_unref().</span>
<a name="l02202"></a>02202 <span class="comment"> *</span>
<a name="l02203"></a>02203 <span class="comment"> * If CODEC_CAP_DR1 is not set then get_buffer2() must call</span>
<a name="l02204"></a>02204 <span class="comment"> * avcodec_default_get_buffer2() instead of providing buffers allocated by</span>
<a name="l02205"></a>02205 <span class="comment"> * some other means.</span>
<a name="l02206"></a>02206 <span class="comment"> *</span>
<a name="l02207"></a>02207 <span class="comment"> * Each data plane must be aligned to the maximum required by the target</span>
<a name="l02208"></a>02208 <span class="comment"> * CPU.</span>
<a name="l02209"></a>02209 <span class="comment"> *</span>
<a name="l02210"></a>02210 <span class="comment"> * @see avcodec_default_get_buffer2()</span>
<a name="l02211"></a>02211 <span class="comment"> *</span>
<a name="l02212"></a>02212 <span class="comment"> * Video:</span>
<a name="l02213"></a>02213 <span class="comment"> *</span>
<a name="l02214"></a>02214 <span class="comment"> * If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused</span>
<a name="l02215"></a>02215 <span class="comment"> * (read and/or written to if it is writable) later by libavcodec.</span>
<a name="l02216"></a>02216 <span class="comment"> *</span>
<a name="l02217"></a>02217 <span class="comment"> * avcodec_align_dimensions2() should be used to find the required width and</span>
<a name="l02218"></a>02218 <span class="comment"> * height, as they normally need to be rounded up to the next multiple of 16.</span>
<a name="l02219"></a>02219 <span class="comment"> *</span>
<a name="l02220"></a>02220 <span class="comment"> * Some decoders do not support linesizes changing between frames.</span>
<a name="l02221"></a>02221 <span class="comment"> *</span>
<a name="l02222"></a>02222 <span class="comment"> * If frame multithreading is used and thread_safe_callbacks is set,</span>
<a name="l02223"></a>02223 <span class="comment"> * this callback may be called from a different thread, but not from more</span>
<a name="l02224"></a>02224 <span class="comment"> * than one at once. Does not need to be reentrant.</span>
<a name="l02225"></a>02225 <span class="comment"> *</span>
<a name="l02226"></a>02226 <span class="comment"> * @see avcodec_align_dimensions2()</span>
<a name="l02227"></a>02227 <span class="comment"> *</span>
<a name="l02228"></a>02228 <span class="comment"> * Audio:</span>
<a name="l02229"></a>02229 <span class="comment"> *</span>
<a name="l02230"></a>02230 <span class="comment"> * Decoders request a buffer of a particular size by setting</span>
<a name="l02231"></a>02231 <span class="comment"> * AVFrame.nb_samples prior to calling get_buffer2(). The decoder may,</span>
<a name="l02232"></a>02232 <span class="comment"> * however, utilize only part of the buffer by setting AVFrame.nb_samples</span>
<a name="l02233"></a>02233 <span class="comment"> * to a smaller value in the output frame.</span>
<a name="l02234"></a>02234 <span class="comment"> *</span>
<a name="l02235"></a>02235 <span class="comment"> * As a convenience, av_samples_get_buffer_size() and</span>
<a name="l02236"></a>02236 <span class="comment"> * av_samples_fill_arrays() in libavutil may be used by custom get_buffer2()</span>
<a name="l02237"></a>02237 <span class="comment"> * functions to find the required data size and to fill data pointers and</span>
<a name="l02238"></a>02238 <span class="comment"> * linesize. In AVFrame.linesize, only linesize[0] may be set for audio</span>
<a name="l02239"></a>02239 <span class="comment"> * since all planes must be the same size.</span>
<a name="l02240"></a>02240 <span class="comment"> *</span>
<a name="l02241"></a>02241 <span class="comment"> * @see av_samples_get_buffer_size(), av_samples_fill_arrays()</span>
<a name="l02242"></a>02242 <span class="comment"> *</span>
<a name="l02243"></a>02243 <span class="comment"> * - encoding: unused</span>
<a name="l02244"></a>02244 <span class="comment"> * - decoding: Set by libavcodec, user can override.</span>
<a name="l02245"></a><a class="code" href="structAVCodecContext.html#a7c93198032a3a728b13cb7d7e637d295">02245</a> <span class="comment"> */</span>
<a name="l02246"></a>02246 int (*<a class="code" href="structAVCodecContext.html#a7c93198032a3a728b13cb7d7e637d295" title="This callback is called at the beginning of each frame to get data buffer(s) for it.">get_buffer2</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>, <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#abb01e291550fa3fb96188af4d494587e" title="CODEC_FLAG_*.">flags</a>);
<a name="l02247"></a>02247 <span class="comment"></span>
<a name="l02248"></a>02248 <span class="comment"> /**</span>
<a name="l02249"></a>02249 <span class="comment"> * If non-zero, the decoded audio and video frames returned from</span>
<a name="l02250"></a>02250 <span class="comment"> * avcodec_decode_video2() and avcodec_decode_audio4() are reference-counted</span>
<a name="l02251"></a>02251 <span class="comment"> * and are valid indefinitely. The caller must free them with</span>
<a name="l02252"></a>02252 <span class="comment"> * av_frame_unref() when they are not needed anymore.</span>
<a name="l02253"></a>02253 <span class="comment"> * Otherwise, the decoded frames must not be freed by the caller and are</span>
<a name="l02254"></a>02254 <span class="comment"> * only valid until the next decode call.</span>
<a name="l02255"></a>02255 <span class="comment"> *</span>
<a name="l02256"></a>02256 <span class="comment"> * - encoding: unused</span>
<a name="l02257"></a>02257 <span class="comment"> * - decoding: set by the caller before avcodec_open2().</span>
<a name="l02258"></a><a class="code" href="structAVCodecContext.html#ab16d1e0c729a7b63d918d5ec027ba064">02258</a> <span class="comment"> */</span>
<a name="l02259"></a>02259 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ab16d1e0c729a7b63d918d5ec027ba064" title="If non-zero, the decoded audio and video frames returned from avcodec_decode_video2() and avcodec_dec...">refcounted_frames</a>;
<a name="l02260"></a>02260
<a name="l02261"></a><a class="code" href="structAVCodecContext.html#acf47505d34bd4b5a9292268f9aed1faa">02261</a> <span class="comment">/* - encoding parameters */</span>
<a name="l02262"></a><a class="code" href="structAVCodecContext.html#acf7ff44bfb16c8f4da1e7c1567964074">02262</a> <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#acf47505d34bd4b5a9292268f9aed1faa" title="amount of qscale change between easy & hard scenes (0.0-1.0)">qcompress</a>; <span class="comment">///< amount of qscale change between easy & hard scenes (0.0-1.0)</span>
<a name="l02263"></a>02263 <span class="comment"></span> <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#acf7ff44bfb16c8f4da1e7c1567964074" title="amount of qscale smoothing over time (0.0-1.0)">qblur</a>; <span class="comment">///< amount of qscale smoothing over time (0.0-1.0)</span>
<a name="l02264"></a>02264 <span class="comment"></span><span class="comment"></span>
<a name="l02265"></a>02265 <span class="comment"> /**</span>
<a name="l02266"></a>02266 <span class="comment"> * minimum quantizer</span>
<a name="l02267"></a>02267 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02268"></a>02268 <span class="comment"> * - decoding: unused</span>
<a name="l02269"></a><a class="code" href="structAVCodecContext.html#a3f63bc9141e25bf7f1cda0cef7cd4a60">02269</a> <span class="comment"> */</span>
<a name="l02270"></a>02270 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3f63bc9141e25bf7f1cda0cef7cd4a60" title="minimum quantizer">qmin</a>;
<a name="l02271"></a>02271 <span class="comment"></span>
<a name="l02272"></a>02272 <span class="comment"> /**</span>
<a name="l02273"></a>02273 <span class="comment"> * maximum quantizer</span>
<a name="l02274"></a>02274 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02275"></a>02275 <span class="comment"> * - decoding: unused</span>
<a name="l02276"></a><a class="code" href="structAVCodecContext.html#ab015db3b7fcd227193a7c17283914187">02276</a> <span class="comment"> */</span>
<a name="l02277"></a>02277 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ab015db3b7fcd227193a7c17283914187" title="maximum quantizer">qmax</a>;
<a name="l02278"></a>02278 <span class="comment"></span>
<a name="l02279"></a>02279 <span class="comment"> /**</span>
<a name="l02280"></a>02280 <span class="comment"> * maximum quantizer difference between frames</span>
<a name="l02281"></a>02281 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02282"></a>02282 <span class="comment"> * - decoding: unused</span>
<a name="l02283"></a><a class="code" href="structAVCodecContext.html#a08becf306e0984857919f777c4c2ebdb">02283</a> <span class="comment"> */</span>
<a name="l02284"></a>02284 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a08becf306e0984857919f777c4c2ebdb" title="maximum quantizer difference between frames">max_qdiff</a>;
<a name="l02285"></a>02285
<a name="l02286"></a>02286 <span class="preprocessor">#if FF_API_MPV_OPT</span>
<a name="l02287"></a>02287 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02288"></a>02288 <span class="comment"> * @deprecated use encoder private options instead</span>
<a name="l02289"></a>02289 <span class="comment"> */</span>
<a name="l02290"></a><a class="code" href="structAVCodecContext.html#ae749af98eecf074e59c7a5afb402e76b">02290</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02291"></a>02291 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#ae749af98eecf074e59c7a5afb402e76b">rc_qsquish</a>;
<a name="l02292"></a>02292
<a name="l02293"></a><a class="code" href="structAVCodecContext.html#a2261c8b7c1c43d2af09a65e728936b5e">02293</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02294"></a>02294 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#a2261c8b7c1c43d2af09a65e728936b5e">rc_qmod_amp</a>;
<a name="l02295"></a><a class="code" href="structAVCodecContext.html#ab18562dc7fa12308597aac2b0faf85a0">02295</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02296"></a>02296 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ab18562dc7fa12308597aac2b0faf85a0">rc_qmod_freq</a>;
<a name="l02297"></a>02297 <span class="preprocessor">#endif</span>
<a name="l02298"></a>02298 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02299"></a>02299 <span class="comment"> /**</span>
<a name="l02300"></a>02300 <span class="comment"> * decoder bitstream buffer size</span>
<a name="l02301"></a>02301 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02302"></a>02302 <span class="comment"> * - decoding: unused</span>
<a name="l02303"></a><a class="code" href="structAVCodecContext.html#a15000607a7e2371162348bb35b0184c1">02303</a> <span class="comment"> */</span>
<a name="l02304"></a>02304 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a15000607a7e2371162348bb35b0184c1" title="decoder bitstream buffer size">rc_buffer_size</a>;
<a name="l02305"></a>02305 <span class="comment"></span>
<a name="l02306"></a>02306 <span class="comment"> /**</span>
<a name="l02307"></a>02307 <span class="comment"> * ratecontrol override, see RcOverride</span>
<a name="l02308"></a>02308 <span class="comment"> * - encoding: Allocated/set/freed by user.</span>
<a name="l02309"></a>02309 <span class="comment"> * - decoding: unused</span>
<a name="l02310"></a><a class="code" href="structAVCodecContext.html#a5491e9920ab3df5fc32aa6de0cb03c22">02310</a> <span class="comment"> */</span>
<a name="l02311"></a><a class="code" href="structAVCodecContext.html#adaabc10c6216da54ddf1aa454d64418c">02311</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5491e9920ab3df5fc32aa6de0cb03c22" title="ratecontrol override, see RcOverride">rc_override_count</a>;
<a name="l02312"></a>02312 <a class="code" href="structRcOverride.html">RcOverride</a> *<a class="code" href="structAVCodecContext.html#adaabc10c6216da54ddf1aa454d64418c">rc_override</a>;
<a name="l02313"></a>02313
<a name="l02314"></a>02314 <span class="preprocessor">#if FF_API_MPV_OPT</span>
<a name="l02315"></a>02315 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02316"></a>02316 <span class="comment"> * @deprecated use encoder private options instead</span>
<a name="l02317"></a>02317 <span class="comment"> */</span>
<a name="l02318"></a><a class="code" href="structAVCodecContext.html#ab011b2f885d8666a236f0e02291350cb">02318</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02319"></a>02319 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVCodecContext.html#ab011b2f885d8666a236f0e02291350cb">rc_eq</a>;
<a name="l02320"></a>02320 <span class="preprocessor">#endif</span>
<a name="l02321"></a>02321 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02322"></a>02322 <span class="comment"> /**</span>
<a name="l02323"></a>02323 <span class="comment"> * maximum bitrate</span>
<a name="l02324"></a>02324 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02325"></a>02325 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l02326"></a><a class="code" href="structAVCodecContext.html#a055dd5071b96565ab541d4c775e7f1f3">02326</a> <span class="comment"> */</span>
<a name="l02327"></a>02327 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a055dd5071b96565ab541d4c775e7f1f3" title="maximum bitrate">rc_max_rate</a>;
<a name="l02328"></a>02328 <span class="comment"></span>
<a name="l02329"></a>02329 <span class="comment"> /**</span>
<a name="l02330"></a>02330 <span class="comment"> * minimum bitrate</span>
<a name="l02331"></a>02331 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02332"></a>02332 <span class="comment"> * - decoding: unused</span>
<a name="l02333"></a><a class="code" href="structAVCodecContext.html#a5829c395fd6328c258379f2c3c11d40d">02333</a> <span class="comment"> */</span>
<a name="l02334"></a>02334 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5829c395fd6328c258379f2c3c11d40d" title="minimum bitrate">rc_min_rate</a>;
<a name="l02335"></a>02335
<a name="l02336"></a>02336 <span class="preprocessor">#if FF_API_MPV_OPT</span>
<a name="l02337"></a>02337 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02338"></a>02338 <span class="comment"> * @deprecated use encoder private options instead</span>
<a name="l02339"></a>02339 <span class="comment"> */</span>
<a name="l02340"></a><a class="code" href="structAVCodecContext.html#aaa478883ef0cb551d87564d638a7607d">02340</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02341"></a>02341 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#aaa478883ef0cb551d87564d638a7607d">rc_buffer_aggressivity</a>;
<a name="l02342"></a>02342
<a name="l02343"></a><a class="code" href="structAVCodecContext.html#abc6a323b6f5c068b24d214bcaf19bacd">02343</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02344"></a>02344 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#abc6a323b6f5c068b24d214bcaf19bacd">rc_initial_cplx</a>;
<a name="l02345"></a>02345 <span class="preprocessor">#endif</span>
<a name="l02346"></a>02346 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02347"></a>02347 <span class="comment"> /**</span>
<a name="l02348"></a>02348 <span class="comment"> * Ratecontrol attempt to use, at maximum, <value> of what can be used without an underflow.</span>
<a name="l02349"></a>02349 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02350"></a>02350 <span class="comment"> * - decoding: unused.</span>
<a name="l02351"></a><a class="code" href="structAVCodecContext.html#a023d28b8d65fe09ded1987cdea18dddb">02351</a> <span class="comment"> */</span>
<a name="l02352"></a>02352 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#a023d28b8d65fe09ded1987cdea18dddb" title="Ratecontrol attempt to use, at maximum, of what can be used without an underflow.">rc_max_available_vbv_use</a>;
<a name="l02353"></a>02353 <span class="comment"></span>
<a name="l02354"></a>02354 <span class="comment"> /**</span>
<a name="l02355"></a>02355 <span class="comment"> * Ratecontrol attempt to use, at least, <value> times the amount needed to prevent a vbv overflow.</span>
<a name="l02356"></a>02356 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02357"></a>02357 <span class="comment"> * - decoding: unused.</span>
<a name="l02358"></a><a class="code" href="structAVCodecContext.html#ab7380222079393197e5d6fdce042b2dd">02358</a> <span class="comment"> */</span>
<a name="l02359"></a>02359 <span class="keywordtype">float</span> <a class="code" href="structAVCodecContext.html#ab7380222079393197e5d6fdce042b2dd" title="Ratecontrol attempt to use, at least, times the amount needed to prevent a vbv overflow.">rc_min_vbv_overflow_use</a>;
<a name="l02360"></a>02360 <span class="comment"></span>
<a name="l02361"></a>02361 <span class="comment"> /**</span>
<a name="l02362"></a>02362 <span class="comment"> * Number of bits which should be loaded into the rc buffer before decoding starts.</span>
<a name="l02363"></a>02363 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02364"></a>02364 <span class="comment"> * - decoding: unused</span>
<a name="l02365"></a><a class="code" href="structAVCodecContext.html#a7546ebfa9e9ffede316576dced7e150c">02365</a> <span class="comment"> */</span>
<a name="l02366"></a>02366 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7546ebfa9e9ffede316576dced7e150c" title="Number of bits which should be loaded into the rc buffer before decoding starts.">rc_initial_buffer_occupancy</a>;
<a name="l02367"></a><a class="code" href="libavcodec_2avcodec_8h.html#aff1fc86fe470f71697b2feda22499431">02367</a>
<a name="l02368"></a><a class="code" href="libavcodec_2avcodec_8h.html#aef7dafa475debc01ce46477d086302b9">02368</a> <span class="preprocessor">#define FF_CODER_TYPE_VLC 0</span>
<a name="l02369"></a><a class="code" href="libavcodec_2avcodec_8h.html#a7379ea76740a29cb67d286842a49d7e6">02369</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CODER_TYPE_AC 1</span>
<a name="l02370"></a><a class="code" href="libavcodec_2avcodec_8h.html#a4a658020fcd9bcdfd8cd041e204cb1b6">02370</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_CODER_TYPE_RAW 2</span>
<a name="l02371"></a>02371 <span class="preprocessor"></span><span class="preprocessor">#define FF_CODER_TYPE_RLE 3</span>
<a name="l02372"></a><a class="code" href="libavcodec_2avcodec_8h.html#a8b9b05af2c972a8bec6223479224595e">02372</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_UNUSED_MEMBERS</span>
<a name="l02373"></a>02373 <span class="preprocessor"></span><span class="preprocessor">#define FF_CODER_TYPE_DEFLATE 4</span>
<a name="l02374"></a>02374 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* FF_API_UNUSED_MEMBERS */</span>
<a name="l02375"></a>02375 <span class="comment"> /**</span>
<a name="l02376"></a>02376 <span class="comment"> * coder type</span>
<a name="l02377"></a>02377 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02378"></a>02378 <span class="comment"> * - decoding: unused</span>
<a name="l02379"></a><a class="code" href="structAVCodecContext.html#ad5d81542c08bf97f64a59a028c319995">02379</a> <span class="comment"> */</span>
<a name="l02380"></a>02380 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ad5d81542c08bf97f64a59a028c319995" title="coder type">coder_type</a>;
<a name="l02381"></a>02381 <span class="comment"></span>
<a name="l02382"></a>02382 <span class="comment"> /**</span>
<a name="l02383"></a>02383 <span class="comment"> * context model</span>
<a name="l02384"></a>02384 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02385"></a>02385 <span class="comment"> * - decoding: unused</span>
<a name="l02386"></a><a class="code" href="structAVCodecContext.html#aac92b6deba952dc10e0b9ab0b6114fce">02386</a> <span class="comment"> */</span>
<a name="l02387"></a>02387 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aac92b6deba952dc10e0b9ab0b6114fce" title="context model">context_model</a>;
<a name="l02388"></a>02388
<a name="l02389"></a>02389 <span class="preprocessor">#if FF_API_MPV_OPT</span>
<a name="l02390"></a>02390 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02391"></a>02391 <span class="comment"> * @deprecated use encoder private options instead</span>
<a name="l02392"></a>02392 <span class="comment"> */</span>
<a name="l02393"></a><a class="code" href="structAVCodecContext.html#a71028092010585f091765cd5e51f4577">02393</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02394"></a>02394 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a71028092010585f091765cd5e51f4577">lmin</a>;
<a name="l02395"></a>02395 <span class="comment"></span>
<a name="l02396"></a>02396 <span class="comment"> /**</span>
<a name="l02397"></a>02397 <span class="comment"> * @deprecated use encoder private options instead</span>
<a name="l02398"></a>02398 <span class="comment"> */</span>
<a name="l02399"></a><a class="code" href="structAVCodecContext.html#a47a4e751b3102792a23cabeff3363c30">02399</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02400"></a>02400 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a47a4e751b3102792a23cabeff3363c30">lmax</a>;
<a name="l02401"></a>02401 <span class="preprocessor">#endif</span>
<a name="l02402"></a>02402 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02403"></a>02403 <span class="comment"> /**</span>
<a name="l02404"></a>02404 <span class="comment"> * frame skip threshold</span>
<a name="l02405"></a>02405 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02406"></a>02406 <span class="comment"> * - decoding: unused</span>
<a name="l02407"></a><a class="code" href="structAVCodecContext.html#a3dde2cdd14c9456ab2490e5c4d0ebf3b">02407</a> <span class="comment"> */</span>
<a name="l02408"></a>02408 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3dde2cdd14c9456ab2490e5c4d0ebf3b" title="frame skip threshold">frame_skip_threshold</a>;
<a name="l02409"></a>02409 <span class="comment"></span>
<a name="l02410"></a>02410 <span class="comment"> /**</span>
<a name="l02411"></a>02411 <span class="comment"> * frame skip factor</span>
<a name="l02412"></a>02412 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02413"></a>02413 <span class="comment"> * - decoding: unused</span>
<a name="l02414"></a><a class="code" href="structAVCodecContext.html#af872ceacd21fa053421c235e8d796085">02414</a> <span class="comment"> */</span>
<a name="l02415"></a>02415 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#af872ceacd21fa053421c235e8d796085" title="frame skip factor">frame_skip_factor</a>;
<a name="l02416"></a>02416 <span class="comment"></span>
<a name="l02417"></a>02417 <span class="comment"> /**</span>
<a name="l02418"></a>02418 <span class="comment"> * frame skip exponent</span>
<a name="l02419"></a>02419 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02420"></a>02420 <span class="comment"> * - decoding: unused</span>
<a name="l02421"></a><a class="code" href="structAVCodecContext.html#a3fd35c9a1dcd66e4b9e0f25c79806582">02421</a> <span class="comment"> */</span>
<a name="l02422"></a>02422 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3fd35c9a1dcd66e4b9e0f25c79806582" title="frame skip exponent">frame_skip_exp</a>;
<a name="l02423"></a>02423 <span class="comment"></span>
<a name="l02424"></a>02424 <span class="comment"> /**</span>
<a name="l02425"></a>02425 <span class="comment"> * frame skip comparison function</span>
<a name="l02426"></a>02426 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02427"></a>02427 <span class="comment"> * - decoding: unused</span>
<a name="l02428"></a><a class="code" href="structAVCodecContext.html#add38d9ccd0605790aaa87bf41d5e1a97">02428</a> <span class="comment"> */</span>
<a name="l02429"></a>02429 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#add38d9ccd0605790aaa87bf41d5e1a97" title="frame skip comparison function">frame_skip_cmp</a>;
<a name="l02430"></a>02430 <span class="comment"></span>
<a name="l02431"></a>02431 <span class="comment"> /**</span>
<a name="l02432"></a>02432 <span class="comment"> * trellis RD quantization</span>
<a name="l02433"></a>02433 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02434"></a>02434 <span class="comment"> * - decoding: unused</span>
<a name="l02435"></a><a class="code" href="structAVCodecContext.html#a025940af0d5249418d6ac7e183fdd40f">02435</a> <span class="comment"> */</span>
<a name="l02436"></a>02436 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a025940af0d5249418d6ac7e183fdd40f" title="trellis RD quantization">trellis</a>;
<a name="l02437"></a>02437 <span class="comment"></span>
<a name="l02438"></a>02438 <span class="comment"> /**</span>
<a name="l02439"></a>02439 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02440"></a>02440 <span class="comment"> * - decoding: unused</span>
<a name="l02441"></a><a class="code" href="structAVCodecContext.html#a924de0a448b906ea6de674a3982d575e">02441</a> <span class="comment"> */</span>
<a name="l02442"></a>02442 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a924de0a448b906ea6de674a3982d575e">min_prediction_order</a>;
<a name="l02443"></a>02443 <span class="comment"></span>
<a name="l02444"></a>02444 <span class="comment"> /**</span>
<a name="l02445"></a>02445 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02446"></a>02446 <span class="comment"> * - decoding: unused</span>
<a name="l02447"></a><a class="code" href="structAVCodecContext.html#ab4a9a4ed9ea37576945eb6ef00ab3365">02447</a> <span class="comment"> */</span>
<a name="l02448"></a>02448 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ab4a9a4ed9ea37576945eb6ef00ab3365">max_prediction_order</a>;
<a name="l02449"></a>02449 <span class="comment"></span>
<a name="l02450"></a>02450 <span class="comment"> /**</span>
<a name="l02451"></a>02451 <span class="comment"> * GOP timecode frame start number</span>
<a name="l02452"></a>02452 <span class="comment"> * - encoding: Set by user, in non drop frame format</span>
<a name="l02453"></a>02453 <span class="comment"> * - decoding: Set by libavcodec (timecode in the 25 bits format, -1 if unset)</span>
<a name="l02454"></a><a class="code" href="structAVCodecContext.html#a18c0dc7988a2d4ff291980001e0ceef9">02454</a> <span class="comment"> */</span>
<a name="l02455"></a>02455 int64_t <a class="code" href="structAVCodecContext.html#a18c0dc7988a2d4ff291980001e0ceef9" title="GOP timecode frame start number.">timecode_frame_start</a>;
<a name="l02456"></a>02456
<a name="l02457"></a>02457 <span class="comment">/* The RTP callback: This function is called */</span>
<a name="l02458"></a>02458 <span class="comment">/* every time the encoder has a packet to send. */</span>
<a name="l02459"></a>02459 <span class="comment">/* It depends on the encoder if the data starts */</span>
<a name="l02460"></a>02460 <span class="comment">/* with a Start Code (it should). H.263 does. */</span>
<a name="l02461"></a>02461 <span class="comment">/* mb_nb contains the number of macroblocks */</span>
<a name="l02462"></a><a class="code" href="structAVCodecContext.html#aa616d35fc4a7282680feb21b18258e51">02462</a> <span class="comment">/* encoded in the RTP payload. */</span>
<a name="l02463"></a>02463 void (*<a class="code" href="structAVCodecContext.html#aa616d35fc4a7282680feb21b18258e51">rtp_callback</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keywordtype">void</span> *data, <span class="keywordtype">int</span> size, <span class="keywordtype">int</span> mb_nb);
<a name="l02464"></a><a class="code" href="structAVCodecContext.html#a583019faf28da26e282be834cd9a7d8f">02464</a>
<a name="l02465"></a>02465 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a583019faf28da26e282be834cd9a7d8f">rtp_payload_size</a>; <span class="comment">/* The size of the RTP payload: the coder will */</span>
<a name="l02466"></a>02466 <span class="comment">/* do its best to deliver a chunk with size */</span>
<a name="l02467"></a>02467 <span class="comment">/* below rtp_payload_size, the chunk will start */</span>
<a name="l02468"></a>02468 <span class="comment">/* with a start code on some codecs like H.263. */</span>
<a name="l02469"></a>02469 <span class="comment">/* This doesn't take account of any particular */</span>
<a name="l02470"></a>02470 <span class="comment">/* headers inside the transmitted RTP payload. */</span>
<a name="l02471"></a>02471
<a name="l02472"></a><a class="code" href="structAVCodecContext.html#a746bd6985c9fa8763d7544c0041c66a9">02472</a> <span class="comment">/* statistics, used for 2-pass encoding */</span>
<a name="l02473"></a><a class="code" href="structAVCodecContext.html#af91d7a57d14f1cc5d5fc413755aea3f0">02473</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a746bd6985c9fa8763d7544c0041c66a9">mv_bits</a>;
<a name="l02474"></a><a class="code" href="structAVCodecContext.html#a6bc43abf810bfbc0c9a4fb17ca4b2ec1">02474</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#af91d7a57d14f1cc5d5fc413755aea3f0">header_bits</a>;
<a name="l02475"></a><a class="code" href="structAVCodecContext.html#a3afad86bb36a66785ba1da25ce557fb1">02475</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a6bc43abf810bfbc0c9a4fb17ca4b2ec1">i_tex_bits</a>;
<a name="l02476"></a><a class="code" href="structAVCodecContext.html#a2f29029c23a73b768eb77b792f6e6547">02476</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3afad86bb36a66785ba1da25ce557fb1">p_tex_bits</a>;
<a name="l02477"></a><a class="code" href="structAVCodecContext.html#ae9c7434aa338d941423b45034e2a7854">02477</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a2f29029c23a73b768eb77b792f6e6547">i_count</a>;
<a name="l02478"></a><a class="code" href="structAVCodecContext.html#a801dcbc834a3afae4b98053b56855a98">02478</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae9c7434aa338d941423b45034e2a7854">p_count</a>;
<a name="l02479"></a><a class="code" href="structAVCodecContext.html#ac1316f12a3e77a1e28044d537bb58cca">02479</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a801dcbc834a3afae4b98053b56855a98">skip_count</a>;
<a name="l02480"></a>02480 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ac1316f12a3e77a1e28044d537bb58cca">misc_bits</a>;
<a name="l02481"></a>02481 <span class="comment"></span>
<a name="l02482"></a>02482 <span class="comment"> /**</span>
<a name="l02483"></a>02483 <span class="comment"> * number of bits used for the previously encoded frame</span>
<a name="l02484"></a>02484 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l02485"></a>02485 <span class="comment"> * - decoding: unused</span>
<a name="l02486"></a><a class="code" href="structAVCodecContext.html#a9ffba99ce690996d839032cd3b0be299">02486</a> <span class="comment"> */</span>
<a name="l02487"></a>02487 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a9ffba99ce690996d839032cd3b0be299" title="number of bits used for the previously encoded frame">frame_bits</a>;
<a name="l02488"></a>02488 <span class="comment"></span>
<a name="l02489"></a>02489 <span class="comment"> /**</span>
<a name="l02490"></a>02490 <span class="comment"> * pass1 encoding statistics output buffer</span>
<a name="l02491"></a>02491 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l02492"></a>02492 <span class="comment"> * - decoding: unused</span>
<a name="l02493"></a><a class="code" href="structAVCodecContext.html#a0f5bec27a856369ac81ccc9784f52e86">02493</a> <span class="comment"> */</span>
<a name="l02494"></a>02494 <span class="keywordtype">char</span> *<a class="code" href="structAVCodecContext.html#a0f5bec27a856369ac81ccc9784f52e86" title="pass1 encoding statistics output buffer">stats_out</a>;
<a name="l02495"></a>02495 <span class="comment"></span>
<a name="l02496"></a>02496 <span class="comment"> /**</span>
<a name="l02497"></a>02497 <span class="comment"> * pass2 encoding statistics input buffer</span>
<a name="l02498"></a>02498 <span class="comment"> * Concatenated stuff from stats_out of pass1 should be placed here.</span>
<a name="l02499"></a>02499 <span class="comment"> * - encoding: Allocated/set/freed by user.</span>
<a name="l02500"></a>02500 <span class="comment"> * - decoding: unused</span>
<a name="l02501"></a><a class="code" href="structAVCodecContext.html#a4ee62148c5519301149f75e7296e84e1">02501</a> <span class="comment"> */</span>
<a name="l02502"></a>02502 <span class="keywordtype">char</span> *<a class="code" href="structAVCodecContext.html#a4ee62148c5519301149f75e7296e84e1" title="pass2 encoding statistics input buffer Concatenated stuff from stats_out of pass1 should be placed he...">stats_in</a>;
<a name="l02503"></a>02503 <span class="comment"></span>
<a name="l02504"></a>02504 <span class="comment"> /**</span>
<a name="l02505"></a>02505 <span class="comment"> * Work around bugs in encoders which sometimes cannot be detected automatically.</span>
<a name="l02506"></a>02506 <span class="comment"> * - encoding: Set by user</span>
<a name="l02507"></a>02507 <span class="comment"> * - decoding: Set by user</span>
<a name="l02508"></a><a class="code" href="structAVCodecContext.html#a4649a6454a0f784794b89afdc44da669">02508</a> <span class="comment"> */</span>
<a name="l02509"></a><a class="code" href="libavcodec_2avcodec_8h.html#a9c96cf51e2d90a0d95cfff3955fa1fbb">02509</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a4649a6454a0f784794b89afdc44da669" title="Work around bugs in encoders which sometimes cannot be detected automatically.">workaround_bugs</a>;
<a name="l02510"></a>02510 <span class="preprocessor">#define FF_BUG_AUTODETECT 1 ///< autodetection</span>
<a name="l02511"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab00a47ee0f56303f1534f8f0c0c923e3">02511</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_OLD_MSMPEG4</span>
<a name="l02512"></a>02512 <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_OLD_MSMPEG4 2</span>
<a name="l02513"></a><a class="code" href="libavcodec_2avcodec_8h.html#a1c203bbc031e7a8d622b4e002da815c1">02513</a> <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l02514"></a><a class="code" href="libavcodec_2avcodec_8h.html#a8652c8432575eae520fda2ec9bb2790c">02514</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_XVID_ILACE 4</span>
<a name="l02515"></a><a class="code" href="libavcodec_2avcodec_8h.html#aee63f56558e89c35a7d6747b476ef1e2">02515</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_UMP4 8</span>
<a name="l02516"></a><a class="code" href="libavcodec_2avcodec_8h.html#a602672eb5406d3cfafb16a9eccf90632">02516</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_NO_PADDING 16</span>
<a name="l02517"></a>02517 <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_AMV 32</span>
<a name="l02518"></a><a class="code" href="libavcodec_2avcodec_8h.html#a862db84fc491ba509fbbbba76a881517">02518</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_AC_VLC</span>
<a name="l02519"></a>02519 <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_AC_VLC 0 ///< Will be removed, libavcodec can now handle these non-compliant files by default.</span>
<a name="l02520"></a><a class="code" href="libavcodec_2avcodec_8h.html#af566afeadf0c6ef3571ba0cf99ca9e13">02520</a> <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l02521"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae0009d2c60992caf6a6ce0bde394991f">02521</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_QPEL_CHROMA 64</span>
<a name="l02522"></a><a class="code" href="libavcodec_2avcodec_8h.html#a48213a8e7c5bbb121e42aaeab3e406e7">02522</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_STD_QPEL 128</span>
<a name="l02523"></a><a class="code" href="libavcodec_2avcodec_8h.html#a59eae4ab7a237c0719324c5d8b5c8d2d">02523</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_QPEL_CHROMA2 256</span>
<a name="l02524"></a><a class="code" href="libavcodec_2avcodec_8h.html#a06f82c0c9613ce77d918cb812445e837">02524</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_DIRECT_BLOCKSIZE 512</span>
<a name="l02525"></a><a class="code" href="libavcodec_2avcodec_8h.html#a26265fbaec04614a2c67daf31c894754">02525</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_EDGE 1024</span>
<a name="l02526"></a><a class="code" href="libavcodec_2avcodec_8h.html#a25014ac1ac2aeeab6d8fc9855b7899cb">02526</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_HPEL_CHROMA 2048</span>
<a name="l02527"></a><a class="code" href="libavcodec_2avcodec_8h.html#a25cec8cef30d72dde57cefb20c778b68">02527</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_DC_CLIP 4096</span>
<a name="l02528"></a><a class="code" href="libavcodec_2avcodec_8h.html#a9cc7522439883f6ff0787386119678b7">02528</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_MS 8192 ///< Work around various bugs in Microsoft's broken decoders.</span>
<a name="l02529"></a>02529 <span class="preprocessor"></span><span class="preprocessor">#define FF_BUG_TRUNCATED 16384</span>
<a name="l02530"></a>02530 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02531"></a>02531 <span class="comment"> /**</span>
<a name="l02532"></a>02532 <span class="comment"> * strictly follow the standard (MPEG4, ...).</span>
<a name="l02533"></a>02533 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02534"></a>02534 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02535"></a>02535 <span class="comment"> * Setting this to STRICT or higher means the encoder and decoder will</span>
<a name="l02536"></a>02536 <span class="comment"> * generally do stupid things, whereas setting it to unofficial or lower</span>
<a name="l02537"></a>02537 <span class="comment"> * will mean the encoder might produce output that is not supported by all</span>
<a name="l02538"></a>02538 <span class="comment"> * spec-compliant decoders. Decoders don't differentiate between normal,</span>
<a name="l02539"></a>02539 <span class="comment"> * unofficial and experimental (that is, they always try to decode things</span>
<a name="l02540"></a>02540 <span class="comment"> * when they can) unless they are explicitly asked to behave stupidly</span>
<a name="l02541"></a>02541 <span class="comment"> * (=strictly conform to the specs)</span>
<a name="l02542"></a><a class="code" href="structAVCodecContext.html#a3090804569341ca235e3adbdc03318d2">02542</a> <span class="comment"> */</span>
<a name="l02543"></a><a class="code" href="libavcodec_2avcodec_8h.html#a96808e3862c53c7edb4ace1b2f3e544f">02543</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a3090804569341ca235e3adbdc03318d2" title="strictly follow the standard (MPEG4, ...).">strict_std_compliance</a>;
<a name="l02544"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5c1eb24858b3a73d6bbe9585d30e971a">02544</a> <span class="preprocessor">#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software.</span>
<a name="l02545"></a><a class="code" href="libavcodec_2avcodec_8h.html#a661eaec472e284a3b2920647349471dd">02545</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences.</span>
<a name="l02546"></a><a class="code" href="libavcodec_2avcodec_8h.html#a0d1ffb8ad990f47c1f21ec2f5b43c0b1">02546</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_COMPLIANCE_NORMAL 0</span>
<a name="l02547"></a><a class="code" href="libavcodec_2avcodec_8h.html#a0e9f40024e3b017088ee1c16f25b3910">02547</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions</span>
<a name="l02548"></a>02548 <span class="preprocessor"></span><span class="preprocessor">#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things.</span>
<a name="l02549"></a>02549 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02550"></a>02550 <span class="comment"> /**</span>
<a name="l02551"></a>02551 <span class="comment"> * error concealment flags</span>
<a name="l02552"></a>02552 <span class="comment"> * - encoding: unused</span>
<a name="l02553"></a>02553 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02554"></a><a class="code" href="structAVCodecContext.html#a268759f44c37eda9f79048bd0ee05ffc">02554</a> <span class="comment"> */</span>
<a name="l02555"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae1bc421e255d43c6b499ad8d7c6ccb4e">02555</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a268759f44c37eda9f79048bd0ee05ffc" title="error concealment flags">error_concealment</a>;
<a name="l02556"></a><a class="code" href="libavcodec_2avcodec_8h.html#a231414efd6dea4acb5292456dfbe6e86">02556</a> <span class="preprocessor">#define FF_EC_GUESS_MVS 1</span>
<a name="l02557"></a><a class="code" href="libavcodec_2avcodec_8h.html#a4387693eb304cef91531ccb2c3a7dfed">02557</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_EC_DEBLOCK 2</span>
<a name="l02558"></a>02558 <span class="preprocessor"></span><span class="preprocessor">#define FF_EC_FAVOR_INTER 256</span>
<a name="l02559"></a>02559 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02560"></a>02560 <span class="comment"> /**</span>
<a name="l02561"></a>02561 <span class="comment"> * debug</span>
<a name="l02562"></a>02562 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02563"></a>02563 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02564"></a><a class="code" href="structAVCodecContext.html#a1c52e4da25b608b2b9a80af21bb86d58">02564</a> <span class="comment"> */</span>
<a name="l02565"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5d34f0bd0c235b8b9ee96e658df557af">02565</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a1c52e4da25b608b2b9a80af21bb86d58" title="debug">debug</a>;
<a name="l02566"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab4fe40b9f77ba032633e4909849ccf59">02566</a> <span class="preprocessor">#define FF_DEBUG_PICT_INFO 1</span>
<a name="l02567"></a><a class="code" href="libavcodec_2avcodec_8h.html#abf6792ce87394703aaaf75dd720ec718">02567</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_RC 2</span>
<a name="l02568"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae25970db5bf465d3e6649f7354dead6e">02568</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_BITSTREAM 4</span>
<a name="l02569"></a><a class="code" href="libavcodec_2avcodec_8h.html#ad6cd35bff49aba00e5dda470692d1677">02569</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_MB_TYPE 8</span>
<a name="l02570"></a>02570 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_QP 16</span>
<a name="l02571"></a>02571 <span class="preprocessor"></span><span class="preprocessor">#if FF_API_DEBUG_MV</span>
<a name="l02572"></a>02572 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l02573"></a>02573 <span class="comment"> * @deprecated this option does nothing</span>
<a name="l02574"></a><a class="code" href="libavcodec_2avcodec_8h.html#a89c8bc430a198997dcd844d49f0ecc37">02574</a> <span class="comment"> */</span>
<a name="l02575"></a>02575 <span class="preprocessor">#define FF_DEBUG_MV 32</span>
<a name="l02576"></a><a class="code" href="libavcodec_2avcodec_8h.html#a8dd683f65cea8e917f0124fbf6346f8b">02576</a> <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l02577"></a><a class="code" href="libavcodec_2avcodec_8h.html#af0616962dc8bd46054b6e8fe730ffaa3">02577</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_DCT_COEFF 0x00000040</span>
<a name="l02578"></a><a class="code" href="libavcodec_2avcodec_8h.html#a0deea55bc1816542a27d51388a327d8e">02578</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_SKIP 0x00000080</span>
<a name="l02579"></a>02579 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_STARTCODE 0x00000100</span>
<a name="l02580"></a><a class="code" href="libavcodec_2avcodec_8h.html#af5669b3b2af6f371fcd477ada69d5397">02580</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_UNUSED_MEMBERS</span>
<a name="l02581"></a>02581 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_PTS 0x00000200</span>
<a name="l02582"></a><a class="code" href="libavcodec_2avcodec_8h.html#a6764f1d5e32d47ea35be0fb5d4b878bc">02582</a> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* FF_API_UNUSED_MEMBERS */</span>
<a name="l02583"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab4c33b60e800404f9413fb651c10340f">02583</a> <span class="preprocessor">#define FF_DEBUG_ER 0x00000400</span>
<a name="l02584"></a><a class="code" href="libavcodec_2avcodec_8h.html#aa93e4fb48a60b73cfb381e30d6567642">02584</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_MMCO 0x00000800</span>
<a name="l02585"></a>02585 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_BUGS 0x00001000</span>
<a name="l02586"></a><a class="code" href="libavcodec_2avcodec_8h.html#a324077f570cc0d0889db38754c66f5af">02586</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_DEBUG_MV</span>
<a name="l02587"></a><a class="code" href="libavcodec_2avcodec_8h.html#a240b93bec5261bdb64f4dbe1dde05956">02587</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_VIS_QP 0x00002000 ///< only access through AVOptions from outside libavcodec</span>
<a name="l02588"></a>02588 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_VIS_MB_TYPE 0x00004000 ///< only access through AVOptions from outside libavcodec</span>
<a name="l02589"></a><a class="code" href="libavcodec_2avcodec_8h.html#adb074c59640127bdd20b187ed3c5a614">02589</a> <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l02590"></a><a class="code" href="libavcodec_2avcodec_8h.html#a15aee1184d9f83886ae38cef62f5e281">02590</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_BUFFERS 0x00008000</span>
<a name="l02591"></a><a class="code" href="libavcodec_2avcodec_8h.html#af910cd51ccebe14efae0a234b65ba14b">02591</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_THREADS 0x00010000</span>
<a name="l02592"></a>02592 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_NOMC 0x01000000</span>
<a name="l02593"></a>02593 <span class="preprocessor"></span>
<a name="l02594"></a>02594 <span class="preprocessor">#if FF_API_DEBUG_MV</span>
<a name="l02595"></a>02595 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02596"></a>02596 <span class="comment"> * debug</span>
<a name="l02597"></a>02597 <span class="comment"> * Code outside libavcodec should access this field using AVOptions</span>
<a name="l02598"></a>02598 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02599"></a>02599 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02600"></a><a class="code" href="structAVCodecContext.html#ad823755aadd6eec734c216dbb17f145d">02600</a> <span class="comment"> */</span>
<a name="l02601"></a><a class="code" href="libavcodec_2avcodec_8h.html#aa5541a70a2b48cb7112ad80f1e867371">02601</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ad823755aadd6eec734c216dbb17f145d" title="debug Code outside libavcodec should access this field using AVOptions">debug_mv</a>;
<a name="l02602"></a><a class="code" href="libavcodec_2avcodec_8h.html#ac004b7c8aee2622b3a54827e29839694">02602</a> <span class="preprocessor">#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames</span>
<a name="l02603"></a><a class="code" href="libavcodec_2avcodec_8h.html#a60ac4b7b3217eb0985c470b32fc69f72">02603</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames</span>
<a name="l02604"></a>02604 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames</span>
<a name="l02605"></a>02605 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l02606"></a>02606 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02607"></a>02607 <span class="comment"> /**</span>
<a name="l02608"></a>02608 <span class="comment"> * Error recognition; may misdetect some more or less valid parts as errors.</span>
<a name="l02609"></a>02609 <span class="comment"> * - encoding: unused</span>
<a name="l02610"></a>02610 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02611"></a><a class="code" href="structAVCodecContext.html#af9978d9bd6ac80a494ef1b78fe1d004f">02611</a> <span class="comment"> */</span>
<a name="l02612"></a>02612 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#af9978d9bd6ac80a494ef1b78fe1d004f" title="Error recognition; may misdetect some more or less valid parts as errors.">err_recognition</a>;
<a name="l02613"></a>02613 <span class="comment"></span>
<a name="l02614"></a>02614 <span class="comment">/**</span>
<a name="l02615"></a>02615 <span class="comment"> * Verify checksums embedded in the bitstream (could be of either encoded or</span>
<a name="l02616"></a>02616 <span class="comment"> * decoded data, depending on the codec) and print an error message on mismatch.</span>
<a name="l02617"></a>02617 <span class="comment"> * If AV_EF_EXPLODE is also set, a mismatching checksum will result in the</span>
<a name="l02618"></a>02618 <span class="comment"> * decoder returning an error.</span>
<a name="l02619"></a><a class="code" href="libavcodec_2avcodec_8h.html#a16258b3283a3d34c893dd9a39e29e369">02619</a> <span class="comment"> */</span>
<a name="l02620"></a><a class="code" href="libavcodec_2avcodec_8h.html#a15a968c7590acfe5134b386e275db94b">02620</a> <span class="preprocessor">#define AV_EF_CRCCHECK (1<<0)</span>
<a name="l02621"></a><a class="code" href="libavcodec_2avcodec_8h.html#a6689e6274ac296dea480393cf53e1eda">02621</a> <span class="preprocessor"></span><span class="preprocessor">#define AV_EF_BITSTREAM (1<<1) ///< detect bitstream specification deviations</span>
<a name="l02622"></a><a class="code" href="libavcodec_2avcodec_8h.html#a6101c3b2a02c61ea41f3c97e88b64d39">02622</a> <span class="preprocessor"></span><span class="preprocessor">#define AV_EF_BUFFER (1<<2) ///< detect improper bitstream length</span>
<a name="l02623"></a>02623 <span class="preprocessor"></span><span class="preprocessor">#define AV_EF_EXPLODE (1<<3) ///< abort decoding on minor error detection</span>
<a name="l02624"></a><a class="code" href="libavcodec_2avcodec_8h.html#a4d1ae1e6c45cc5e9641ac6db9c811626">02624</a> <span class="preprocessor"></span>
<a name="l02625"></a><a class="code" href="libavcodec_2avcodec_8h.html#adada058bf4130e23c790f39de50c62c8">02625</a> <span class="preprocessor">#define AV_EF_IGNORE_ERR (1<<15) ///< ignore errors and continue</span>
<a name="l02626"></a><a class="code" href="libavcodec_2avcodec_8h.html#a42a5fa4b77207e981ca78755e2ac77f1">02626</a> <span class="preprocessor"></span><span class="preprocessor">#define AV_EF_CAREFUL (1<<16) ///< consider things that violate the spec, are fast to calculate and have not been seen in the wild as errors</span>
<a name="l02627"></a><a class="code" href="libavcodec_2avcodec_8h.html#a84b2a67f04fa6d2cab74d09e2779b6ec">02627</a> <span class="preprocessor"></span><span class="preprocessor">#define AV_EF_COMPLIANT (1<<17) ///< consider all spec non compliances as errors</span>
<a name="l02628"></a>02628 <span class="preprocessor"></span><span class="preprocessor">#define AV_EF_AGGRESSIVE (1<<18) ///< consider things that a sane encoder should not do as an error</span>
<a name="l02629"></a>02629 <span class="preprocessor"></span>
<a name="l02630"></a>02630 <span class="comment"></span>
<a name="l02631"></a>02631 <span class="comment"> /**</span>
<a name="l02632"></a>02632 <span class="comment"> * opaque 64bit number (generally a PTS) that will be reordered and</span>
<a name="l02633"></a>02633 <span class="comment"> * output in AVFrame.reordered_opaque</span>
<a name="l02634"></a>02634 <span class="comment"> * - encoding: unused</span>
<a name="l02635"></a>02635 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02636"></a><a class="code" href="structAVCodecContext.html#a64c09907902b41744c3ea60c89fd42fb">02636</a> <span class="comment"> */</span>
<a name="l02637"></a>02637 int64_t <a class="code" href="structAVCodecContext.html#a64c09907902b41744c3ea60c89fd42fb" title="opaque 64bit number (generally a PTS) that will be reordered and output in AVFrame.reordered_opaque">reordered_opaque</a>;
<a name="l02638"></a>02638 <span class="comment"></span>
<a name="l02639"></a>02639 <span class="comment"> /**</span>
<a name="l02640"></a>02640 <span class="comment"> * Hardware accelerator in use</span>
<a name="l02641"></a>02641 <span class="comment"> * - encoding: unused.</span>
<a name="l02642"></a>02642 <span class="comment"> * - decoding: Set by libavcodec</span>
<a name="l02643"></a><a class="code" href="structAVCodecContext.html#ab1030454a58273fd5ab88679b1eed7cc">02643</a> <span class="comment"> */</span>
<a name="l02644"></a>02644 <span class="keyword">struct </span><a class="code" href="structAVHWAccel.html">AVHWAccel</a> *<a class="code" href="structAVCodecContext.html#ab1030454a58273fd5ab88679b1eed7cc" title="Hardware accelerator in use.">hwaccel</a>;
<a name="l02645"></a>02645 <span class="comment"></span>
<a name="l02646"></a>02646 <span class="comment"> /**</span>
<a name="l02647"></a>02647 <span class="comment"> * Hardware accelerator context.</span>
<a name="l02648"></a>02648 <span class="comment"> * For some hardware accelerators, a global context needs to be</span>
<a name="l02649"></a>02649 <span class="comment"> * provided by the user. In that case, this holds display-dependent</span>
<a name="l02650"></a>02650 <span class="comment"> * data FFmpeg cannot instantiate itself. Please refer to the</span>
<a name="l02651"></a>02651 <span class="comment"> * FFmpeg HW accelerator documentation to know how to fill this</span>
<a name="l02652"></a>02652 <span class="comment"> * is. e.g. for VA API, this is a struct vaapi_context.</span>
<a name="l02653"></a>02653 <span class="comment"> * - encoding: unused</span>
<a name="l02654"></a>02654 <span class="comment"> * - decoding: Set by user</span>
<a name="l02655"></a><a class="code" href="structAVCodecContext.html#ab222f7d747dfdceff0a76999e09648c0">02655</a> <span class="comment"> */</span>
<a name="l02656"></a>02656 <span class="keywordtype">void</span> *<a class="code" href="structAVCodecContext.html#ab222f7d747dfdceff0a76999e09648c0" title="Hardware accelerator context.">hwaccel_context</a>;
<a name="l02657"></a>02657 <span class="comment"></span>
<a name="l02658"></a>02658 <span class="comment"> /**</span>
<a name="l02659"></a>02659 <span class="comment"> * error</span>
<a name="l02660"></a>02660 <span class="comment"> * - encoding: Set by libavcodec if flags&CODEC_FLAG_PSNR.</span>
<a name="l02661"></a>02661 <span class="comment"> * - decoding: unused</span>
<a name="l02662"></a><a class="code" href="structAVCodecContext.html#acb7a609f77fd8876c8433c3673e9f9d5">02662</a> <span class="comment"> */</span>
<a name="l02663"></a>02663 uint64_t <a class="code" href="structAVCodecContext.html#acb7a609f77fd8876c8433c3673e9f9d5" title="error">error</a>[<a class="code" href="frame_8h.html#add80189702cf0f5ea82718576fb43201">AV_NUM_DATA_POINTERS</a>];
<a name="l02664"></a>02664 <span class="comment"></span>
<a name="l02665"></a>02665 <span class="comment"> /**</span>
<a name="l02666"></a>02666 <span class="comment"> * DCT algorithm, see FF_DCT_* below</span>
<a name="l02667"></a>02667 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02668"></a>02668 <span class="comment"> * - decoding: unused</span>
<a name="l02669"></a><a class="code" href="structAVCodecContext.html#a270c5551611475aebd7f9ce154d7f263">02669</a> <span class="comment"> */</span>
<a name="l02670"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae5278abe779214072417f18d0cd8fa97">02670</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a270c5551611475aebd7f9ce154d7f263" title="DCT algorithm, see FF_DCT_* below.">dct_algo</a>;
<a name="l02671"></a><a class="code" href="libavcodec_2avcodec_8h.html#a21a1a06a00b96566ad25a47ee5d74460">02671</a> <span class="preprocessor">#define FF_DCT_AUTO 0</span>
<a name="l02672"></a>02672 <span class="preprocessor"></span><span class="preprocessor">#define FF_DCT_FASTINT 1</span>
<a name="l02673"></a><a class="code" href="libavcodec_2avcodec_8h.html#a24095780d69c1b09bb2edfdffc61a220">02673</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_UNUSED_MEMBERS</span>
<a name="l02674"></a>02674 <span class="preprocessor"></span><span class="preprocessor">#define FF_DCT_INT 2</span>
<a name="l02675"></a><a class="code" href="libavcodec_2avcodec_8h.html#ac53f5d5aac4e544e2935765c9d197d49">02675</a> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* FF_API_UNUSED_MEMBERS */</span>
<a name="l02676"></a><a class="code" href="libavcodec_2avcodec_8h.html#abcb76af8bcd01dd4667538dafdf54f7b">02676</a> <span class="preprocessor">#define FF_DCT_MMX 3</span>
<a name="l02677"></a><a class="code" href="libavcodec_2avcodec_8h.html#aa44bcc512bcce5d6ade1f4d63bc96737">02677</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_DCT_ALTIVEC 5</span>
<a name="l02678"></a>02678 <span class="preprocessor"></span><span class="preprocessor">#define FF_DCT_FAAN 6</span>
<a name="l02679"></a>02679 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02680"></a>02680 <span class="comment"> /**</span>
<a name="l02681"></a>02681 <span class="comment"> * IDCT algorithm, see FF_IDCT_* below.</span>
<a name="l02682"></a>02682 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02683"></a>02683 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02684"></a><a class="code" href="structAVCodecContext.html#a8b669e043c8b064fcf991fd71e16a870">02684</a> <span class="comment"> */</span>
<a name="l02685"></a><a class="code" href="libavcodec_2avcodec_8h.html#a91c5763aad4039fb2e3a2516b20295e2">02685</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a8b669e043c8b064fcf991fd71e16a870" title="IDCT algorithm, see FF_IDCT_* below.">idct_algo</a>;
<a name="l02686"></a><a class="code" href="libavcodec_2avcodec_8h.html#acb534b0a9ddcf3e11d49d7aca39cd55c">02686</a> <span class="preprocessor">#define FF_IDCT_AUTO 0</span>
<a name="l02687"></a><a class="code" href="libavcodec_2avcodec_8h.html#abb9952b1218064fc55eb9b59945d2fed">02687</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_INT 1</span>
<a name="l02688"></a><a class="code" href="libavcodec_2avcodec_8h.html#a429e1be2fd8cda991f85008add3b631c">02688</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SIMPLE 2</span>
<a name="l02689"></a><a class="code" href="libavcodec_2avcodec_8h.html#a8289c32cb7265b3c6ce79ea75c18413c">02689</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SIMPLEMMX 3</span>
<a name="l02690"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5925d5875a6172862da912eebb98c823">02690</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_ARM 7</span>
<a name="l02691"></a>02691 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_ALTIVEC 8</span>
<a name="l02692"></a><a class="code" href="libavcodec_2avcodec_8h.html#a9459cdc13fdc2d707482669d624925de">02692</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_ARCH_SH4</span>
<a name="l02693"></a>02693 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SH4 9</span>
<a name="l02694"></a><a class="code" href="libavcodec_2avcodec_8h.html#a576554e3ab40c97d58dd90899ab627ea">02694</a> <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l02695"></a>02695 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SIMPLEARM 10</span>
<a name="l02696"></a><a class="code" href="libavcodec_2avcodec_8h.html#a9b52512a666ea2b9eb329fe2252cc84a">02696</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_UNUSED_MEMBERS</span>
<a name="l02697"></a>02697 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_IPP 13</span>
<a name="l02698"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab608858e3b9a6853a70d4e950f3be627">02698</a> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* FF_API_UNUSED_MEMBERS */</span>
<a name="l02699"></a>02699 <span class="preprocessor">#define FF_IDCT_XVID 14</span>
<a name="l02700"></a><a class="code" href="libavcodec_2avcodec_8h.html#a71ed8d917ce2cd07c0c3a3a51b942308">02700</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_IDCT_XVIDMMX</span>
<a name="l02701"></a>02701 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_XVIDMMX 14</span>
<a name="l02702"></a><a class="code" href="libavcodec_2avcodec_8h.html#aeb85ea0af2b11f293635b222a3396336">02702</a> <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* FF_API_IDCT_XVIDMMX */</span>
<a name="l02703"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab50c1fb92576545c2de2092e740bcb27">02703</a> <span class="preprocessor">#define FF_IDCT_SIMPLEARMV5TE 16</span>
<a name="l02704"></a>02704 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SIMPLEARMV6 17</span>
<a name="l02705"></a><a class="code" href="libavcodec_2avcodec_8h.html#a3a9091f600b8292cc469149a30bbda30">02705</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_ARCH_SPARC</span>
<a name="l02706"></a>02706 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SIMPLEVIS 18</span>
<a name="l02707"></a><a class="code" href="libavcodec_2avcodec_8h.html#a7f8b81846ee9b7e8be84f067843b5432">02707</a> <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l02708"></a><a class="code" href="libavcodec_2avcodec_8h.html#aeda757190ef7a8175ca8dd4650f2e153">02708</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_FAAN 20</span>
<a name="l02709"></a>02709 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SIMPLENEON 22</span>
<a name="l02710"></a><a class="code" href="libavcodec_2avcodec_8h.html#ada852e0ecb78a64aa56696f879d4608c">02710</a> <span class="preprocessor"></span><span class="preprocessor">#if FF_API_ARCH_ALPHA</span>
<a name="l02711"></a>02711 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SIMPLEALPHA 23</span>
<a name="l02712"></a><a class="code" href="libavcodec_2avcodec_8h.html#aebab2aea91c7e7942a67b1aff00bfc0b">02712</a> <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l02713"></a>02713 <span class="preprocessor"></span><span class="preprocessor">#define FF_IDCT_SIMPLEAUTO 128</span>
<a name="l02714"></a>02714 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02715"></a>02715 <span class="comment"> /**</span>
<a name="l02716"></a>02716 <span class="comment"> * bits per sample/pixel from the demuxer (needed for huffyuv).</span>
<a name="l02717"></a>02717 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l02718"></a>02718 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02719"></a><a class="code" href="structAVCodecContext.html#a5273a8cf73ef598d632c6eee1379d5ad">02719</a> <span class="comment"> */</span>
<a name="l02720"></a>02720 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5273a8cf73ef598d632c6eee1379d5ad" title="bits per sample/pixel from the demuxer (needed for huffyuv).">bits_per_coded_sample</a>;
<a name="l02721"></a>02721 <span class="comment"></span>
<a name="l02722"></a>02722 <span class="comment"> /**</span>
<a name="l02723"></a>02723 <span class="comment"> * Bits per sample/pixel of internal libavcodec pixel/sample format.</span>
<a name="l02724"></a>02724 <span class="comment"> * - encoding: set by user.</span>
<a name="l02725"></a>02725 <span class="comment"> * - decoding: set by libavcodec.</span>
<a name="l02726"></a><a class="code" href="structAVCodecContext.html#a889b84d5b3657df4a4e45b17b87848f5">02726</a> <span class="comment"> */</span>
<a name="l02727"></a>02727 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a889b84d5b3657df4a4e45b17b87848f5" title="Bits per sample/pixel of internal libavcodec pixel/sample format.">bits_per_raw_sample</a>;
<a name="l02728"></a>02728
<a name="l02729"></a>02729 <span class="preprocessor">#if FF_API_LOWRES</span>
<a name="l02730"></a>02730 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02731"></a>02731 <span class="comment"> * low resolution decoding, 1-> 1/2 size, 2->1/4 size</span>
<a name="l02732"></a>02732 <span class="comment"> * - encoding: unused</span>
<a name="l02733"></a>02733 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02734"></a>02734 <span class="comment"> * Code outside libavcodec should access this field using:</span>
<a name="l02735"></a>02735 <span class="comment"> * av_codec_{get,set}_lowres(avctx)</span>
<a name="l02736"></a><a class="code" href="structAVCodecContext.html#af260210a39ad4781d8d47ddac1541d04">02736</a> <span class="comment"> */</span>
<a name="l02737"></a>02737 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#af260210a39ad4781d8d47ddac1541d04" title="low resolution decoding, 1-> 1/2 size, 2->1/4 size">lowres</a>;
<a name="l02738"></a>02738 <span class="preprocessor">#endif</span>
<a name="l02739"></a>02739 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02740"></a>02740 <span class="comment"> /**</span>
<a name="l02741"></a>02741 <span class="comment"> * the picture in the bitstream</span>
<a name="l02742"></a>02742 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l02743"></a>02743 <span class="comment"> * - decoding: unused</span>
<a name="l02744"></a><a class="code" href="structAVCodecContext.html#afdebc347b4f74e0b9271ff37cabc96e8">02744</a> <span class="comment"> */</span>
<a name="l02745"></a>02745 <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="structAVCodecContext.html#afdebc347b4f74e0b9271ff37cabc96e8" title="the picture in the bitstream">coded_frame</a>;
<a name="l02746"></a>02746 <span class="comment"></span>
<a name="l02747"></a>02747 <span class="comment"> /**</span>
<a name="l02748"></a>02748 <span class="comment"> * thread count</span>
<a name="l02749"></a>02749 <span class="comment"> * is used to decide how many independent tasks should be passed to execute()</span>
<a name="l02750"></a>02750 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02751"></a>02751 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02752"></a><a class="code" href="structAVCodecContext.html#aa852b6227d0778b62e9cc4034ad3720c">02752</a> <span class="comment"> */</span>
<a name="l02753"></a>02753 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#aa852b6227d0778b62e9cc4034ad3720c" title="thread count is used to decide how many independent tasks should be passed to execute()">thread_count</a>;
<a name="l02754"></a>02754 <span class="comment"></span>
<a name="l02755"></a>02755 <span class="comment"> /**</span>
<a name="l02756"></a>02756 <span class="comment"> * Which multithreading methods to use.</span>
<a name="l02757"></a>02757 <span class="comment"> * Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread,</span>
<a name="l02758"></a>02758 <span class="comment"> * so clients which cannot provide future frames should not use it.</span>
<a name="l02759"></a>02759 <span class="comment"> *</span>
<a name="l02760"></a>02760 <span class="comment"> * - encoding: Set by user, otherwise the default is used.</span>
<a name="l02761"></a>02761 <span class="comment"> * - decoding: Set by user, otherwise the default is used.</span>
<a name="l02762"></a><a class="code" href="structAVCodecContext.html#a7651614f4309122981d70e06a4b42fcb">02762</a> <span class="comment"> */</span>
<a name="l02763"></a><a class="code" href="libavcodec_2avcodec_8h.html#a116c7fb56ac57ccca3e08b80467b2a40">02763</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7651614f4309122981d70e06a4b42fcb" title="Which multithreading methods to use.">thread_type</a>;
<a name="l02764"></a><a class="code" href="libavcodec_2avcodec_8h.html#a91bc1a1c1c4a3cc6db54d59705fded0b">02764</a> <span class="preprocessor">#define FF_THREAD_FRAME 1 ///< Decode more than one frame at once</span>
<a name="l02765"></a>02765 <span class="preprocessor"></span><span class="preprocessor">#define FF_THREAD_SLICE 2 ///< Decode more than one part of a single frame at once</span>
<a name="l02766"></a>02766 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02767"></a>02767 <span class="comment"> /**</span>
<a name="l02768"></a>02768 <span class="comment"> * Which multithreading methods are in use by the codec.</span>
<a name="l02769"></a>02769 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l02770"></a>02770 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l02771"></a><a class="code" href="structAVCodecContext.html#a5f4579d94675579e1d46a591340f598f">02771</a> <span class="comment"> */</span>
<a name="l02772"></a>02772 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5f4579d94675579e1d46a591340f598f" title="Which multithreading methods are in use by the codec.">active_thread_type</a>;
<a name="l02773"></a>02773 <span class="comment"></span>
<a name="l02774"></a>02774 <span class="comment"> /**</span>
<a name="l02775"></a>02775 <span class="comment"> * Set by the client if its custom get_buffer() callback can be called</span>
<a name="l02776"></a>02776 <span class="comment"> * synchronously from another thread, which allows faster multithreaded decoding.</span>
<a name="l02777"></a>02777 <span class="comment"> * draw_horiz_band() will be called from other threads regardless of this setting.</span>
<a name="l02778"></a>02778 <span class="comment"> * Ignored if the default get_buffer() is used.</span>
<a name="l02779"></a>02779 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02780"></a>02780 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02781"></a><a class="code" href="structAVCodecContext.html#a5bd9a6f252d615243d01198fd3957fd8">02781</a> <span class="comment"> */</span>
<a name="l02782"></a>02782 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a5bd9a6f252d615243d01198fd3957fd8" title="Set by the client if its custom get_buffer() callback can be called synchronously from another thread...">thread_safe_callbacks</a>;
<a name="l02783"></a>02783 <span class="comment"></span>
<a name="l02784"></a>02784 <span class="comment"> /**</span>
<a name="l02785"></a>02785 <span class="comment"> * The codec may call this to execute several independent things.</span>
<a name="l02786"></a>02786 <span class="comment"> * It will return only after finishing all tasks.</span>
<a name="l02787"></a>02787 <span class="comment"> * The user may replace this with some multithreaded implementation,</span>
<a name="l02788"></a>02788 <span class="comment"> * the default implementation will execute the parts serially.</span>
<a name="l02789"></a>02789 <span class="comment"> * @param count the number of things to execute</span>
<a name="l02790"></a>02790 <span class="comment"> * - encoding: Set by libavcodec, user can override.</span>
<a name="l02791"></a>02791 <span class="comment"> * - decoding: Set by libavcodec, user can override.</span>
<a name="l02792"></a><a class="code" href="structAVCodecContext.html#a0a905e1ec6b03f69f60a4e668561d677">02792</a> <span class="comment"> */</span>
<a name="l02793"></a>02793 int (*<a class="code" href="structAVCodecContext.html#a0a905e1ec6b03f69f60a4e668561d677" title="The codec may call this to execute several independent things.">execute</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c, int (*func)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c2, <span class="keywordtype">void</span> *arg), <span class="keywordtype">void</span> *arg2, <span class="keywordtype">int</span> *ret, <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> size);
<a name="l02794"></a>02794 <span class="comment"></span>
<a name="l02795"></a>02795 <span class="comment"> /**</span>
<a name="l02796"></a>02796 <span class="comment"> * The codec may call this to execute several independent things.</span>
<a name="l02797"></a>02797 <span class="comment"> * It will return only after finishing all tasks.</span>
<a name="l02798"></a>02798 <span class="comment"> * The user may replace this with some multithreaded implementation,</span>
<a name="l02799"></a>02799 <span class="comment"> * the default implementation will execute the parts serially.</span>
<a name="l02800"></a>02800 <span class="comment"> * Also see avcodec_thread_init and e.g. the --enable-pthread configure option.</span>
<a name="l02801"></a>02801 <span class="comment"> * @param c context passed also to func</span>
<a name="l02802"></a>02802 <span class="comment"> * @param count the number of things to execute</span>
<a name="l02803"></a>02803 <span class="comment"> * @param arg2 argument passed unchanged to func</span>
<a name="l02804"></a>02804 <span class="comment"> * @param ret return values of executed functions, must have space for "count" values. May be NULL.</span>
<a name="l02805"></a>02805 <span class="comment"> * @param func function that will be called count times, with jobnr from 0 to count-1.</span>
<a name="l02806"></a>02806 <span class="comment"> * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no</span>
<a name="l02807"></a>02807 <span class="comment"> * two instances of func executing at the same time will have the same threadnr.</span>
<a name="l02808"></a>02808 <span class="comment"> * @return always 0 currently, but code should handle a future improvement where when any call to func</span>
<a name="l02809"></a>02809 <span class="comment"> * returns < 0 no further calls to func may be done and < 0 is returned.</span>
<a name="l02810"></a>02810 <span class="comment"> * - encoding: Set by libavcodec, user can override.</span>
<a name="l02811"></a>02811 <span class="comment"> * - decoding: Set by libavcodec, user can override.</span>
<a name="l02812"></a><a class="code" href="structAVCodecContext.html#add90d0081b10f937009c978236d718a3">02812</a> <span class="comment"> */</span>
<a name="l02813"></a>02813 int (*<a class="code" href="structAVCodecContext.html#add90d0081b10f937009c978236d718a3" title="The codec may call this to execute several independent things.">execute2</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c, int (*func)(<span class="keyword">struct </span><a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c2, <span class="keywordtype">void</span> *arg, <span class="keywordtype">int</span> jobnr, <span class="keywordtype">int</span> threadnr), <span class="keywordtype">void</span> *arg2, <span class="keywordtype">int</span> *ret, <span class="keywordtype">int</span> count);
<a name="l02814"></a>02814
<a name="l02815"></a>02815 <span class="preprocessor">#if FF_API_THREAD_OPAQUE</span>
<a name="l02816"></a>02816 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02817"></a>02817 <span class="comment"> * @deprecated this field should not be used from outside of lavc</span>
<a name="l02818"></a>02818 <span class="comment"> */</span>
<a name="l02819"></a><a class="code" href="structAVCodecContext.html#aeed57307d47f36a39905f206eee8dd96">02819</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02820"></a>02820 <span class="keywordtype">void</span> *<a class="code" href="structAVCodecContext.html#aeed57307d47f36a39905f206eee8dd96">thread_opaque</a>;
<a name="l02821"></a>02821 <span class="preprocessor">#endif</span>
<a name="l02822"></a>02822 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02823"></a>02823 <span class="comment"> /**</span>
<a name="l02824"></a>02824 <span class="comment"> * noise vs. sse weight for the nsse comparison function</span>
<a name="l02825"></a>02825 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02826"></a>02826 <span class="comment"> * - decoding: unused</span>
<a name="l02827"></a><a class="code" href="structAVCodecContext.html#a01e1ed5a7828461239d017147a0c5959">02827</a> <span class="comment"> */</span>
<a name="l02828"></a>02828 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a01e1ed5a7828461239d017147a0c5959" title="noise vs.">nsse_weight</a>;
<a name="l02829"></a>02829 <span class="comment"></span>
<a name="l02830"></a>02830 <span class="comment"> /**</span>
<a name="l02831"></a>02831 <span class="comment"> * profile</span>
<a name="l02832"></a>02832 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02833"></a>02833 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l02834"></a><a class="code" href="structAVCodecContext.html#a7abe7095de73df98df4895bf9e25fc6b">02834</a> <span class="comment"> */</span>
<a name="l02835"></a><a class="code" href="libavcodec_2avcodec_8h.html#a1d8d03f5be975b8a728574cbdb00c896">02835</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7abe7095de73df98df4895bf9e25fc6b" title="profile">profile</a>;
<a name="l02836"></a><a class="code" href="libavcodec_2avcodec_8h.html#a369b730d88653e89c16a6be9eb31dd76">02836</a> <span class="preprocessor">#define FF_PROFILE_UNKNOWN -99</span>
<a name="l02837"></a>02837 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_RESERVED -100</span>
<a name="l02838"></a><a class="code" href="libavcodec_2avcodec_8h.html#a51a7f129055f82d6e1d994b6ecb12f15">02838</a> <span class="preprocessor"></span>
<a name="l02839"></a><a class="code" href="libavcodec_2avcodec_8h.html#aab23e627137cf92559f0331858a8f1a0">02839</a> <span class="preprocessor">#define FF_PROFILE_AAC_MAIN 0</span>
<a name="l02840"></a><a class="code" href="libavcodec_2avcodec_8h.html#acf338bf5a18f2e94e6ccde5c227837e2">02840</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_AAC_LOW 1</span>
<a name="l02841"></a><a class="code" href="libavcodec_2avcodec_8h.html#ac5f69d0ea619a69c9ade2b17e42f4a41">02841</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_AAC_SSR 2</span>
<a name="l02842"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5377e7a219aa83def4e34185b8a2899c">02842</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_AAC_LTP 3</span>
<a name="l02843"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5a415466ecf8dc4eba454070a50dbbe5">02843</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_AAC_HE 4</span>
<a name="l02844"></a><a class="code" href="libavcodec_2avcodec_8h.html#a026b2de311ab9fc7918e14af0f56f3d3">02844</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_AAC_HE_V2 28</span>
<a name="l02845"></a><a class="code" href="libavcodec_2avcodec_8h.html#aedad028c8d7657cd636a1537a71c47b9">02845</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_AAC_LD 22</span>
<a name="l02846"></a><a class="code" href="libavcodec_2avcodec_8h.html#a49d1bb27d84d6709b918f13c528eeb93">02846</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_AAC_ELD 38</span>
<a name="l02847"></a><a class="code" href="libavcodec_2avcodec_8h.html#adf1aa7552fd38d928c2d3557bb327ded">02847</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG2_AAC_LOW 128</span>
<a name="l02848"></a>02848 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG2_AAC_HE 131</span>
<a name="l02849"></a><a class="code" href="libavcodec_2avcodec_8h.html#a1aa5daac35d7d7957be59ea345edc29b">02849</a> <span class="preprocessor"></span>
<a name="l02850"></a><a class="code" href="libavcodec_2avcodec_8h.html#add5134be0883a674d01819a079637bad">02850</a> <span class="preprocessor">#define FF_PROFILE_DTS 20</span>
<a name="l02851"></a><a class="code" href="libavcodec_2avcodec_8h.html#afcbaa243c3190b4fcb79c76f0d0467aa">02851</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_DTS_ES 30</span>
<a name="l02852"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab14c53351ed3877764e9982eae3b6bee">02852</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_DTS_96_24 40</span>
<a name="l02853"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab3803f4dfc41e8d801a3f65082484add">02853</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_DTS_HD_HRA 50</span>
<a name="l02854"></a><a class="code" href="libavcodec_2avcodec_8h.html#ada7497a9ccac9ff6a85290a55d9790fe">02854</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_DTS_HD_MA 60</span>
<a name="l02855"></a>02855 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_DTS_EXPRESS 70</span>
<a name="l02856"></a><a class="code" href="libavcodec_2avcodec_8h.html#ad2e3ddc1ec51c9f9a87c1c9a10749708">02856</a> <span class="preprocessor"></span>
<a name="l02857"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae675e3b49ed967edbdbd023e70e3b09f">02857</a> <span class="preprocessor">#define FF_PROFILE_MPEG2_422 0</span>
<a name="l02858"></a><a class="code" href="libavcodec_2avcodec_8h.html#a21c8ba26aa5b1ffa022e515936cb3149">02858</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG2_HIGH 1</span>
<a name="l02859"></a><a class="code" href="libavcodec_2avcodec_8h.html#a8dad0dbff75f9e7a18af03f4e661a8a3">02859</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG2_SS 2</span>
<a name="l02860"></a><a class="code" href="libavcodec_2avcodec_8h.html#aa627f1858d17b1561719d85c00fb37a0">02860</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG2_SNR_SCALABLE 3</span>
<a name="l02861"></a><a class="code" href="libavcodec_2avcodec_8h.html#a6a9ad5aab83be2f382ae800c7ec428e1">02861</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG2_MAIN 4</span>
<a name="l02862"></a>02862 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG2_SIMPLE 5</span>
<a name="l02863"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab424d258655424e4b1690e2ab6fcfc66">02863</a> <span class="preprocessor"></span>
<a name="l02864"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5f69f43f4c2f4e2dcd77e3108db5cb0b">02864</a> <span class="preprocessor">#define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag</span>
<a name="l02865"></a>02865 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag</span>
<a name="l02866"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae7b88419c24001277450732a5d3abe2b">02866</a> <span class="preprocessor"></span>
<a name="l02867"></a><a class="code" href="libavcodec_2avcodec_8h.html#a9467289beec698b363d7319e454c351e">02867</a> <span class="preprocessor">#define FF_PROFILE_H264_BASELINE 66</span>
<a name="l02868"></a><a class="code" href="libavcodec_2avcodec_8h.html#aa7d7e490128673e7747bb32ba7ea5486">02868</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED)</span>
<a name="l02869"></a><a class="code" href="libavcodec_2avcodec_8h.html#a1cccf98e5b74d346fee7fc6782cf935b">02869</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_MAIN 77</span>
<a name="l02870"></a><a class="code" href="libavcodec_2avcodec_8h.html#a0ff6fe9cf1f7a1671d597b9524024332">02870</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_EXTENDED 88</span>
<a name="l02871"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae37ffdc67dbb499d0274323d9449960b">02871</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_HIGH 100</span>
<a name="l02872"></a><a class="code" href="libavcodec_2avcodec_8h.html#a9ee5bfe5f87de36d059560de0bb65ad5">02872</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_HIGH_10 110</span>
<a name="l02873"></a><a class="code" href="libavcodec_2avcodec_8h.html#a65b6dedc096e294a66bf12cf69f51b39">02873</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA)</span>
<a name="l02874"></a><a class="code" href="libavcodec_2avcodec_8h.html#ad8cd548567a051c1fba93870baf0376c">02874</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_HIGH_422 122</span>
<a name="l02875"></a><a class="code" href="libavcodec_2avcodec_8h.html#a1f3bda7a7ad53bfadfb8318915e4c22e">02875</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA)</span>
<a name="l02876"></a><a class="code" href="libavcodec_2avcodec_8h.html#adbd58c1bfa90fb3b5520d76ba9744251">02876</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_HIGH_444 144</span>
<a name="l02877"></a><a class="code" href="libavcodec_2avcodec_8h.html#aca63846bdb57646770faec7632e9018c">02877</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244</span>
<a name="l02878"></a><a class="code" href="libavcodec_2avcodec_8h.html#a3fe8b4d9543555b47366600e3e77fc47">02878</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)</span>
<a name="l02879"></a>02879 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_H264_CAVLC_444 44</span>
<a name="l02880"></a><a class="code" href="libavcodec_2avcodec_8h.html#a6fb4c32734ff24c21deb5c50365325e5">02880</a> <span class="preprocessor"></span>
<a name="l02881"></a><a class="code" href="libavcodec_2avcodec_8h.html#a3299e280c60ced133af0cd6696bb5195">02881</a> <span class="preprocessor">#define FF_PROFILE_VC1_SIMPLE 0</span>
<a name="l02882"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae55a8a7a8d4e96750d8c3f51fdeed168">02882</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_VC1_MAIN 1</span>
<a name="l02883"></a><a class="code" href="libavcodec_2avcodec_8h.html#a865bd342fbe929ef8825e2f799d0e263">02883</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_VC1_COMPLEX 2</span>
<a name="l02884"></a>02884 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_VC1_ADVANCED 3</span>
<a name="l02885"></a><a class="code" href="libavcodec_2avcodec_8h.html#a054e740451eaa31155901d5aa064b33c">02885</a> <span class="preprocessor"></span>
<a name="l02886"></a><a class="code" href="libavcodec_2avcodec_8h.html#a31638f5b3d1b89e3b8ea7bddc9d99f22">02886</a> <span class="preprocessor">#define FF_PROFILE_MPEG4_SIMPLE 0</span>
<a name="l02887"></a><a class="code" href="libavcodec_2avcodec_8h.html#abea3c02650140af0bbd47fbf01daec08">02887</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1</span>
<a name="l02888"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab43e0021cde692a5fd4678836b5e5c54">02888</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_CORE 2</span>
<a name="l02889"></a><a class="code" href="libavcodec_2avcodec_8h.html#a03b294def5cfb5aa614e08a0631b1b49">02889</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_MAIN 3</span>
<a name="l02890"></a><a class="code" href="libavcodec_2avcodec_8h.html#a5a7c4e745d3162571484eaeb6a4c5178">02890</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_N_BIT 4</span>
<a name="l02891"></a><a class="code" href="libavcodec_2avcodec_8h.html#a93060c9bceca9cd5046a68fef46fbb82">02891</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5</span>
<a name="l02892"></a><a class="code" href="libavcodec_2avcodec_8h.html#aa8d21cdde0b35edcf8d10a0c54a15ffc">02892</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6</span>
<a name="l02893"></a><a class="code" href="libavcodec_2avcodec_8h.html#a33c8e6c5ad59b9e97a479bfb90edffc7">02893</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7</span>
<a name="l02894"></a><a class="code" href="libavcodec_2avcodec_8h.html#a3a0c9a69e0691b3516f6c249084f93c4">02894</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_HYBRID 8</span>
<a name="l02895"></a><a class="code" href="libavcodec_2avcodec_8h.html#a60f706c4f2482a24bc13d631ad5c1b7e">02895</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9</span>
<a name="l02896"></a><a class="code" href="libavcodec_2avcodec_8h.html#ae1941024012faa76d859fca6c030aaa6">02896</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_CORE_SCALABLE 10</span>
<a name="l02897"></a><a class="code" href="libavcodec_2avcodec_8h.html#a017eab4ee0619aeef57b6a9870dbcb23">02897</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_ADVANCED_CODING 11</span>
<a name="l02898"></a><a class="code" href="libavcodec_2avcodec_8h.html#ad5dec947ea1c1935fbd8b6b899110107">02898</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_ADVANCED_CORE 12</span>
<a name="l02899"></a><a class="code" href="libavcodec_2avcodec_8h.html#a76ee3d6a5ac36fe01cec2b35327a0cef">02899</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13</span>
<a name="l02900"></a><a class="code" href="libavcodec_2avcodec_8h.html#a0746d4ff1a68003fc3e7a292a726df57">02900</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14</span>
<a name="l02901"></a>02901 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15</span>
<a name="l02902"></a><a class="code" href="libavcodec_2avcodec_8h.html#abbedf1c5ce38fd606c8ea3ff23b24433">02902</a> <span class="preprocessor"></span>
<a name="l02903"></a><a class="code" href="libavcodec_2avcodec_8h.html#a23e2ec0bce1801373c6ebcbfc8db929a">02903</a> <span class="preprocessor">#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 0</span>
<a name="l02904"></a><a class="code" href="libavcodec_2avcodec_8h.html#af491f713967cde5a43d611d64ad58a1d">02904</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 1</span>
<a name="l02905"></a><a class="code" href="libavcodec_2avcodec_8h.html#a4b1d94788381bd9340198c6c17a55952">02905</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 2</span>
<a name="l02906"></a><a class="code" href="libavcodec_2avcodec_8h.html#aec0654396126240d9d5a36e50ba0cca6">02906</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_JPEG2000_DCINEMA_2K 3</span>
<a name="l02907"></a>02907 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_JPEG2000_DCINEMA_4K 4</span>
<a name="l02908"></a>02908 <span class="preprocessor"></span>
<a name="l02909"></a><a class="code" href="libavcodec_2avcodec_8h.html#af7a5858840ff5f2c70ae33a2cd1f4228">02909</a>
<a name="l02910"></a><a class="code" href="libavcodec_2avcodec_8h.html#aaf015040dda97fac08a56ddbd1dd1e31">02910</a> <span class="preprocessor">#define FF_PROFILE_HEVC_MAIN 1</span>
<a name="l02911"></a><a class="code" href="libavcodec_2avcodec_8h.html#a571768f99442e5974cdf412ede46d0fc">02911</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_HEVC_MAIN_10 2</span>
<a name="l02912"></a><a class="code" href="libavcodec_2avcodec_8h.html#aedc45d7b874ec5c3e4e9b6e9d948abc4">02912</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3</span>
<a name="l02913"></a>02913 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_HEVC_REXT 4</span>
<a name="l02914"></a><a class="code" href="libavcodec_2avcodec_8h.html#aca9bdc839584f2c62a66d6657ddfe31f">02914</a> <span class="preprocessor"></span>
<a name="l02915"></a><a class="code" href="libavcodec_2avcodec_8h.html#af05b7b71609aa8e4efcb2e7df02027ef">02915</a> <span class="preprocessor">#define FF_PROFILE_VP9_0 0</span>
<a name="l02916"></a><a class="code" href="libavcodec_2avcodec_8h.html#a99fec6491d90b225160c733a410d47b0">02916</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_VP9_1 1</span>
<a name="l02917"></a><a class="code" href="libavcodec_2avcodec_8h.html#a68329d23537086cf9d8e031c4d19d791">02917</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_VP9_2 2</span>
<a name="l02918"></a>02918 <span class="preprocessor"></span><span class="preprocessor">#define FF_PROFILE_VP9_3 3</span>
<a name="l02919"></a>02919 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02920"></a>02920 <span class="comment"> /**</span>
<a name="l02921"></a>02921 <span class="comment"> * level</span>
<a name="l02922"></a>02922 <span class="comment"> * - encoding: Set by user.</span>
<a name="l02923"></a>02923 <span class="comment"> * - decoding: Set by libavcodec.</span>
<a name="l02924"></a><a class="code" href="structAVCodecContext.html#a6927dc652ae6241f1dfdbad4e12d3a40">02924</a> <span class="comment"> */</span>
<a name="l02925"></a><a class="code" href="libavcodec_2avcodec_8h.html#a84a993ea19afa2cbda45b3283a598fe6">02925</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a6927dc652ae6241f1dfdbad4e12d3a40" title="level">level</a>;
<a name="l02926"></a>02926 <span class="preprocessor">#define FF_LEVEL_UNKNOWN -99</span>
<a name="l02927"></a>02927 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02928"></a>02928 <span class="comment"> /**</span>
<a name="l02929"></a>02929 <span class="comment"> * Skip loop filtering for selected frames.</span>
<a name="l02930"></a>02930 <span class="comment"> * - encoding: unused</span>
<a name="l02931"></a>02931 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02932"></a><a class="code" href="structAVCodecContext.html#a6be328131743a97103b89e028e62e771">02932</a> <span class="comment"> */</span>
<a name="l02933"></a>02933 <span class="keyword">enum</span> <a class="code" href="group__lavc__decoding.html#ga352363bce7d3ed82c101b3bc001d1c16">AVDiscard</a> <a class="code" href="structAVCodecContext.html#a6be328131743a97103b89e028e62e771" title="Skip loop filtering for selected frames.">skip_loop_filter</a>;
<a name="l02934"></a>02934 <span class="comment"></span>
<a name="l02935"></a>02935 <span class="comment"> /**</span>
<a name="l02936"></a>02936 <span class="comment"> * Skip IDCT/dequantization for selected frames.</span>
<a name="l02937"></a>02937 <span class="comment"> * - encoding: unused</span>
<a name="l02938"></a>02938 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02939"></a><a class="code" href="structAVCodecContext.html#ac3d90275bfb1153a5b00ebc2dd32a689">02939</a> <span class="comment"> */</span>
<a name="l02940"></a>02940 <span class="keyword">enum</span> <a class="code" href="group__lavc__decoding.html#ga352363bce7d3ed82c101b3bc001d1c16">AVDiscard</a> <a class="code" href="structAVCodecContext.html#ac3d90275bfb1153a5b00ebc2dd32a689" title="Skip IDCT/dequantization for selected frames.">skip_idct</a>;
<a name="l02941"></a>02941 <span class="comment"></span>
<a name="l02942"></a>02942 <span class="comment"> /**</span>
<a name="l02943"></a>02943 <span class="comment"> * Skip decoding for selected frames.</span>
<a name="l02944"></a>02944 <span class="comment"> * - encoding: unused</span>
<a name="l02945"></a>02945 <span class="comment"> * - decoding: Set by user.</span>
<a name="l02946"></a><a class="code" href="structAVCodecContext.html#af869b808363998c80adf7df6a944a5a6">02946</a> <span class="comment"> */</span>
<a name="l02947"></a>02947 <span class="keyword">enum</span> <a class="code" href="group__lavc__decoding.html#ga352363bce7d3ed82c101b3bc001d1c16">AVDiscard</a> <a class="code" href="structAVCodecContext.html#af869b808363998c80adf7df6a944a5a6" title="Skip decoding for selected frames.">skip_frame</a>;
<a name="l02948"></a>02948 <span class="comment"></span>
<a name="l02949"></a>02949 <span class="comment"> /**</span>
<a name="l02950"></a>02950 <span class="comment"> * Header containing style information for text subtitles.</span>
<a name="l02951"></a>02951 <span class="comment"> * For SUBTITLE_ASS subtitle type, it should contain the whole ASS</span>
<a name="l02952"></a>02952 <span class="comment"> * [Script Info] and [V4+ Styles] section, plus the [Events] line and</span>
<a name="l02953"></a>02953 <span class="comment"> * the Format line following. It shouldn't include any Dialogue line.</span>
<a name="l02954"></a>02954 <span class="comment"> * - encoding: Set/allocated/freed by user (before avcodec_open2())</span>
<a name="l02955"></a>02955 <span class="comment"> * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2())</span>
<a name="l02956"></a><a class="code" href="structAVCodecContext.html#ab781cbaef6311226481e65a7f1a6d049">02956</a> <span class="comment"> */</span>
<a name="l02957"></a><a class="code" href="structAVCodecContext.html#a0d7c381913c9918caf6969fef8806694">02957</a> uint8_t *<a class="code" href="structAVCodecContext.html#ab781cbaef6311226481e65a7f1a6d049" title="Header containing style information for text subtitles.">subtitle_header</a>;
<a name="l02958"></a>02958 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a0d7c381913c9918caf6969fef8806694">subtitle_header_size</a>;
<a name="l02959"></a>02959
<a name="l02960"></a>02960 <span class="preprocessor">#if FF_API_ERROR_RATE</span>
<a name="l02961"></a>02961 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02962"></a>02962 <span class="comment"> * @deprecated use the 'error_rate' private AVOption of the mpegvideo</span>
<a name="l02963"></a>02963 <span class="comment"> * encoders</span>
<a name="l02964"></a>02964 <span class="comment"> */</span>
<a name="l02965"></a><a class="code" href="structAVCodecContext.html#ae6c5c21d82ecb2dc36a9180979c81227">02965</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02966"></a>02966 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ae6c5c21d82ecb2dc36a9180979c81227">error_rate</a>;
<a name="l02967"></a>02967 <span class="preprocessor">#endif</span>
<a name="l02968"></a>02968 <span class="preprocessor"></span>
<a name="l02969"></a>02969 <span class="preprocessor">#if FF_API_CODEC_PKT</span>
<a name="l02970"></a>02970 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l02971"></a>02971 <span class="comment"> * @deprecated this field is not supposed to be accessed from outside lavc</span>
<a name="l02972"></a>02972 <span class="comment"> */</span>
<a name="l02973"></a><a class="code" href="structAVCodecContext.html#a664ccfc97e45f52d4086759431f0c1fa">02973</a> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l02974"></a>02974 <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="structAVCodecContext.html#a664ccfc97e45f52d4086759431f0c1fa">pkt</a>;
<a name="l02975"></a>02975 <span class="preprocessor">#endif</span>
<a name="l02976"></a>02976 <span class="preprocessor"></span><span class="comment"></span>
<a name="l02977"></a>02977 <span class="comment"> /**</span>
<a name="l02978"></a>02978 <span class="comment"> * VBV delay coded in the last frame (in periods of a 27 MHz clock).</span>
<a name="l02979"></a>02979 <span class="comment"> * Used for compliant TS muxing.</span>
<a name="l02980"></a>02980 <span class="comment"> * - encoding: Set by libavcodec.</span>
<a name="l02981"></a>02981 <span class="comment"> * - decoding: unused.</span>
<a name="l02982"></a><a class="code" href="structAVCodecContext.html#a35469829873ff8e5444040323e8e1e59">02982</a> <span class="comment"> */</span>
<a name="l02983"></a>02983 uint64_t <a class="code" href="structAVCodecContext.html#a35469829873ff8e5444040323e8e1e59" title="VBV delay coded in the last frame (in periods of a 27 MHz clock).">vbv_delay</a>;
<a name="l02984"></a>02984 <span class="comment"></span>
<a name="l02985"></a>02985 <span class="comment"> /**</span>
<a name="l02986"></a>02986 <span class="comment"> * Encoding only. Allow encoders to output packets that do not contain any</span>
<a name="l02987"></a>02987 <span class="comment"> * encoded data, only side data.</span>
<a name="l02988"></a>02988 <span class="comment"> *</span>
<a name="l02989"></a>02989 <span class="comment"> * Some encoders need to output such packets, e.g. to update some stream</span>
<a name="l02990"></a>02990 <span class="comment"> * parameters at the end of encoding.</span>
<a name="l02991"></a>02991 <span class="comment"> *</span>
<a name="l02992"></a>02992 <span class="comment"> * All callers are strongly recommended to set this option to 1 and update</span>
<a name="l02993"></a>02993 <span class="comment"> * their code to deal with such packets, since this behaviour may become</span>
<a name="l02994"></a>02994 <span class="comment"> * always enabled in the future (then this option will be deprecated and</span>
<a name="l02995"></a>02995 <span class="comment"> * later removed). To avoid ABI issues when this happens, the callers should</span>
<a name="l02996"></a>02996 <span class="comment"> * use AVOptions to set this field.</span>
<a name="l02997"></a><a class="code" href="structAVCodecContext.html#a7145d255a1d28431bf6f23fa7b9240f3">02997</a> <span class="comment"> */</span>
<a name="l02998"></a>02998 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a7145d255a1d28431bf6f23fa7b9240f3" title="Encoding only.">side_data_only_packets</a>;
<a name="l02999"></a>02999 <span class="comment"></span>
<a name="l03000"></a>03000 <span class="comment"> /**</span>
<a name="l03001"></a>03001 <span class="comment"> * Audio only. The number of "priming" samples (padding) inserted by the</span>
<a name="l03002"></a>03002 <span class="comment"> * encoder at the beginning of the audio. I.e. this number of leading</span>
<a name="l03003"></a>03003 <span class="comment"> * decoded samples must be discarded by the caller to get the original audio</span>
<a name="l03004"></a>03004 <span class="comment"> * without leading padding.</span>
<a name="l03005"></a>03005 <span class="comment"> *</span>
<a name="l03006"></a>03006 <span class="comment"> * - decoding: unused</span>
<a name="l03007"></a>03007 <span class="comment"> * - encoding: Set by libavcodec. The timestamps on the output packets are</span>
<a name="l03008"></a>03008 <span class="comment"> * adjusted by the encoder so that they always refer to the</span>
<a name="l03009"></a>03009 <span class="comment"> * first sample of the data actually contained in the packet,</span>
<a name="l03010"></a>03010 <span class="comment"> * including any added padding. E.g. if the timebase is</span>
<a name="l03011"></a>03011 <span class="comment"> * 1/samplerate and the timestamp of the first input sample is</span>
<a name="l03012"></a>03012 <span class="comment"> * 0, the timestamp of the first output packet will be</span>
<a name="l03013"></a>03013 <span class="comment"> * -initial_padding.</span>
<a name="l03014"></a><a class="code" href="structAVCodecContext.html#a8f95550ce04f236e9915516d04d3d1ab">03014</a> <span class="comment"> */</span>
<a name="l03015"></a>03015 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a8f95550ce04f236e9915516d04d3d1ab" title="Audio only.">initial_padding</a>;
<a name="l03016"></a>03016 <span class="comment"></span>
<a name="l03017"></a>03017 <span class="comment"> /**</span>
<a name="l03018"></a>03018 <span class="comment"> * - decoding: For codecs that store a framerate value in the compressed</span>
<a name="l03019"></a>03019 <span class="comment"> * bitstream, the decoder may export it here. { 0, 1} when</span>
<a name="l03020"></a>03020 <span class="comment"> * unknown.</span>
<a name="l03021"></a>03021 <span class="comment"> * - encoding: unused</span>
<a name="l03022"></a><a class="code" href="structAVCodecContext.html#a4d08b297e97eefd66c714df4fff493c8">03022</a> <span class="comment"> */</span>
<a name="l03023"></a>03023 <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> <a class="code" href="structAVCodecContext.html#a4d08b297e97eefd66c714df4fff493c8">framerate</a>;
<a name="l03024"></a>03024 <span class="comment"></span>
<a name="l03025"></a>03025 <span class="comment"> /**</span>
<a name="l03026"></a>03026 <span class="comment"> * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.</span>
<a name="l03027"></a>03027 <span class="comment"> * - encoding: unused.</span>
<a name="l03028"></a>03028 <span class="comment"> * - decoding: Set by libavcodec before calling get_format()</span>
<a name="l03029"></a><a class="code" href="structAVCodecContext.html#a1ff9829b01eeb0063c21d039dcc5900d">03029</a> <span class="comment"> */</span>
<a name="l03030"></a>03030 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="structAVCodecContext.html#a1ff9829b01eeb0063c21d039dcc5900d" title="Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx.">sw_pix_fmt</a>;
<a name="l03031"></a>03031 <span class="comment"></span>
<a name="l03032"></a>03032 <span class="comment"> /**</span>
<a name="l03033"></a>03033 <span class="comment"> * Timebase in which pkt_dts/pts and AVPacket.dts/pts are.</span>
<a name="l03034"></a>03034 <span class="comment"> * Code outside libavcodec should access this field using:</span>
<a name="l03035"></a>03035 <span class="comment"> * av_codec_{get,set}_pkt_timebase(avctx)</span>
<a name="l03036"></a>03036 <span class="comment"> * - encoding unused.</span>
<a name="l03037"></a>03037 <span class="comment"> * - decoding set by user.</span>
<a name="l03038"></a><a class="code" href="structAVCodecContext.html#a33a289c990bc3fbcad01c4a09f34da38">03038</a> <span class="comment"> */</span>
<a name="l03039"></a>03039 <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> <a class="code" href="structAVCodecContext.html#a33a289c990bc3fbcad01c4a09f34da38" title="Timebase in which pkt_dts/pts and AVPacket.dts/pts are.">pkt_timebase</a>;
<a name="l03040"></a>03040 <span class="comment"></span>
<a name="l03041"></a>03041 <span class="comment"> /**</span>
<a name="l03042"></a>03042 <span class="comment"> * AVCodecDescriptor</span>
<a name="l03043"></a>03043 <span class="comment"> * Code outside libavcodec should access this field using:</span>
<a name="l03044"></a>03044 <span class="comment"> * av_codec_{get,set}_codec_descriptor(avctx)</span>
<a name="l03045"></a>03045 <span class="comment"> * - encoding: unused.</span>
<a name="l03046"></a>03046 <span class="comment"> * - decoding: set by libavcodec.</span>
<a name="l03047"></a><a class="code" href="structAVCodecContext.html#a0a67e07b5cc77bb9dabeba7fa4c41f78">03047</a> <span class="comment"> */</span>
<a name="l03048"></a>03048 <span class="keyword">const</span> <a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a> *<a class="code" href="structAVCodecContext.html#a0a67e07b5cc77bb9dabeba7fa4c41f78" title="AVCodecDescriptor Code outside libavcodec should access this field using: av_codec_{get,set}_codec_descriptor(avctx)">codec_descriptor</a>;
<a name="l03049"></a>03049
<a name="l03050"></a>03050 <span class="preprocessor">#if !FF_API_LOWRES</span>
<a name="l03051"></a>03051 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l03052"></a>03052 <span class="comment"> * low resolution decoding, 1-> 1/2 size, 2->1/4 size</span>
<a name="l03053"></a>03053 <span class="comment"> * - encoding: unused</span>
<a name="l03054"></a>03054 <span class="comment"> * - decoding: Set by user.</span>
<a name="l03055"></a>03055 <span class="comment"> * Code outside libavcodec should access this field using:</span>
<a name="l03056"></a>03056 <span class="comment"> * av_codec_{get,set}_lowres(avctx)</span>
<a name="l03057"></a>03057 <span class="comment"> */</span>
<a name="l03058"></a>03058 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#af260210a39ad4781d8d47ddac1541d04" title="low resolution decoding, 1-> 1/2 size, 2->1/4 size">lowres</a>;
<a name="l03059"></a>03059 <span class="preprocessor">#endif</span>
<a name="l03060"></a>03060 <span class="preprocessor"></span><span class="comment"></span>
<a name="l03061"></a>03061 <span class="comment"> /**</span>
<a name="l03062"></a>03062 <span class="comment"> * Current statistics for PTS correction.</span>
<a name="l03063"></a>03063 <span class="comment"> * - decoding: maintained and used by libavcodec, not intended to be used by user apps</span>
<a name="l03064"></a>03064 <span class="comment"> * - encoding: unused</span>
<a name="l03065"></a><a class="code" href="structAVCodecContext.html#a6d940d300cd7aca6ae9a9af9ba58e5cc">03065</a> <span class="comment"> */</span>
<a name="l03066"></a><a class="code" href="structAVCodecContext.html#a0de395898981d1bc1edad3198fb64b30">03066</a> int64_t <a class="code" href="structAVCodecContext.html#a6d940d300cd7aca6ae9a9af9ba58e5cc" title="Current statistics for PTS correction.">pts_correction_num_faulty_pts</a>; <span class="comment">/// Number of incorrect PTS values so far</span>
<a name="l03067"></a><a class="code" href="structAVCodecContext.html#a16b6e9857d88041fa37a92b722b6c74a">03067</a> <span class="comment"></span> int64_t <a class="code" href="structAVCodecContext.html#a0de395898981d1bc1edad3198fb64b30" title="Number of incorrect PTS values so far.">pts_correction_num_faulty_dts</a>; <span class="comment">/// Number of incorrect DTS values so far</span>
<a name="l03068"></a><a class="code" href="structAVCodecContext.html#a0851bd5a557ed7f8377c491fda568508">03068</a> <span class="comment"></span> int64_t <a class="code" href="structAVCodecContext.html#a16b6e9857d88041fa37a92b722b6c74a" title="Number of incorrect DTS values so far.">pts_correction_last_pts</a>; <span class="comment">/// PTS of the last frame</span>
<a name="l03069"></a>03069 <span class="comment"></span> int64_t <a class="code" href="structAVCodecContext.html#a0851bd5a557ed7f8377c491fda568508" title="PTS of the last frame.">pts_correction_last_dts</a>; <span class="comment">/// DTS of the last frame</span>
<a name="l03070"></a>03070 <span class="comment"></span><span class="comment"></span>
<a name="l03071"></a>03071 <span class="comment"> /**</span>
<a name="l03072"></a>03072 <span class="comment"> * Character encoding of the input subtitles file.</span>
<a name="l03073"></a>03073 <span class="comment"> * - decoding: set by user</span>
<a name="l03074"></a>03074 <span class="comment"> * - encoding: unused</span>
<a name="l03075"></a><a class="code" href="structAVCodecContext.html#a25710250c5d1319ba14ee7f3112a8aa2">03075</a> <span class="comment"> */</span>
<a name="l03076"></a>03076 <span class="keywordtype">char</span> *<a class="code" href="structAVCodecContext.html#a25710250c5d1319ba14ee7f3112a8aa2" title="DTS of the last frame.">sub_charenc</a>;
<a name="l03077"></a>03077 <span class="comment"></span>
<a name="l03078"></a>03078 <span class="comment"> /**</span>
<a name="l03079"></a>03079 <span class="comment"> * Subtitles character encoding mode. Formats or codecs might be adjusting</span>
<a name="l03080"></a>03080 <span class="comment"> * this setting (if they are doing the conversion themselves for instance).</span>
<a name="l03081"></a>03081 <span class="comment"> * - decoding: set by libavcodec</span>
<a name="l03082"></a>03082 <span class="comment"> * - encoding: unused</span>
<a name="l03083"></a><a class="code" href="structAVCodecContext.html#a62b675cebedf1e64ca7faecbb23d30a5">03083</a> <span class="comment"> */</span>
<a name="l03084"></a><a class="code" href="libavcodec_2avcodec_8h.html#a24f242b422983ef432c067cf95b0bbd5">03084</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a62b675cebedf1e64ca7faecbb23d30a5" title="Subtitles character encoding mode.">sub_charenc_mode</a>;
<a name="l03085"></a><a class="code" href="libavcodec_2avcodec_8h.html#ad4863eea99be2c3f2dafc1836adc50e4">03085</a> <span class="preprocessor">#define FF_SUB_CHARENC_MODE_DO_NOTHING -1 ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8, or the codec is bitmap for instance)</span>
<a name="l03086"></a><a class="code" href="libavcodec_2avcodec_8h.html#ad8c57be6b395b23866634a0ea9fba2ac">03086</a> <span class="preprocessor"></span><span class="preprocessor">#define FF_SUB_CHARENC_MODE_AUTOMATIC 0 ///< libavcodec will select the mode itself</span>
<a name="l03087"></a>03087 <span class="preprocessor"></span><span class="preprocessor">#define FF_SUB_CHARENC_MODE_PRE_DECODER 1 ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv</span>
<a name="l03088"></a>03088 <span class="preprocessor"></span><span class="comment"></span>
<a name="l03089"></a>03089 <span class="comment"> /**</span>
<a name="l03090"></a>03090 <span class="comment"> * Skip processing alpha if supported by codec.</span>
<a name="l03091"></a>03091 <span class="comment"> * Note that if the format uses pre-multiplied alpha (common with VP6,</span>
<a name="l03092"></a>03092 <span class="comment"> * and recommended due to better video quality/compression)</span>
<a name="l03093"></a>03093 <span class="comment"> * the image will look as if alpha-blended onto a black background.</span>
<a name="l03094"></a>03094 <span class="comment"> * However for formats that do not use pre-multiplied alpha</span>
<a name="l03095"></a>03095 <span class="comment"> * there might be serious artefacts (though e.g. libswscale currently</span>
<a name="l03096"></a>03096 <span class="comment"> * assumes pre-multiplied alpha anyway).</span>
<a name="l03097"></a>03097 <span class="comment"> * Code outside libavcodec should access this field using AVOptions</span>
<a name="l03098"></a>03098 <span class="comment"> *</span>
<a name="l03099"></a>03099 <span class="comment"> * - decoding: set by user</span>
<a name="l03100"></a>03100 <span class="comment"> * - encoding: unused</span>
<a name="l03101"></a><a class="code" href="structAVCodecContext.html#a9fca29999231cacbaf1d4754d9a74997">03101</a> <span class="comment"> */</span>
<a name="l03102"></a>03102 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#a9fca29999231cacbaf1d4754d9a74997" title="Skip processing alpha if supported by codec.">skip_alpha</a>;
<a name="l03103"></a>03103 <span class="comment"></span>
<a name="l03104"></a>03104 <span class="comment"> /**</span>
<a name="l03105"></a>03105 <span class="comment"> * Number of samples to skip after a discontinuity</span>
<a name="l03106"></a>03106 <span class="comment"> * - decoding: unused</span>
<a name="l03107"></a>03107 <span class="comment"> * - encoding: set by libavcodec</span>
<a name="l03108"></a><a class="code" href="structAVCodecContext.html#abbde5fb68f6f3dbaa570b37d4769e79f">03108</a> <span class="comment"> */</span>
<a name="l03109"></a>03109 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#abbde5fb68f6f3dbaa570b37d4769e79f" title="Number of samples to skip after a discontinuity.">seek_preroll</a>;
<a name="l03110"></a>03110
<a name="l03111"></a>03111 <span class="preprocessor">#if !FF_API_DEBUG_MV</span>
<a name="l03112"></a>03112 <span class="preprocessor"></span><span class="comment"> /**</span>
<a name="l03113"></a>03113 <span class="comment"> * debug motion vectors</span>
<a name="l03114"></a>03114 <span class="comment"> * Code outside libavcodec should access this field using AVOptions</span>
<a name="l03115"></a>03115 <span class="comment"> * - encoding: Set by user.</span>
<a name="l03116"></a>03116 <span class="comment"> * - decoding: Set by user.</span>
<a name="l03117"></a>03117 <span class="comment"> */</span>
<a name="l03118"></a>03118 <span class="keywordtype">int</span> <a class="code" href="structAVCodecContext.html#ad823755aadd6eec734c216dbb17f145d" title="debug Code outside libavcodec should access this field using AVOptions">debug_mv</a>;
<a name="l03119"></a>03119 <span class="preprocessor">#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames</span>
<a name="l03120"></a>03120 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames</span>
<a name="l03121"></a>03121 <span class="preprocessor"></span><span class="preprocessor">#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames</span>
<a name="l03122"></a>03122 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l03123"></a>03123 <span class="preprocessor"></span><span class="comment"></span>
<a name="l03124"></a>03124 <span class="comment"> /**</span>
<a name="l03125"></a>03125 <span class="comment"> * custom intra quantization matrix</span>
<a name="l03126"></a>03126 <span class="comment"> * Code outside libavcodec should access this field using av_codec_g/set_chroma_intra_matrix()</span>
<a name="l03127"></a>03127 <span class="comment"> * - encoding: Set by user, can be NULL.</span>
<a name="l03128"></a>03128 <span class="comment"> * - decoding: unused.</span>
<a name="l03129"></a><a class="code" href="structAVCodecContext.html#a0a285528f0f1ad5c9d639f427839e5d3">03129</a> <span class="comment"> */</span>
<a name="l03130"></a>03130 uint16_t *<a class="code" href="structAVCodecContext.html#a0a285528f0f1ad5c9d639f427839e5d3" title="custom intra quantization matrix Code outside libavcodec should access this field using av_codec_g/se...">chroma_intra_matrix</a>;
<a name="l03131"></a>03131 <span class="comment"></span>
<a name="l03132"></a>03132 <span class="comment"> /**</span>
<a name="l03133"></a>03133 <span class="comment"> * dump format separator.</span>
<a name="l03134"></a>03134 <span class="comment"> * can be ", " or "\n " or anything else</span>
<a name="l03135"></a>03135 <span class="comment"> * Code outside libavcodec should access this field using AVOptions</span>
<a name="l03136"></a>03136 <span class="comment"> * (NO direct access).</span>
<a name="l03137"></a>03137 <span class="comment"> * - encoding: Set by user.</span>
<a name="l03138"></a>03138 <span class="comment"> * - decoding: Set by user.</span>
<a name="l03139"></a><a class="code" href="structAVCodecContext.html#a557229c13464f52453af49da355c7c15">03139</a> <span class="comment"> */</span>
<a name="l03140"></a>03140 uint8_t *<a class="code" href="structAVCodecContext.html#a557229c13464f52453af49da355c7c15" title="dump format separator.">dump_separator</a>;
<a name="l03141"></a>03141 <span class="comment"></span>
<a name="l03142"></a>03142 <span class="comment"> /**</span>
<a name="l03143"></a>03143 <span class="comment"> * ',' separated list of allowed decoders.</span>
<a name="l03144"></a>03144 <span class="comment"> * If NULL then all are allowed</span>
<a name="l03145"></a>03145 <span class="comment"> * - encoding: unused</span>
<a name="l03146"></a>03146 <span class="comment"> * - decoding: set by user through AVOPtions (NO direct access)</span>
<a name="l03147"></a><a class="code" href="structAVCodecContext.html#a686db9ef12f1ea177c76d1628186e680">03147</a> <span class="comment"> */</span>
<a name="l03148"></a>03148 <span class="keywordtype">char</span> *<a class="code" href="structAVCodecContext.html#a686db9ef12f1ea177c76d1628186e680" title="',' separated list of allowed decoders.">codec_whitelist</a>;
<a name="l03149"></a>03149 } <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a>;
<a name="l03150"></a>03150
<a name="l03151"></a>03151 <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> <a class="code" href="group__lavc__core.html#ga99afa816f3fc9251ecf54ad305d43be3">av_codec_get_pkt_timebase</a> (<span class="keyword">const</span> <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03152"></a>03152 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#ga89c6c7cf5717165b8751aa84bf397557">av_codec_set_pkt_timebase</a> (<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> val);
<a name="l03153"></a>03153
<a name="l03154"></a>03154 <span class="keyword">const</span> <a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a> *<a class="code" href="group__lavc__core.html#gad7c67883918a8a68710b6f89f461c37f">av_codec_get_codec_descriptor</a>(<span class="keyword">const</span> <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03155"></a>03155 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#gad07ba397392e00cb2560cc9a39a60745">av_codec_set_codec_descriptor</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keyword">const</span> <a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a> *desc);
<a name="l03156"></a>03156
<a name="l03157"></a>03157 <span class="keywordtype">int</span> <a class="code" href="group__lavc__core.html#gae52334a4870627285d40a77be95dbe85">av_codec_get_lowres</a>(<span class="keyword">const</span> <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03158"></a>03158 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#gaf4af025ede1f451152486b8f2805f544">av_codec_set_lowres</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keywordtype">int</span> val);
<a name="l03159"></a>03159
<a name="l03160"></a>03160 <span class="keywordtype">int</span> <a class="code" href="group__lavc__core.html#ga1065b464eb473666a6758d4d7089385e">av_codec_get_seek_preroll</a>(<span class="keyword">const</span> <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03161"></a>03161 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#ga7b1bfa942a5074882680616694e93c59">av_codec_set_seek_preroll</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keywordtype">int</span> val);
<a name="l03162"></a>03162
<a name="l03163"></a>03163 uint16_t *<a class="code" href="group__lavc__core.html#ga5425dce8ae0a9f8ab8ac09b131b083f6">av_codec_get_chroma_intra_matrix</a>(<span class="keyword">const</span> <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03164"></a>03164 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#ga5e57eb44d2173147901d8415cb85f4d7">av_codec_set_chroma_intra_matrix</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, uint16_t *val);
<a name="l03165"></a>03165 <span class="comment"></span>
<a name="l03166"></a>03166 <span class="comment">/**</span>
<a name="l03167"></a>03167 <span class="comment"> * AVProfile.</span>
<a name="l03168"></a><a class="code" href="structAVProfile.html">03168</a> <span class="comment"> */</span>
<a name="l03169"></a><a class="code" href="structAVProfile.html#a3f7b83013dedfe74c8886eed84b65795">03169</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVProfile.html" title="AVProfile.">AVProfile</a> {
<a name="l03170"></a><a class="code" href="structAVProfile.html#aae85c56975b715b70102c71efac935fc">03170</a> <span class="keywordtype">int</span> <a class="code" href="structAVProfile.html#a3f7b83013dedfe74c8886eed84b65795">profile</a>;
<a name="l03171"></a>03171 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVProfile.html#aae85c56975b715b70102c71efac935fc" title="short name for the profile">name</a>; <span class="comment">///< short name for the profile</span>
<a name="l03172"></a>03172 <span class="comment"></span>} <a class="code" href="structAVProfile.html" title="AVProfile.">AVProfile</a>;
<a name="l03173"></a><a class="code" href="group__lavc__core.html#ga27561af66de4a75c3da1dc61f8c5cd9a">03173</a>
<a name="l03174"></a>03174 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__lavc__core.html#ga27561af66de4a75c3da1dc61f8c5cd9a">AVCodecDefault</a> <a class="code" href="group__lavc__core.html#ga27561af66de4a75c3da1dc61f8c5cd9a">AVCodecDefault</a>;
<a name="l03175"></a>03175
<a name="l03176"></a>03176 <span class="keyword">struct </span><a class="code" href="structAVSubtitle.html">AVSubtitle</a>;
<a name="l03177"></a>03177 <span class="comment"></span>
<a name="l03178"></a>03178 <span class="comment">/**</span>
<a name="l03179"></a>03179 <span class="comment"> * AVCodec.</span>
<a name="l03180"></a><a class="code" href="structAVCodec.html">03180</a> <span class="comment"> */</span>
<a name="l03181"></a>03181 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> {<span class="comment"></span>
<a name="l03182"></a>03182 <span class="comment"> /**</span>
<a name="l03183"></a>03183 <span class="comment"> * Name of the codec implementation.</span>
<a name="l03184"></a>03184 <span class="comment"> * The name is globally unique among encoders and among decoders (but an</span>
<a name="l03185"></a>03185 <span class="comment"> * encoder and a decoder can share the same name).</span>
<a name="l03186"></a>03186 <span class="comment"> * This is the primary way to find a codec from the user perspective.</span>
<a name="l03187"></a><a class="code" href="structAVCodec.html#ad3daa3e729850b573c139a83be8938ca">03187</a> <span class="comment"> */</span>
<a name="l03188"></a>03188 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVCodec.html#ad3daa3e729850b573c139a83be8938ca" title="Name of the codec implementation.">name</a>;<span class="comment"></span>
<a name="l03189"></a>03189 <span class="comment"> /**</span>
<a name="l03190"></a>03190 <span class="comment"> * Descriptive name for the codec, meant to be more human readable than name.</span>
<a name="l03191"></a>03191 <span class="comment"> * You should use the NULL_IF_CONFIG_SMALL() macro to define it.</span>
<a name="l03192"></a><a class="code" href="structAVCodec.html#acb4afcfce3b6541ed70aa7f21d507422">03192</a> <span class="comment"> */</span>
<a name="l03193"></a><a class="code" href="structAVCodec.html#ab539ca86026d043803c24ba06fa84197">03193</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVCodec.html#acb4afcfce3b6541ed70aa7f21d507422" title="Descriptive name for the codec, meant to be more human readable than name.">long_name</a>;
<a name="l03194"></a><a class="code" href="structAVCodec.html#a01a53d07936f4c7ee280444793b6967b">03194</a> <span class="keyword">enum</span> <a class="code" href="group__lavu__misc.html#ga9a84bba4713dfced21a1a56163be1f48">AVMediaType</a> <a class="code" href="structAVCodec.html#ab539ca86026d043803c24ba06fa84197">type</a>;
<a name="l03195"></a>03195 <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <a class="code" href="structAVCodec.html#a01a53d07936f4c7ee280444793b6967b">id</a>;<span class="comment"></span>
<a name="l03196"></a>03196 <span class="comment"> /**</span>
<a name="l03197"></a>03197 <span class="comment"> * Codec capabilities.</span>
<a name="l03198"></a>03198 <span class="comment"> * see CODEC_CAP_*</span>
<a name="l03199"></a><a class="code" href="structAVCodec.html#af51f7ff3dac8b730f46b9713e49a2518">03199</a> <span class="comment"> */</span>
<a name="l03200"></a><a class="code" href="structAVCodec.html#a5cc75a0ab41697df21a8cd649662190c">03200</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodec.html#af51f7ff3dac8b730f46b9713e49a2518" title="Codec capabilities.">capabilities</a>;
<a name="l03201"></a><a class="code" href="structAVCodec.html#ac2b97bd3c19686025e1b7d577329c250">03201</a> <span class="keyword">const</span> <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> *<a class="code" href="structAVCodec.html#a5cc75a0ab41697df21a8cd649662190c" title="array of supported framerates, or NULL if any, array is terminated by {0,0}">supported_framerates</a>; <span class="comment">///< array of supported framerates, or NULL if any, array is terminated by {0,0}</span>
<a name="l03202"></a><a class="code" href="structAVCodec.html#aee7a194f1c3251958d3dabed3fa8148e">03202</a> <span class="comment"></span> <span class="keyword">const</span> <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> *<a class="code" href="structAVCodec.html#ac2b97bd3c19686025e1b7d577329c250" title="array of supported pixel formats, or NULL if unknown, array is terminated by -1">pix_fmts</a>; <span class="comment">///< array of supported pixel formats, or NULL if unknown, array is terminated by -1</span>
<a name="l03203"></a><a class="code" href="structAVCodec.html#aac19f4c45370f715412ad5c7b78daacf">03203</a> <span class="comment"></span> <span class="keyword">const</span> <span class="keywordtype">int</span> *<a class="code" href="structAVCodec.html#aee7a194f1c3251958d3dabed3fa8148e" title="array of supported audio samplerates, or NULL if unknown, array is terminated by 0">supported_samplerates</a>; <span class="comment">///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0</span>
<a name="l03204"></a><a class="code" href="structAVCodec.html#a1d4c5152626bbd1f575a3e0014cb59e7">03204</a> <span class="comment"></span> <span class="keyword">const</span> <span class="keyword">enum</span> <a class="code" href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5" title="Audio sample formats.">AVSampleFormat</a> *<a class="code" href="structAVCodec.html#aac19f4c45370f715412ad5c7b78daacf" title="array of supported sample formats, or NULL if unknown, array is terminated by -1">sample_fmts</a>; <span class="comment">///< array of supported sample formats, or NULL if unknown, array is terminated by -1</span>
<a name="l03205"></a>03205 <span class="comment"></span> <span class="keyword">const</span> uint64_t *<a class="code" href="structAVCodec.html#a1d4c5152626bbd1f575a3e0014cb59e7" title="array of support channel layouts, or NULL if unknown. array is terminated by 0">channel_layouts</a>; <span class="comment">///< array of support channel layouts, or NULL if unknown. array is terminated by 0</span>
<a name="l03206"></a><a class="code" href="structAVCodec.html#afc51006d374ca72dfa3b0e29cbb1d981">03206</a> <span class="comment"></span><span class="preprocessor">#if FF_API_LOWRES</span>
<a name="l03207"></a>03207 <span class="preprocessor"></span> uint8_t <a class="code" href="structAVCodec.html#afc51006d374ca72dfa3b0e29cbb1d981" title="maximum value for lowres supported by the decoder, no direct access, use av_codec_get_max_lowres()">max_lowres</a>; <span class="comment">///< maximum value for lowres supported by the decoder, no direct access, use av_codec_get_max_lowres()</span>
<a name="l03208"></a><a class="code" href="structAVCodec.html#a4ded9f7ec1fa1a73ea3e831428c100fa">03208</a> <span class="comment"></span><span class="preprocessor">#endif</span>
<a name="l03209"></a><a class="code" href="structAVCodec.html#ac832350f2bac582fe3d174e2e3b1eb5e">03209</a> <span class="preprocessor"></span> <span class="keyword">const</span> <a class="code" href="structAVClass.html" title="Describe the class of an AVClass context structure.">AVClass</a> *<a class="code" href="structAVCodec.html#a4ded9f7ec1fa1a73ea3e831428c100fa" title="AVClass for the private context.">priv_class</a>; <span class="comment">///< AVClass for the private context</span>
<a name="l03210"></a>03210 <span class="comment"></span> <span class="keyword">const</span> <a class="code" href="structAVProfile.html" title="AVProfile.">AVProfile</a> *<a class="code" href="structAVCodec.html#ac832350f2bac582fe3d174e2e3b1eb5e" title="array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}">profiles</a>; <span class="comment">///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}</span>
<a name="l03211"></a>03211 <span class="comment"></span>
<a name="l03212"></a>03212 <span class="comment">/*****************************************************************</span>
<a name="l03213"></a>03213 <span class="comment"> * No fields below this line are part of the public API. They</span>
<a name="l03214"></a>03214 <span class="comment"> * may not be used outside of libavcodec and can be changed and</span>
<a name="l03215"></a>03215 <span class="comment"> * removed at will.</span>
<a name="l03216"></a>03216 <span class="comment"> * New public fields should be added right above.</span>
<a name="l03217"></a>03217 <span class="comment"> *****************************************************************</span>
<a name="l03218"></a><a class="code" href="structAVCodec.html#aa86c803fcfc0ebb569b15d4645d0e796">03218</a> <span class="comment"> */</span>
<a name="l03219"></a><a class="code" href="structAVCodec.html#ab423f961a2ce8ef9442010909a29dbf5">03219</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodec.html#aa86c803fcfc0ebb569b15d4645d0e796">priv_data_size</a>;
<a name="l03220"></a>03220 <span class="keyword">struct </span><a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *<a class="code" href="structAVCodec.html#ab423f961a2ce8ef9442010909a29dbf5">next</a>;<span class="comment"></span>
<a name="l03221"></a>03221 <span class="comment"> /**</span>
<a name="l03222"></a>03222 <span class="comment"> * @name Frame-level threading support functions</span>
<a name="l03223"></a>03223 <span class="comment"> * @{</span>
<a name="l03224"></a>03224 <span class="comment"> */</span><span class="comment"></span>
<a name="l03225"></a>03225 <span class="comment"> /**</span>
<a name="l03226"></a>03226 <span class="comment"> * If defined, called on thread contexts when they are created.</span>
<a name="l03227"></a>03227 <span class="comment"> * If the codec allocates writable tables in init(), re-allocate them here.</span>
<a name="l03228"></a>03228 <span class="comment"> * priv_data will be set to a copy of the original.</span>
<a name="l03229"></a><a class="code" href="structAVCodec.html#ab62dd9bb53e1561be5b1354d50fb5158">03229</a> <span class="comment"> */</span>
<a name="l03230"></a>03230 int (*<a class="code" href="structAVCodec.html#ab62dd9bb53e1561be5b1354d50fb5158" title="If defined, called on thread contexts when they are created.">init_thread_copy</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *);<span class="comment"></span>
<a name="l03231"></a>03231 <span class="comment"> /**</span>
<a name="l03232"></a>03232 <span class="comment"> * Copy necessary context variables from a previous thread context to the current one.</span>
<a name="l03233"></a>03233 <span class="comment"> * If not defined, the next thread will start automatically; otherwise, the codec</span>
<a name="l03234"></a>03234 <span class="comment"> * must call ff_thread_finish_setup().</span>
<a name="l03235"></a>03235 <span class="comment"> *</span>
<a name="l03236"></a>03236 <span class="comment"> * dst and src will (rarely) point to the same context, in which case memcpy should be skipped.</span>
<a name="l03237"></a><a class="code" href="structAVCodec.html#af25cdaf7b0b732121f8fb79cba84aa18">03237</a> <span class="comment"> */</span>
<a name="l03238"></a>03238 int (*<a class="code" href="structAVCodec.html#af25cdaf7b0b732121f8fb79cba84aa18" title="Copy necessary context variables from a previous thread context to the current one.">update_thread_context</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *src);<span class="comment"></span>
<a name="l03239"></a>03239 <span class="comment"> /** @} */</span>
<a name="l03240"></a>03240 <span class="comment"></span>
<a name="l03241"></a>03241 <span class="comment"> /**</span>
<a name="l03242"></a>03242 <span class="comment"> * Private codec-specific defaults.</span>
<a name="l03243"></a><a class="code" href="structAVCodec.html#a16e4be8873bd93ac84c7b7d86455d518">03243</a> <span class="comment"> */</span>
<a name="l03244"></a>03244 <span class="keyword">const</span> <a class="code" href="group__lavc__core.html#ga27561af66de4a75c3da1dc61f8c5cd9a">AVCodecDefault</a> *<a class="code" href="structAVCodec.html#a16e4be8873bd93ac84c7b7d86455d518" title="Private codec-specific defaults.">defaults</a>;
<a name="l03245"></a>03245 <span class="comment"></span>
<a name="l03246"></a>03246 <span class="comment"> /**</span>
<a name="l03247"></a>03247 <span class="comment"> * Initialize codec static data, called from avcodec_register().</span>
<a name="l03248"></a><a class="code" href="structAVCodec.html#a9f2ec22903b64381c7126fcfa28ef24f">03248</a> <span class="comment"> */</span>
<a name="l03249"></a>03249 void (*<a class="code" href="structAVCodec.html#a9f2ec22903b64381c7126fcfa28ef24f" title="Initialize codec static data, called from avcodec_register().">init_static_data</a>)(<span class="keyword">struct </span><a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec);
<a name="l03250"></a><a class="code" href="structAVCodec.html#a3889d5db28d56089e9debfec3e9f065f">03250</a>
<a name="l03251"></a><a class="code" href="structAVCodec.html#a43e5db74e3cb68dfe025390f99114234">03251</a> int (*<a class="code" href="structAVCodec.html#a3889d5db28d56089e9debfec3e9f065f">init</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *);
<a name="l03252"></a>03252 int (*<a class="code" href="structAVCodec.html#a43e5db74e3cb68dfe025390f99114234">encode_sub</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *, uint8_t *buf, <span class="keywordtype">int</span> buf_size,
<a name="l03253"></a>03253 <span class="keyword">const</span> <span class="keyword">struct </span><a class="code" href="structAVSubtitle.html">AVSubtitle</a> *sub);<span class="comment"></span>
<a name="l03254"></a>03254 <span class="comment"> /**</span>
<a name="l03255"></a>03255 <span class="comment"> * Encode data to an AVPacket.</span>
<a name="l03256"></a>03256 <span class="comment"> *</span>
<a name="l03257"></a>03257 <span class="comment"> * @param avctx codec context</span>
<a name="l03258"></a>03258 <span class="comment"> * @param avpkt output AVPacket (may contain a user-provided buffer)</span>
<a name="l03259"></a>03259 <span class="comment"> * @param[in] frame AVFrame containing the raw data to be encoded</span>
<a name="l03260"></a>03260 <span class="comment"> * @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a</span>
<a name="l03261"></a>03261 <span class="comment"> * non-empty packet was returned in avpkt.</span>
<a name="l03262"></a>03262 <span class="comment"> * @return 0 on success, negative error code on failure</span>
<a name="l03263"></a><a class="code" href="structAVCodec.html#a77d3f51b26f7e32894d5d3adf28cd0d7">03263</a> <span class="comment"> */</span>
<a name="l03264"></a>03264 int (*<a class="code" href="structAVCodec.html#a77d3f51b26f7e32894d5d3adf28cd0d7" title="Encode data to an AVPacket.">encode2</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *avpkt, <span class="keyword">const</span> <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>,
<a name="l03265"></a><a class="code" href="structAVCodec.html#a9b499bef3f761d744d848b2f8ce41f50">03265</a> <span class="keywordtype">int</span> *got_packet_ptr);
<a name="l03266"></a><a class="code" href="structAVCodec.html#a4c37aedc6221fd3342d20da639199bff">03266</a> int (*<a class="code" href="structAVCodec.html#a9b499bef3f761d744d848b2f8ce41f50">decode</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *, <span class="keywordtype">void</span> *outdata, <span class="keywordtype">int</span> *outdata_size, <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *avpkt);
<a name="l03267"></a>03267 int (*<a class="code" href="structAVCodec.html#a4c37aedc6221fd3342d20da639199bff">close</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *);<span class="comment"></span>
<a name="l03268"></a>03268 <span class="comment"> /**</span>
<a name="l03269"></a>03269 <span class="comment"> * Flush buffers.</span>
<a name="l03270"></a>03270 <span class="comment"> * Will be called when seeking</span>
<a name="l03271"></a><a class="code" href="structAVCodec.html#a988b31fb18ff269f49bb06a792fe48bc">03271</a> <span class="comment"> */</span>
<a name="l03272"></a>03272 void (*<a class="code" href="structAVCodec.html#a988b31fb18ff269f49bb06a792fe48bc" title="Flush buffers.">flush</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *);<span class="comment"></span>
<a name="l03273"></a>03273 <span class="comment"> /**</span>
<a name="l03274"></a>03274 <span class="comment"> * Internal codec capabilities.</span>
<a name="l03275"></a>03275 <span class="comment"> * See FF_CODEC_CAP_* in internal.h</span>
<a name="l03276"></a><a class="code" href="structAVCodec.html#a30b99d076ad0288b0d9bf3c931df8986">03276</a> <span class="comment"> */</span>
<a name="l03277"></a>03277 <span class="keywordtype">int</span> <a class="code" href="structAVCodec.html#a30b99d076ad0288b0d9bf3c931df8986" title="Internal codec capabilities.">caps_internal</a>;
<a name="l03278"></a>03278 } <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a>;
<a name="l03279"></a>03279
<a name="l03280"></a>03280 <span class="keywordtype">int</span> <a class="code" href="group__lavc__core.html#gafda0a87bc29a129cd12e858b4609cccd">av_codec_get_max_lowres</a>(<span class="keyword">const</span> <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec);
<a name="l03281"></a>03281
<a name="l03282"></a>03282 <span class="keyword">struct </span>MpegEncContext;
<a name="l03283"></a>03283 <span class="comment"></span>
<a name="l03284"></a>03284 <span class="comment">/**</span>
<a name="l03285"></a>03285 <span class="comment"> * @defgroup lavc_hwaccel AVHWAccel</span>
<a name="l03286"></a>03286 <span class="comment"> * @{</span>
<a name="l03287"></a><a class="code" href="structAVHWAccel.html">03287</a> <span class="comment"> */</span>
<a name="l03288"></a>03288 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVHWAccel.html">AVHWAccel</a> {<span class="comment"></span>
<a name="l03289"></a>03289 <span class="comment"> /**</span>
<a name="l03290"></a>03290 <span class="comment"> * Name of the hardware accelerated codec.</span>
<a name="l03291"></a>03291 <span class="comment"> * The name is globally unique among encoders and among decoders (but an</span>
<a name="l03292"></a>03292 <span class="comment"> * encoder and a decoder can share the same name).</span>
<a name="l03293"></a><a class="code" href="structAVHWAccel.html#a9cc735be128cb62ff4cb594d3e3bdb92">03293</a> <span class="comment"> */</span>
<a name="l03294"></a>03294 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVHWAccel.html#a9cc735be128cb62ff4cb594d3e3bdb92" title="Name of the hardware accelerated codec.">name</a>;
<a name="l03295"></a>03295 <span class="comment"></span>
<a name="l03296"></a>03296 <span class="comment"> /**</span>
<a name="l03297"></a>03297 <span class="comment"> * Type of codec implemented by the hardware accelerator.</span>
<a name="l03298"></a>03298 <span class="comment"> *</span>
<a name="l03299"></a>03299 <span class="comment"> * See AVMEDIA_TYPE_xxx</span>
<a name="l03300"></a><a class="code" href="structAVHWAccel.html#af962ad3e15697454ba312d1254e5a423">03300</a> <span class="comment"> */</span>
<a name="l03301"></a>03301 <span class="keyword">enum</span> <a class="code" href="group__lavu__misc.html#ga9a84bba4713dfced21a1a56163be1f48">AVMediaType</a> <a class="code" href="structAVHWAccel.html#af962ad3e15697454ba312d1254e5a423" title="Type of codec implemented by the hardware accelerator.">type</a>;
<a name="l03302"></a>03302 <span class="comment"></span>
<a name="l03303"></a>03303 <span class="comment"> /**</span>
<a name="l03304"></a>03304 <span class="comment"> * Codec implemented by the hardware accelerator.</span>
<a name="l03305"></a>03305 <span class="comment"> *</span>
<a name="l03306"></a>03306 <span class="comment"> * See AV_CODEC_ID_xxx</span>
<a name="l03307"></a><a class="code" href="structAVHWAccel.html#a3c93d40193e9178eb7408295c6c2b2f2">03307</a> <span class="comment"> */</span>
<a name="l03308"></a>03308 <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <a class="code" href="structAVHWAccel.html#a3c93d40193e9178eb7408295c6c2b2f2" title="Codec implemented by the hardware accelerator.">id</a>;
<a name="l03309"></a>03309 <span class="comment"></span>
<a name="l03310"></a>03310 <span class="comment"> /**</span>
<a name="l03311"></a>03311 <span class="comment"> * Supported pixel format.</span>
<a name="l03312"></a>03312 <span class="comment"> *</span>
<a name="l03313"></a>03313 <span class="comment"> * Only hardware accelerated formats are supported here.</span>
<a name="l03314"></a><a class="code" href="structAVHWAccel.html#ac5692f044266af8c1c33b7ac549df338">03314</a> <span class="comment"> */</span>
<a name="l03315"></a>03315 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="structAVHWAccel.html#ac5692f044266af8c1c33b7ac549df338" title="Supported pixel format.">pix_fmt</a>;
<a name="l03316"></a>03316 <span class="comment"></span>
<a name="l03317"></a>03317 <span class="comment"> /**</span>
<a name="l03318"></a>03318 <span class="comment"> * Hardware accelerated codec capabilities.</span>
<a name="l03319"></a>03319 <span class="comment"> * see FF_HWACCEL_CODEC_CAP_*</span>
<a name="l03320"></a><a class="code" href="structAVHWAccel.html#aa1da71a1cc27b60294023a893759e60a">03320</a> <span class="comment"> */</span>
<a name="l03321"></a>03321 <span class="keywordtype">int</span> <a class="code" href="structAVHWAccel.html#aa1da71a1cc27b60294023a893759e60a" title="Hardware accelerated codec capabilities.">capabilities</a>;
<a name="l03322"></a>03322
<a name="l03323"></a>03323 <span class="comment">/*****************************************************************</span>
<a name="l03324"></a>03324 <span class="comment"> * No fields below this line are part of the public API. They</span>
<a name="l03325"></a>03325 <span class="comment"> * may not be used outside of libavcodec and can be changed and</span>
<a name="l03326"></a>03326 <span class="comment"> * removed at will.</span>
<a name="l03327"></a>03327 <span class="comment"> * New public fields should be added right above.</span>
<a name="l03328"></a>03328 <span class="comment"> *****************************************************************</span>
<a name="l03329"></a><a class="code" href="structAVHWAccel.html#aaca69ddfacfa72b642007b5ab4b89424">03329</a> <span class="comment"> */</span>
<a name="l03330"></a>03330 <span class="keyword">struct </span><a class="code" href="structAVHWAccel.html">AVHWAccel</a> *<a class="code" href="structAVHWAccel.html#aaca69ddfacfa72b642007b5ab4b89424">next</a>;
<a name="l03331"></a>03331 <span class="comment"></span>
<a name="l03332"></a>03332 <span class="comment"> /**</span>
<a name="l03333"></a>03333 <span class="comment"> * Allocate a custom buffer</span>
<a name="l03334"></a><a class="code" href="structAVHWAccel.html#a803e49525ffe5390c61998bc24bb6cd0">03334</a> <span class="comment"> */</span>
<a name="l03335"></a>03335 int (*<a class="code" href="structAVHWAccel.html#a803e49525ffe5390c61998bc24bb6cd0" title="Allocate a custom buffer.">alloc_frame</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>);
<a name="l03336"></a>03336 <span class="comment"></span>
<a name="l03337"></a>03337 <span class="comment"> /**</span>
<a name="l03338"></a>03338 <span class="comment"> * Called at the beginning of each frame or field picture.</span>
<a name="l03339"></a>03339 <span class="comment"> *</span>
<a name="l03340"></a>03340 <span class="comment"> * Meaningful frame information (codec specific) is guaranteed to</span>
<a name="l03341"></a>03341 <span class="comment"> * be parsed at this point. This function is mandatory.</span>
<a name="l03342"></a>03342 <span class="comment"> *</span>
<a name="l03343"></a>03343 <span class="comment"> * Note that buf can be NULL along with buf_size set to 0.</span>
<a name="l03344"></a>03344 <span class="comment"> * Otherwise, this means the whole frame is available at this point.</span>
<a name="l03345"></a>03345 <span class="comment"> *</span>
<a name="l03346"></a>03346 <span class="comment"> * @param avctx the codec context</span>
<a name="l03347"></a>03347 <span class="comment"> * @param buf the frame data buffer base</span>
<a name="l03348"></a>03348 <span class="comment"> * @param buf_size the size of the frame in bytes</span>
<a name="l03349"></a>03349 <span class="comment"> * @return zero if successful, a negative value otherwise</span>
<a name="l03350"></a><a class="code" href="structAVHWAccel.html#ac604e62f43c3386f1a5f3998f2270ffe">03350</a> <span class="comment"> */</span>
<a name="l03351"></a>03351 int (*<a class="code" href="structAVHWAccel.html#ac604e62f43c3386f1a5f3998f2270ffe" title="Called at the beginning of each frame or field picture.">start_frame</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keyword">const</span> uint8_t *buf, uint32_t buf_size);
<a name="l03352"></a>03352 <span class="comment"></span>
<a name="l03353"></a>03353 <span class="comment"> /**</span>
<a name="l03354"></a>03354 <span class="comment"> * Callback for each slice.</span>
<a name="l03355"></a>03355 <span class="comment"> *</span>
<a name="l03356"></a>03356 <span class="comment"> * Meaningful slice information (codec specific) is guaranteed to</span>
<a name="l03357"></a>03357 <span class="comment"> * be parsed at this point. This function is mandatory.</span>
<a name="l03358"></a>03358 <span class="comment"> * The only exception is XvMC, that works on MB level.</span>
<a name="l03359"></a>03359 <span class="comment"> *</span>
<a name="l03360"></a>03360 <span class="comment"> * @param avctx the codec context</span>
<a name="l03361"></a>03361 <span class="comment"> * @param buf the slice data buffer base</span>
<a name="l03362"></a>03362 <span class="comment"> * @param buf_size the size of the slice in bytes</span>
<a name="l03363"></a>03363 <span class="comment"> * @return zero if successful, a negative value otherwise</span>
<a name="l03364"></a><a class="code" href="structAVHWAccel.html#a339f59ce5bb56b17269dfd2517698b80">03364</a> <span class="comment"> */</span>
<a name="l03365"></a>03365 int (*<a class="code" href="structAVHWAccel.html#a339f59ce5bb56b17269dfd2517698b80" title="Callback for each slice.">decode_slice</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keyword">const</span> uint8_t *buf, uint32_t buf_size);
<a name="l03366"></a>03366 <span class="comment"></span>
<a name="l03367"></a>03367 <span class="comment"> /**</span>
<a name="l03368"></a>03368 <span class="comment"> * Called at the end of each frame or field picture.</span>
<a name="l03369"></a>03369 <span class="comment"> *</span>
<a name="l03370"></a>03370 <span class="comment"> * The whole picture is parsed at this point and can now be sent</span>
<a name="l03371"></a>03371 <span class="comment"> * to the hardware accelerator. This function is mandatory.</span>
<a name="l03372"></a>03372 <span class="comment"> *</span>
<a name="l03373"></a>03373 <span class="comment"> * @param avctx the codec context</span>
<a name="l03374"></a>03374 <span class="comment"> * @return zero if successful, a negative value otherwise</span>
<a name="l03375"></a><a class="code" href="structAVHWAccel.html#aef4337fb338e00fd9f3e1d8a032f0f43">03375</a> <span class="comment"> */</span>
<a name="l03376"></a>03376 int (*<a class="code" href="structAVHWAccel.html#aef4337fb338e00fd9f3e1d8a032f0f43" title="Called at the end of each frame or field picture.">end_frame</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03377"></a>03377 <span class="comment"></span>
<a name="l03378"></a>03378 <span class="comment"> /**</span>
<a name="l03379"></a>03379 <span class="comment"> * Size of per-frame hardware accelerator private data.</span>
<a name="l03380"></a>03380 <span class="comment"> *</span>
<a name="l03381"></a>03381 <span class="comment"> * Private data is allocated with av_mallocz() before</span>
<a name="l03382"></a>03382 <span class="comment"> * AVCodecContext.get_buffer() and deallocated after</span>
<a name="l03383"></a>03383 <span class="comment"> * AVCodecContext.release_buffer().</span>
<a name="l03384"></a><a class="code" href="structAVHWAccel.html#aecd7bfd22ce294f1ae5073164bb90d65">03384</a> <span class="comment"> */</span>
<a name="l03385"></a>03385 <span class="keywordtype">int</span> <a class="code" href="structAVHWAccel.html#aecd7bfd22ce294f1ae5073164bb90d65" title="Size of per-frame hardware accelerator private data.">frame_priv_data_size</a>;
<a name="l03386"></a>03386 <span class="comment"></span>
<a name="l03387"></a>03387 <span class="comment"> /**</span>
<a name="l03388"></a>03388 <span class="comment"> * Called for every Macroblock in a slice.</span>
<a name="l03389"></a>03389 <span class="comment"> *</span>
<a name="l03390"></a>03390 <span class="comment"> * XvMC uses it to replace the ff_mpv_decode_mb().</span>
<a name="l03391"></a>03391 <span class="comment"> * Instead of decoding to raw picture, MB parameters are</span>
<a name="l03392"></a>03392 <span class="comment"> * stored in an array provided by the video driver.</span>
<a name="l03393"></a>03393 <span class="comment"> *</span>
<a name="l03394"></a>03394 <span class="comment"> * @param s the mpeg context</span>
<a name="l03395"></a><a class="code" href="structAVHWAccel.html#ae4f9f34bd73e9c757692168d2578e842">03395</a> <span class="comment"> */</span>
<a name="l03396"></a>03396 void (*<a class="code" href="structAVHWAccel.html#ae4f9f34bd73e9c757692168d2578e842" title="Called for every Macroblock in a slice.">decode_mb</a>)(<span class="keyword">struct </span>MpegEncContext *s);
<a name="l03397"></a>03397 <span class="comment"></span>
<a name="l03398"></a>03398 <span class="comment"> /**</span>
<a name="l03399"></a>03399 <span class="comment"> * Initialize the hwaccel private data.</span>
<a name="l03400"></a>03400 <span class="comment"> *</span>
<a name="l03401"></a>03401 <span class="comment"> * This will be called from ff_get_format(), after hwaccel and</span>
<a name="l03402"></a>03402 <span class="comment"> * hwaccel_context are set and the hwaccel private data in AVCodecInternal</span>
<a name="l03403"></a>03403 <span class="comment"> * is allocated.</span>
<a name="l03404"></a><a class="code" href="structAVHWAccel.html#aed68e178391abbd01f78137fbc36ef7f">03404</a> <span class="comment"> */</span>
<a name="l03405"></a>03405 int (*<a class="code" href="structAVHWAccel.html#aed68e178391abbd01f78137fbc36ef7f" title="Initialize the hwaccel private data.">init</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03406"></a>03406 <span class="comment"></span>
<a name="l03407"></a>03407 <span class="comment"> /**</span>
<a name="l03408"></a>03408 <span class="comment"> * Uninitialize the hwaccel private data.</span>
<a name="l03409"></a>03409 <span class="comment"> *</span>
<a name="l03410"></a>03410 <span class="comment"> * This will be called from get_format() or avcodec_close(), after hwaccel</span>
<a name="l03411"></a>03411 <span class="comment"> * and hwaccel_context are already uninitialized.</span>
<a name="l03412"></a><a class="code" href="structAVHWAccel.html#a27f99d0902f1823f327e1eae32790d23">03412</a> <span class="comment"> */</span>
<a name="l03413"></a>03413 int (*<a class="code" href="structAVHWAccel.html#a27f99d0902f1823f327e1eae32790d23" title="Uninitialize the hwaccel private data.">uninit</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03414"></a>03414 <span class="comment"></span>
<a name="l03415"></a>03415 <span class="comment"> /**</span>
<a name="l03416"></a>03416 <span class="comment"> * Size of the private data to allocate in</span>
<a name="l03417"></a>03417 <span class="comment"> * AVCodecInternal.hwaccel_priv_data.</span>
<a name="l03418"></a><a class="code" href="structAVHWAccel.html#a0094df5ea13d644ebcba1237d45055be">03418</a> <span class="comment"> */</span>
<a name="l03419"></a>03419 <span class="keywordtype">int</span> <a class="code" href="structAVHWAccel.html#a0094df5ea13d644ebcba1237d45055be" title="Size of the private data to allocate in AVCodecInternal.hwaccel_priv_data.">priv_data_size</a>;
<a name="l03420"></a>03420 } <a class="code" href="structAVHWAccel.html">AVHWAccel</a>;
<a name="l03421"></a>03421 <span class="comment"></span>
<a name="l03422"></a>03422 <span class="comment">/**</span>
<a name="l03423"></a>03423 <span class="comment"> * Hardware acceleration should be used for decoding even if the codec level</span>
<a name="l03424"></a>03424 <span class="comment"> * used is unknown or higher than the maximum supported level reported by the</span>
<a name="l03425"></a>03425 <span class="comment"> * hardware driver.</span>
<a name="l03426"></a><a class="code" href="group__lavc__hwaccel.html#ga1d7645e07cfdd50151a096c34e462a69">03426</a> <span class="comment"> */</span>
<a name="l03427"></a>03427 <span class="preprocessor">#define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0)</span>
<a name="l03428"></a>03428 <span class="preprocessor"></span><span class="comment"></span>
<a name="l03429"></a>03429 <span class="comment">/**</span>
<a name="l03430"></a>03430 <span class="comment"> * Hardware acceleration can output YUV pixel formats with a different chroma</span>
<a name="l03431"></a>03431 <span class="comment"> * sampling than 4:2:0 and/or other than 8 bits per component.</span>
<a name="l03432"></a><a class="code" href="group__lavc__hwaccel.html#ga981093d126d9935f74f420ac79badd11">03432</a> <span class="comment"> */</span>
<a name="l03433"></a>03433 <span class="preprocessor">#define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (1 << 1)</span>
<a name="l03434"></a>03434 <span class="preprocessor"></span><span class="comment"></span>
<a name="l03435"></a>03435 <span class="comment">/**</span>
<a name="l03436"></a>03436 <span class="comment"> * @}</span>
<a name="l03437"></a>03437 <span class="comment"> */</span>
<a name="l03438"></a>03438 <span class="comment"></span>
<a name="l03439"></a>03439 <span class="comment">/**</span>
<a name="l03440"></a>03440 <span class="comment"> * @defgroup lavc_picture AVPicture</span>
<a name="l03441"></a>03441 <span class="comment"> *</span>
<a name="l03442"></a>03442 <span class="comment"> * Functions for working with AVPicture</span>
<a name="l03443"></a>03443 <span class="comment"> * @{</span>
<a name="l03444"></a>03444 <span class="comment"> */</span>
<a name="l03445"></a>03445 <span class="comment"></span>
<a name="l03446"></a>03446 <span class="comment">/**</span>
<a name="l03447"></a>03447 <span class="comment"> * Picture data structure.</span>
<a name="l03448"></a>03448 <span class="comment"> *</span>
<a name="l03449"></a>03449 <span class="comment"> * Up to four components can be stored into it, the last component is</span>
<a name="l03450"></a>03450 <span class="comment"> * alpha.</span>
<a name="l03451"></a><a class="code" href="structAVPicture.html">03451</a> <span class="comment"> */</span>
<a name="l03452"></a><a class="code" href="structAVPicture.html#a7d4879fa3ea09329981c9bdf4d5e077c">03452</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> {
<a name="l03453"></a><a class="code" href="structAVPicture.html#a51b07f91c0ca87b6b4b63f298c8ce34c">03453</a> uint8_t *<a class="code" href="structAVPicture.html#a7d4879fa3ea09329981c9bdf4d5e077c" title="pointers to the image data planes">data</a>[<a class="code" href="frame_8h.html#add80189702cf0f5ea82718576fb43201">AV_NUM_DATA_POINTERS</a>]; <span class="comment">///< pointers to the image data planes</span>
<a name="l03454"></a>03454 <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="structAVPicture.html#a51b07f91c0ca87b6b4b63f298c8ce34c" title="number of bytes per line">linesize</a>[<a class="code" href="frame_8h.html#add80189702cf0f5ea82718576fb43201">AV_NUM_DATA_POINTERS</a>]; <span class="comment">///< number of bytes per line</span>
<a name="l03455"></a>03455 <span class="comment"></span>} <a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a>;
<a name="l03456"></a>03456 <span class="comment"></span>
<a name="l03457"></a>03457 <span class="comment">/**</span>
<a name="l03458"></a>03458 <span class="comment"> * @}</span>
<a name="l03459"></a>03459 <span class="comment"> */</span>
<a name="l03460"></a><a class="code" href="group__lavc__core.html#ga828218dcb8874ab2c5af8d486c365421">03460</a>
<a name="l03461"></a><a class="code" href="group__lavc__core.html#gga828218dcb8874ab2c5af8d486c365421a996f4241a1f619428260744d394c5caa">03461</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#ga828218dcb8874ab2c5af8d486c365421">AVSubtitleType</a> {
<a name="l03462"></a>03462 <a class="code" href="group__lavc__core.html#gga828218dcb8874ab2c5af8d486c365421a996f4241a1f619428260744d394c5caa">SUBTITLE_NONE</a>,
<a name="l03463"></a><a class="code" href="group__lavc__core.html#gga828218dcb8874ab2c5af8d486c365421a0e577aa36b52d777c6ec5bef8625dde4">03463</a>
<a name="l03464"></a>03464 <a class="code" href="group__lavc__core.html#gga828218dcb8874ab2c5af8d486c365421a0e577aa36b52d777c6ec5bef8625dde4" title="A bitmap, pict will be set.">SUBTITLE_BITMAP</a>, <span class="comment">///< A bitmap, pict will be set</span>
<a name="l03465"></a>03465 <span class="comment"></span><span class="comment"></span>
<a name="l03466"></a>03466 <span class="comment"> /**</span>
<a name="l03467"></a>03467 <span class="comment"> * Plain text, the text field must be set by the decoder and is</span>
<a name="l03468"></a>03468 <span class="comment"> * authoritative. ass and pict fields may contain approximations.</span>
<a name="l03469"></a><a class="code" href="group__lavc__core.html#gga828218dcb8874ab2c5af8d486c365421a911079085bcf785c5f1f06e1e0d651c2">03469</a> <span class="comment"> */</span>
<a name="l03470"></a>03470 <a class="code" href="group__lavc__core.html#gga828218dcb8874ab2c5af8d486c365421a911079085bcf785c5f1f06e1e0d651c2" title="Plain text, the text field must be set by the decoder and is authoritative.">SUBTITLE_TEXT</a>,
<a name="l03471"></a>03471 <span class="comment"></span>
<a name="l03472"></a>03472 <span class="comment"> /**</span>
<a name="l03473"></a>03473 <span class="comment"> * Formatted text, the ass field must be set by the decoder and is</span>
<a name="l03474"></a>03474 <span class="comment"> * authoritative. pict and text fields may contain approximations.</span>
<a name="l03475"></a><a class="code" href="group__lavc__core.html#gga828218dcb8874ab2c5af8d486c365421a3fd131173f80938f3d30f99977aa455a">03475</a> <span class="comment"> */</span>
<a name="l03476"></a>03476 <a class="code" href="group__lavc__core.html#gga828218dcb8874ab2c5af8d486c365421a3fd131173f80938f3d30f99977aa455a" title="Formatted text, the ass field must be set by the decoder and is authoritative.">SUBTITLE_ASS</a>,
<a name="l03477"></a>03477 };
<a name="l03478"></a><a class="code" href="group__lavc__core.html#ga9235aa94caef10933f1436929ae15903">03478</a>
<a name="l03479"></a>03479 <span class="preprocessor">#define AV_SUBTITLE_FLAG_FORCED 0x00000001</span>
<a name="l03480"></a><a class="code" href="structAVSubtitleRect.html">03480</a> <span class="preprocessor"></span>
<a name="l03481"></a><a class="code" href="structAVSubtitleRect.html#a0059c986f1ee3aab45c0f62f0709621b">03481</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVSubtitleRect.html">AVSubtitleRect</a> {
<a name="l03482"></a><a class="code" href="structAVSubtitleRect.html#ab9e5fdd0c592636abf46530b110311bb">03482</a> <span class="keywordtype">int</span> <a class="code" href="structAVSubtitleRect.html#a0059c986f1ee3aab45c0f62f0709621b" title="top left corner of pict, undefined when pict is not set">x</a>; <span class="comment">///< top left corner of pict, undefined when pict is not set</span>
<a name="l03483"></a><a class="code" href="structAVSubtitleRect.html#a264a52200e34e138d47c76d7a431125a">03483</a> <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="structAVSubtitleRect.html#ab9e5fdd0c592636abf46530b110311bb" title="top left corner of pict, undefined when pict is not set">y</a>; <span class="comment">///< top left corner of pict, undefined when pict is not set</span>
<a name="l03484"></a><a class="code" href="structAVSubtitleRect.html#afb3272792cfe659e9e788074d3328d3d">03484</a> <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="structAVSubtitleRect.html#a264a52200e34e138d47c76d7a431125a" title="width of pict, undefined when pict is not set">w</a>; <span class="comment">///< width of pict, undefined when pict is not set</span>
<a name="l03485"></a><a class="code" href="structAVSubtitleRect.html#a7d5855be665def02c2d981a6ac1b7579">03485</a> <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="structAVSubtitleRect.html#afb3272792cfe659e9e788074d3328d3d" title="height of pict, undefined when pict is not set">h</a>; <span class="comment">///< height of pict, undefined when pict is not set</span>
<a name="l03486"></a>03486 <span class="comment"></span> <span class="keywordtype">int</span> <a class="code" href="structAVSubtitleRect.html#a7d5855be665def02c2d981a6ac1b7579" title="number of colors in pict, undefined when pict is not set">nb_colors</a>; <span class="comment">///< number of colors in pict, undefined when pict is not set</span>
<a name="l03487"></a>03487 <span class="comment"></span><span class="comment"></span>
<a name="l03488"></a>03488 <span class="comment"> /**</span>
<a name="l03489"></a>03489 <span class="comment"> * data+linesize for the bitmap of this subtitle.</span>
<a name="l03490"></a>03490 <span class="comment"> * can be set for text/ass as well once they are rendered</span>
<a name="l03491"></a><a class="code" href="structAVSubtitleRect.html#a14d5940b24016a2c0afcaea2642fc692">03491</a> <span class="comment"> */</span>
<a name="l03492"></a><a class="code" href="structAVSubtitleRect.html#ad3cd08b87cdc6c7e8f0e7567d60598f2">03492</a> <a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> <a class="code" href="structAVSubtitleRect.html#a14d5940b24016a2c0afcaea2642fc692" title="data+linesize for the bitmap of this subtitle.">pict</a>;
<a name="l03493"></a>03493 <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#ga828218dcb8874ab2c5af8d486c365421">AVSubtitleType</a> <a class="code" href="structAVSubtitleRect.html#ad3cd08b87cdc6c7e8f0e7567d60598f2">type</a>;
<a name="l03494"></a><a class="code" href="structAVSubtitleRect.html#a893b1c87ee3d1816a0149ab3005fdd9e">03494</a>
<a name="l03495"></a>03495 <span class="keywordtype">char</span> *<a class="code" href="structAVSubtitleRect.html#a893b1c87ee3d1816a0149ab3005fdd9e" title="0 terminated plain UTF-8 text">text</a>; <span class="comment">///< 0 terminated plain UTF-8 text</span>
<a name="l03496"></a>03496 <span class="comment"></span><span class="comment"></span>
<a name="l03497"></a>03497 <span class="comment"> /**</span>
<a name="l03498"></a>03498 <span class="comment"> * 0 terminated ASS/SSA compatible event line.</span>
<a name="l03499"></a>03499 <span class="comment"> * The presentation of this is unaffected by the other values in this</span>
<a name="l03500"></a>03500 <span class="comment"> * struct.</span>
<a name="l03501"></a><a class="code" href="structAVSubtitleRect.html#a0bac1af155080655b9571a3d869227da">03501</a> <span class="comment"> */</span>
<a name="l03502"></a>03502 <span class="keywordtype">char</span> *<a class="code" href="structAVSubtitleRect.html#a0bac1af155080655b9571a3d869227da" title="0 terminated ASS/SSA compatible event line.">ass</a>;
<a name="l03503"></a><a class="code" href="structAVSubtitleRect.html#a1eb6a2cfe6a14c7405f45fd83d76b8db">03503</a>
<a name="l03504"></a>03504 <span class="keywordtype">int</span> <a class="code" href="structAVSubtitleRect.html#a1eb6a2cfe6a14c7405f45fd83d76b8db">flags</a>;
<a name="l03505"></a>03505 } <a class="code" href="structAVSubtitleRect.html">AVSubtitleRect</a>;
<a name="l03506"></a><a class="code" href="structAVSubtitle.html">03506</a>
<a name="l03507"></a><a class="code" href="structAVSubtitle.html#a03cabc402df10e7ee9b92df6284b09c1">03507</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVSubtitle.html">AVSubtitle</a> {
<a name="l03508"></a><a class="code" href="structAVSubtitle.html#a271f635c9e734310a43277f819159c68">03508</a> uint16_t <a class="code" href="structAVSubtitle.html#a03cabc402df10e7ee9b92df6284b09c1">format</a>; <span class="comment">/* 0 = graphics */</span>
<a name="l03509"></a><a class="code" href="structAVSubtitle.html#a354cdfa51cda54c914a569ee3f7493c0">03509</a> uint32_t <a class="code" href="structAVSubtitle.html#a271f635c9e734310a43277f819159c68">start_display_time</a>; <span class="comment">/* relative to packet pts, in ms */</span>
<a name="l03510"></a><a class="code" href="structAVSubtitle.html#a89491b1f6998eceb6221791fd50087df">03510</a> uint32_t <a class="code" href="structAVSubtitle.html#a354cdfa51cda54c914a569ee3f7493c0">end_display_time</a>; <span class="comment">/* relative to packet pts, in ms */</span>
<a name="l03511"></a><a class="code" href="structAVSubtitle.html#ad37c2315a9e36ed700f64cb971e22298">03511</a> <span class="keywordtype">unsigned</span> <a class="code" href="structAVSubtitle.html#a89491b1f6998eceb6221791fd50087df">num_rects</a>;
<a name="l03512"></a><a class="code" href="structAVSubtitle.html#af7cc390bba4f9d6c32e391ca59d117a2">03512</a> <a class="code" href="structAVSubtitleRect.html">AVSubtitleRect</a> **<a class="code" href="structAVSubtitle.html#ad37c2315a9e36ed700f64cb971e22298">rects</a>;
<a name="l03513"></a>03513 int64_t <a class="code" href="structAVSubtitle.html#af7cc390bba4f9d6c32e391ca59d117a2" title="Same as packet pts, in AV_TIME_BASE.">pts</a>; <span class="comment">///< Same as packet pts, in AV_TIME_BASE</span>
<a name="l03514"></a>03514 <span class="comment"></span>} <a class="code" href="structAVSubtitle.html">AVSubtitle</a>;
<a name="l03515"></a>03515 <span class="comment"></span>
<a name="l03516"></a>03516 <span class="comment">/**</span>
<a name="l03517"></a>03517 <span class="comment"> * If c is NULL, returns the first registered codec,</span>
<a name="l03518"></a>03518 <span class="comment"> * if c is non-NULL, returns the next registered codec after c,</span>
<a name="l03519"></a>03519 <span class="comment"> * or NULL if c is the last one.</span>
<a name="l03520"></a>03520 <span class="comment"> */</span>
<a name="l03521"></a>03521 <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *<a class="code" href="group__lavc__core.html#ga15369ce1a486dd26a14a043c2b4d7e76" title="If c is NULL, returns the first registered codec, if c is non-NULL, returns the next registered codec...">av_codec_next</a>(<span class="keyword">const</span> <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *c);
<a name="l03522"></a>03522 <span class="comment"></span>
<a name="l03523"></a>03523 <span class="comment">/**</span>
<a name="l03524"></a>03524 <span class="comment"> * Return the LIBAVCODEC_VERSION_INT constant.</span>
<a name="l03525"></a>03525 <span class="comment"> */</span>
<a name="l03526"></a>03526 <span class="keywordtype">unsigned</span> <a class="code" href="group__lavc__core.html#gadf72cccead0dc2575adcea2dc3e1ae7c" title="Return the LIBAVCODEC_VERSION_INT constant.">avcodec_version</a>(<span class="keywordtype">void</span>);
<a name="l03527"></a>03527 <span class="comment"></span>
<a name="l03528"></a>03528 <span class="comment">/**</span>
<a name="l03529"></a>03529 <span class="comment"> * Return the libavcodec build-time configuration.</span>
<a name="l03530"></a>03530 <span class="comment"> */</span>
<a name="l03531"></a>03531 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__lavc__core.html#gaba6aaa26147862a94d660a7b21ecd156" title="Return the libavcodec build-time configuration.">avcodec_configuration</a>(<span class="keywordtype">void</span>);
<a name="l03532"></a>03532 <span class="comment"></span>
<a name="l03533"></a>03533 <span class="comment">/**</span>
<a name="l03534"></a>03534 <span class="comment"> * Return the libavcodec license.</span>
<a name="l03535"></a>03535 <span class="comment"> */</span>
<a name="l03536"></a>03536 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__lavc__core.html#gae594db5f65482502088cba133ff96352" title="Return the libavcodec license.">avcodec_license</a>(<span class="keywordtype">void</span>);
<a name="l03537"></a>03537 <span class="comment"></span>
<a name="l03538"></a>03538 <span class="comment">/**</span>
<a name="l03539"></a>03539 <span class="comment"> * Register the codec codec and initialize libavcodec.</span>
<a name="l03540"></a>03540 <span class="comment"> *</span>
<a name="l03541"></a>03541 <span class="comment"> * @warning either this function or avcodec_register_all() must be called</span>
<a name="l03542"></a>03542 <span class="comment"> * before any other libavcodec functions.</span>
<a name="l03543"></a>03543 <span class="comment"> *</span>
<a name="l03544"></a>03544 <span class="comment"> * @see avcodec_register_all()</span>
<a name="l03545"></a>03545 <span class="comment"> */</span>
<a name="l03546"></a>03546 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#ga882513208349dbcea177626d9fd7ed92" title="Register the codec codec and initialize libavcodec.">avcodec_register</a>(<a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec);
<a name="l03547"></a>03547 <span class="comment"></span>
<a name="l03548"></a>03548 <span class="comment">/**</span>
<a name="l03549"></a>03549 <span class="comment"> * Register all the codecs, parsers and bitstream filters which were enabled at</span>
<a name="l03550"></a>03550 <span class="comment"> * configuration time. If you do not call this function you can select exactly</span>
<a name="l03551"></a>03551 <span class="comment"> * which formats you want to support, by using the individual registration</span>
<a name="l03552"></a>03552 <span class="comment"> * functions.</span>
<a name="l03553"></a>03553 <span class="comment"> *</span>
<a name="l03554"></a>03554 <span class="comment"> * @see avcodec_register</span>
<a name="l03555"></a>03555 <span class="comment"> * @see av_register_codec_parser</span>
<a name="l03556"></a>03556 <span class="comment"> * @see av_register_bitstream_filter</span>
<a name="l03557"></a>03557 <span class="comment"> */</span>
<a name="l03558"></a>03558 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#gaf1a2bb4e7c7611c131bb6212bf0fa639" title="Register all the codecs, parsers and bitstream filters which were enabled at configuration time...">avcodec_register_all</a>(<span class="keywordtype">void</span>);
<a name="l03559"></a>03559 <span class="comment"></span>
<a name="l03560"></a>03560 <span class="comment">/**</span>
<a name="l03561"></a>03561 <span class="comment"> * Allocate an AVCodecContext and set its fields to default values. The</span>
<a name="l03562"></a>03562 <span class="comment"> * resulting struct should be freed with avcodec_free_context().</span>
<a name="l03563"></a>03563 <span class="comment"> *</span>
<a name="l03564"></a>03564 <span class="comment"> * @param codec if non-NULL, allocate private data and initialize defaults</span>
<a name="l03565"></a>03565 <span class="comment"> * for the given codec. It is illegal to then call avcodec_open2()</span>
<a name="l03566"></a>03566 <span class="comment"> * with a different codec.</span>
<a name="l03567"></a>03567 <span class="comment"> * If NULL, then the codec-specific defaults won't be initialized,</span>
<a name="l03568"></a>03568 <span class="comment"> * which may result in suboptimal default settings (this is</span>
<a name="l03569"></a>03569 <span class="comment"> * important mainly for encoders, e.g. libx264).</span>
<a name="l03570"></a>03570 <span class="comment"> *</span>
<a name="l03571"></a>03571 <span class="comment"> * @return An AVCodecContext filled with default values or NULL on failure.</span>
<a name="l03572"></a>03572 <span class="comment"> * @see avcodec_get_context_defaults</span>
<a name="l03573"></a>03573 <span class="comment"> */</span>
<a name="l03574"></a>03574 <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *<a class="code" href="group__lavc__core.html#gae80afec6f26df6607eaacf39b561c315" title="Allocate an AVCodecContext and set its fields to default values.">avcodec_alloc_context3</a>(<span class="keyword">const</span> <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec);
<a name="l03575"></a>03575 <span class="comment"></span>
<a name="l03576"></a>03576 <span class="comment">/**</span>
<a name="l03577"></a>03577 <span class="comment"> * Free the codec context and everything associated with it and write NULL to</span>
<a name="l03578"></a>03578 <span class="comment"> * the provided pointer.</span>
<a name="l03579"></a>03579 <span class="comment"> */</span>
<a name="l03580"></a>03580 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#gaf869d0829ed607cec3a4a02a1c7026b3" title="Free the codec context and everything associated with it and write NULL to the provided pointer...">avcodec_free_context</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> **avctx);
<a name="l03581"></a>03581 <span class="comment"></span>
<a name="l03582"></a>03582 <span class="comment">/**</span>
<a name="l03583"></a>03583 <span class="comment"> * Set the fields of the given AVCodecContext to default values corresponding</span>
<a name="l03584"></a>03584 <span class="comment"> * to the given codec (defaults may be codec-dependent).</span>
<a name="l03585"></a>03585 <span class="comment"> *</span>
<a name="l03586"></a>03586 <span class="comment"> * Do not call this function if a non-NULL codec has been passed</span>
<a name="l03587"></a>03587 <span class="comment"> * to avcodec_alloc_context3() that allocated this AVCodecContext.</span>
<a name="l03588"></a>03588 <span class="comment"> * If codec is non-NULL, it is illegal to call avcodec_open2() with a</span>
<a name="l03589"></a>03589 <span class="comment"> * different codec on this AVCodecContext.</span>
<a name="l03590"></a>03590 <span class="comment"> */</span>
<a name="l03591"></a>03591 <span class="keywordtype">int</span> <a class="code" href="group__lavc__core.html#ga1dd4bf43e6a4ec8b8d76bd3673e5e73a" title="Set the fields of the given AVCodecContext to default values corresponding to the given codec (defaul...">avcodec_get_context_defaults3</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <span class="keyword">const</span> <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec);
<a name="l03592"></a>03592 <span class="comment"></span>
<a name="l03593"></a>03593 <span class="comment">/**</span>
<a name="l03594"></a>03594 <span class="comment"> * Get the AVClass for AVCodecContext. It can be used in combination with</span>
<a name="l03595"></a>03595 <span class="comment"> * AV_OPT_SEARCH_FAKE_OBJ for examining options.</span>
<a name="l03596"></a>03596 <span class="comment"> *</span>
<a name="l03597"></a>03597 <span class="comment"> * @see av_opt_find().</span>
<a name="l03598"></a>03598 <span class="comment"> */</span>
<a name="l03599"></a>03599 <span class="keyword">const</span> <a class="code" href="structAVClass.html" title="Describe the class of an AVClass context structure.">AVClass</a> *<a class="code" href="group__lavc__core.html#gae8ab0faa9a07901c48e07e5feee82626" title="Get the AVClass for AVCodecContext.">avcodec_get_class</a>(<span class="keywordtype">void</span>);
<a name="l03600"></a>03600 <span class="comment"></span>
<a name="l03601"></a>03601 <span class="comment">/**</span>
<a name="l03602"></a>03602 <span class="comment"> * Get the AVClass for AVFrame. It can be used in combination with</span>
<a name="l03603"></a>03603 <span class="comment"> * AV_OPT_SEARCH_FAKE_OBJ for examining options.</span>
<a name="l03604"></a>03604 <span class="comment"> *</span>
<a name="l03605"></a>03605 <span class="comment"> * @see av_opt_find().</span>
<a name="l03606"></a>03606 <span class="comment"> */</span>
<a name="l03607"></a>03607 <span class="keyword">const</span> <a class="code" href="structAVClass.html" title="Describe the class of an AVClass context structure.">AVClass</a> *<a class="code" href="group__lavc__core.html#gad55dfc8e9e168e498ab053b38ba6dec8" title="Get the AVClass for AVFrame.">avcodec_get_frame_class</a>(<span class="keywordtype">void</span>);
<a name="l03608"></a>03608 <span class="comment"></span>
<a name="l03609"></a>03609 <span class="comment">/**</span>
<a name="l03610"></a>03610 <span class="comment"> * Get the AVClass for AVSubtitleRect. It can be used in combination with</span>
<a name="l03611"></a>03611 <span class="comment"> * AV_OPT_SEARCH_FAKE_OBJ for examining options.</span>
<a name="l03612"></a>03612 <span class="comment"> *</span>
<a name="l03613"></a>03613 <span class="comment"> * @see av_opt_find().</span>
<a name="l03614"></a>03614 <span class="comment"> */</span>
<a name="l03615"></a>03615 <span class="keyword">const</span> <a class="code" href="structAVClass.html" title="Describe the class of an AVClass context structure.">AVClass</a> *<a class="code" href="group__lavc__core.html#ga4a9d3dc85f704795638b7be320fbc357" title="Get the AVClass for AVSubtitleRect.">avcodec_get_subtitle_rect_class</a>(<span class="keywordtype">void</span>);
<a name="l03616"></a>03616 <span class="comment"></span>
<a name="l03617"></a>03617 <span class="comment">/**</span>
<a name="l03618"></a>03618 <span class="comment"> * Copy the settings of the source AVCodecContext into the destination</span>
<a name="l03619"></a>03619 <span class="comment"> * AVCodecContext. The resulting destination codec context will be</span>
<a name="l03620"></a>03620 <span class="comment"> * unopened, i.e. you are required to call avcodec_open2() before you</span>
<a name="l03621"></a>03621 <span class="comment"> * can use this AVCodecContext to decode/encode video/audio data.</span>
<a name="l03622"></a>03622 <span class="comment"> *</span>
<a name="l03623"></a>03623 <span class="comment"> * @param dest target codec context, should be initialized with</span>
<a name="l03624"></a>03624 <span class="comment"> * avcodec_alloc_context3(NULL), but otherwise uninitialized</span>
<a name="l03625"></a>03625 <span class="comment"> * @param src source codec context</span>
<a name="l03626"></a>03626 <span class="comment"> * @return AVERROR() on error (e.g. memory allocation error), 0 on success</span>
<a name="l03627"></a>03627 <span class="comment"> */</span>
<a name="l03628"></a>03628 <span class="keywordtype">int</span> <a class="code" href="group__lavc__core.html#ga3933b21b9dcb9173df3e56673b7a7d76" title="Copy the settings of the source AVCodecContext into the destination AVCodecContext.">avcodec_copy_context</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *dest, <span class="keyword">const</span> <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *src);
<a name="l03629"></a>03629
<a name="l03630"></a>03630 <span class="preprocessor">#if FF_API_AVFRAME_LAVC</span>
<a name="l03631"></a>03631 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l03632"></a>03632 <span class="comment"> * @deprecated use av_frame_alloc()</span>
<a name="l03633"></a>03633 <span class="comment"> */</span>
<a name="l03634"></a>03634 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l03635"></a>03635 <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *avcodec_alloc_frame(<span class="keywordtype">void</span>);
<a name="l03636"></a>03636 <span class="comment"></span>
<a name="l03637"></a>03637 <span class="comment">/**</span>
<a name="l03638"></a>03638 <span class="comment"> * Set the fields of the given AVFrame to default values.</span>
<a name="l03639"></a>03639 <span class="comment"> *</span>
<a name="l03640"></a>03640 <span class="comment"> * @param frame The AVFrame of which the fields should be set to default values.</span>
<a name="l03641"></a>03641 <span class="comment"> *</span>
<a name="l03642"></a>03642 <span class="comment"> * @deprecated use av_frame_unref()</span>
<a name="l03643"></a>03643 <span class="comment"> */</span>
<a name="l03644"></a>03644 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l03645"></a>03645 <span class="keywordtype">void</span> avcodec_get_frame_defaults(<a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>);
<a name="l03646"></a>03646 <span class="comment"></span>
<a name="l03647"></a>03647 <span class="comment">/**</span>
<a name="l03648"></a>03648 <span class="comment"> * Free the frame and any dynamically allocated objects in it,</span>
<a name="l03649"></a>03649 <span class="comment"> * e.g. extended_data.</span>
<a name="l03650"></a>03650 <span class="comment"> *</span>
<a name="l03651"></a>03651 <span class="comment"> * @param frame frame to be freed. The pointer will be set to NULL.</span>
<a name="l03652"></a>03652 <span class="comment"> *</span>
<a name="l03653"></a>03653 <span class="comment"> * @warning this function does NOT free the data buffers themselves</span>
<a name="l03654"></a>03654 <span class="comment"> * (it does not know how, since they might have been allocated with</span>
<a name="l03655"></a>03655 <span class="comment"> * a custom get_buffer()).</span>
<a name="l03656"></a>03656 <span class="comment"> *</span>
<a name="l03657"></a>03657 <span class="comment"> * @deprecated use av_frame_free()</span>
<a name="l03658"></a>03658 <span class="comment"> */</span>
<a name="l03659"></a>03659 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l03660"></a>03660 <span class="keywordtype">void</span> avcodec_free_frame(<a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> **<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>);
<a name="l03661"></a>03661 <span class="preprocessor">#endif</span>
<a name="l03662"></a>03662 <span class="preprocessor"></span><span class="comment"></span>
<a name="l03663"></a>03663 <span class="comment">/**</span>
<a name="l03664"></a>03664 <span class="comment"> * Initialize the AVCodecContext to use the given AVCodec. Prior to using this</span>
<a name="l03665"></a>03665 <span class="comment"> * function the context has to be allocated with avcodec_alloc_context3().</span>
<a name="l03666"></a>03666 <span class="comment"> *</span>
<a name="l03667"></a>03667 <span class="comment"> * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(),</span>
<a name="l03668"></a>03668 <span class="comment"> * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for</span>
<a name="l03669"></a>03669 <span class="comment"> * retrieving a codec.</span>
<a name="l03670"></a>03670 <span class="comment"> *</span>
<a name="l03671"></a>03671 <span class="comment"> * @warning This function is not thread safe!</span>
<a name="l03672"></a>03672 <span class="comment"> *</span>
<a name="l03673"></a>03673 <span class="comment"> * @note Always call this function before using decoding routines (such as</span>
<a name="l03674"></a>03674 <span class="comment"> * @ref avcodec_decode_video2()).</span>
<a name="l03675"></a>03675 <span class="comment"> *</span>
<a name="l03676"></a>03676 <span class="comment"> * @code</span>
<a name="l03677"></a>03677 <span class="comment"> * avcodec_register_all();</span>
<a name="l03678"></a>03678 <span class="comment"> * av_dict_set(&opts, "b", "2.5M", 0);</span>
<a name="l03679"></a>03679 <span class="comment"> * codec = avcodec_find_decoder(AV_CODEC_ID_H264);</span>
<a name="l03680"></a>03680 <span class="comment"> * if (!codec)</span>
<a name="l03681"></a>03681 <span class="comment"> * exit(1);</span>
<a name="l03682"></a>03682 <span class="comment"> *</span>
<a name="l03683"></a>03683 <span class="comment"> * context = avcodec_alloc_context3(codec);</span>
<a name="l03684"></a>03684 <span class="comment"> *</span>
<a name="l03685"></a>03685 <span class="comment"> * if (avcodec_open2(context, codec, opts) < 0)</span>
<a name="l03686"></a>03686 <span class="comment"> * exit(1);</span>
<a name="l03687"></a>03687 <span class="comment"> * @endcode</span>
<a name="l03688"></a>03688 <span class="comment"> *</span>
<a name="l03689"></a>03689 <span class="comment"> * @param avctx The context to initialize.</span>
<a name="l03690"></a>03690 <span class="comment"> * @param codec The codec to open this context for. If a non-NULL codec has been</span>
<a name="l03691"></a>03691 <span class="comment"> * previously passed to avcodec_alloc_context3() or</span>
<a name="l03692"></a>03692 <span class="comment"> * avcodec_get_context_defaults3() for this context, then this</span>
<a name="l03693"></a>03693 <span class="comment"> * parameter MUST be either NULL or equal to the previously passed</span>
<a name="l03694"></a>03694 <span class="comment"> * codec.</span>
<a name="l03695"></a>03695 <span class="comment"> * @param options A dictionary filled with AVCodecContext and codec-private options.</span>
<a name="l03696"></a>03696 <span class="comment"> * On return this object will be filled with options that were not found.</span>
<a name="l03697"></a>03697 <span class="comment"> *</span>
<a name="l03698"></a>03698 <span class="comment"> * @return zero on success, a negative value on error</span>
<a name="l03699"></a>03699 <span class="comment"> * @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(),</span>
<a name="l03700"></a>03700 <span class="comment"> * av_dict_set(), av_opt_find().</span>
<a name="l03701"></a>03701 <span class="comment"> */</span>
<a name="l03702"></a>03702 <span class="keywordtype">int</span> <a class="code" href="group__lavc__core.html#ga11f785a188d7d9df71621001465b0f1d" title="Initialize the AVCodecContext to use the given AVCodec.">avcodec_open2</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keyword">const</span> <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec, <a class="code" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **options);
<a name="l03703"></a>03703 <span class="comment"></span>
<a name="l03704"></a>03704 <span class="comment">/**</span>
<a name="l03705"></a>03705 <span class="comment"> * Close a given AVCodecContext and free all the data associated with it</span>
<a name="l03706"></a>03706 <span class="comment"> * (but not the AVCodecContext itself).</span>
<a name="l03707"></a>03707 <span class="comment"> *</span>
<a name="l03708"></a>03708 <span class="comment"> * Calling this function on an AVCodecContext that hasn't been opened will free</span>
<a name="l03709"></a>03709 <span class="comment"> * the codec-specific data allocated in avcodec_alloc_context3() /</span>
<a name="l03710"></a>03710 <span class="comment"> * avcodec_get_context_defaults3() with a non-NULL codec. Subsequent calls will</span>
<a name="l03711"></a>03711 <span class="comment"> * do nothing.</span>
<a name="l03712"></a>03712 <span class="comment"> */</span>
<a name="l03713"></a>03713 <span class="keywordtype">int</span> <a class="code" href="group__lavc__core.html#gaf4daa92361efb3523ef5afeb0b54077f" title="Close a given AVCodecContext and free all the data associated with it (but not the AVCodecContext its...">avcodec_close</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l03714"></a>03714 <span class="comment"></span>
<a name="l03715"></a>03715 <span class="comment">/**</span>
<a name="l03716"></a>03716 <span class="comment"> * Free all allocated data in the given subtitle struct.</span>
<a name="l03717"></a>03717 <span class="comment"> *</span>
<a name="l03718"></a>03718 <span class="comment"> * @param sub AVSubtitle to free.</span>
<a name="l03719"></a>03719 <span class="comment"> */</span>
<a name="l03720"></a>03720 <span class="keywordtype">void</span> <a class="code" href="group__lavc__core.html#gaa2c3e02a761d9fc0c5c9b2340408c332" title="Free all allocated data in the given subtitle struct.">avsubtitle_free</a>(<a class="code" href="structAVSubtitle.html">AVSubtitle</a> *sub);
<a name="l03721"></a>03721 <span class="comment"></span>
<a name="l03722"></a>03722 <span class="comment">/**</span>
<a name="l03723"></a>03723 <span class="comment"> * @}</span>
<a name="l03724"></a>03724 <span class="comment"> */</span>
<a name="l03725"></a>03725 <span class="comment"></span>
<a name="l03726"></a>03726 <span class="comment">/**</span>
<a name="l03727"></a>03727 <span class="comment"> * @addtogroup lavc_packet</span>
<a name="l03728"></a>03728 <span class="comment"> * @{</span>
<a name="l03729"></a>03729 <span class="comment"> */</span>
<a name="l03730"></a>03730
<a name="l03731"></a>03731 <span class="preprocessor">#if FF_API_DESTRUCT_PACKET</span>
<a name="l03732"></a>03732 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l03733"></a>03733 <span class="comment"> * Default packet destructor.</span>
<a name="l03734"></a>03734 <span class="comment"> * @deprecated use the AVBuffer API instead</span>
<a name="l03735"></a>03735 <span class="comment"> */</span>
<a name="l03736"></a>03736 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l03737"></a>03737 <span class="keywordtype">void</span> <a class="code" href="group__lavc__packet.html#ga7582daad8c59bb6e5df39db6f9881d97" title="Default packet destructor.">av_destruct_packet</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>);
<a name="l03738"></a>03738 <span class="preprocessor">#endif</span>
<a name="l03739"></a>03739 <span class="preprocessor"></span><span class="comment"></span>
<a name="l03740"></a>03740 <span class="comment">/**</span>
<a name="l03741"></a>03741 <span class="comment"> * Initialize optional fields of a packet with default values.</span>
<a name="l03742"></a>03742 <span class="comment"> *</span>
<a name="l03743"></a>03743 <span class="comment"> * Note, this does not touch the data and size members, which have to be</span>
<a name="l03744"></a>03744 <span class="comment"> * initialized separately.</span>
<a name="l03745"></a>03745 <span class="comment"> *</span>
<a name="l03746"></a>03746 <span class="comment"> * @param pkt packet</span>
<a name="l03747"></a>03747 <span class="comment"> */</span>
<a name="l03748"></a>03748 <span class="keywordtype">void</span> <a class="code" href="group__lavc__packet.html#gac9cb9756175b96e7441575803757fb73" title="Initialize optional fields of a packet with default values.">av_init_packet</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>);
<a name="l03749"></a>03749 <span class="comment"></span>
<a name="l03750"></a>03750 <span class="comment">/**</span>
<a name="l03751"></a>03751 <span class="comment"> * Allocate the payload of a packet and initialize its fields with</span>
<a name="l03752"></a>03752 <span class="comment"> * default values.</span>
<a name="l03753"></a>03753 <span class="comment"> *</span>
<a name="l03754"></a>03754 <span class="comment"> * @param pkt packet</span>
<a name="l03755"></a>03755 <span class="comment"> * @param size wanted payload size</span>
<a name="l03756"></a>03756 <span class="comment"> * @return 0 if OK, AVERROR_xxx otherwise</span>
<a name="l03757"></a>03757 <span class="comment"> */</span>
<a name="l03758"></a>03758 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#gadfa708660b85a56749c753124de2da7d" title="Allocate the payload of a packet and initialize its fields with default values.">av_new_packet</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>, <span class="keywordtype">int</span> size);
<a name="l03759"></a>03759 <span class="comment"></span>
<a name="l03760"></a>03760 <span class="comment">/**</span>
<a name="l03761"></a>03761 <span class="comment"> * Reduce packet size, correctly zeroing padding</span>
<a name="l03762"></a>03762 <span class="comment"> *</span>
<a name="l03763"></a>03763 <span class="comment"> * @param pkt packet</span>
<a name="l03764"></a>03764 <span class="comment"> * @param size new size</span>
<a name="l03765"></a>03765 <span class="comment"> */</span>
<a name="l03766"></a>03766 <span class="keywordtype">void</span> <a class="code" href="group__lavc__packet.html#gaceba1c21e5718f87abdf61cf21500485" title="Reduce packet size, correctly zeroing padding.">av_shrink_packet</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>, <span class="keywordtype">int</span> size);
<a name="l03767"></a>03767 <span class="comment"></span>
<a name="l03768"></a>03768 <span class="comment">/**</span>
<a name="l03769"></a>03769 <span class="comment"> * Increase packet size, correctly zeroing padding</span>
<a name="l03770"></a>03770 <span class="comment"> *</span>
<a name="l03771"></a>03771 <span class="comment"> * @param pkt packet</span>
<a name="l03772"></a>03772 <span class="comment"> * @param grow_by number of bytes by which to increase the size of the packet</span>
<a name="l03773"></a>03773 <span class="comment"> */</span>
<a name="l03774"></a>03774 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#ga74f66e072998b8ce81ef3aba8d617a58" title="Increase packet size, correctly zeroing padding.">av_grow_packet</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>, <span class="keywordtype">int</span> grow_by);
<a name="l03775"></a>03775 <span class="comment"></span>
<a name="l03776"></a>03776 <span class="comment">/**</span>
<a name="l03777"></a>03777 <span class="comment"> * Initialize a reference-counted packet from av_malloc()ed data.</span>
<a name="l03778"></a>03778 <span class="comment"> *</span>
<a name="l03779"></a>03779 <span class="comment"> * @param pkt packet to be initialized. This function will set the data, size,</span>
<a name="l03780"></a>03780 <span class="comment"> * buf and destruct fields, all others are left untouched.</span>
<a name="l03781"></a>03781 <span class="comment"> * @param data Data allocated by av_malloc() to be used as packet data. If this</span>
<a name="l03782"></a>03782 <span class="comment"> * function returns successfully, the data is owned by the underlying AVBuffer.</span>
<a name="l03783"></a>03783 <span class="comment"> * The caller may not access the data through other means.</span>
<a name="l03784"></a>03784 <span class="comment"> * @param size size of data in bytes, without the padding. I.e. the full buffer</span>
<a name="l03785"></a>03785 <span class="comment"> * size is assumed to be size + FF_INPUT_BUFFER_PADDING_SIZE.</span>
<a name="l03786"></a>03786 <span class="comment"> *</span>
<a name="l03787"></a>03787 <span class="comment"> * @return 0 on success, a negative AVERROR on error</span>
<a name="l03788"></a>03788 <span class="comment"> */</span>
<a name="l03789"></a>03789 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#ga7ca877e1f0ded89a27199b65e9a077dc" title="Initialize a reference-counted packet from av_malloc()ed data.">av_packet_from_data</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>, uint8_t *data, <span class="keywordtype">int</span> size);
<a name="l03790"></a>03790 <span class="comment"></span>
<a name="l03791"></a>03791 <span class="comment">/**</span>
<a name="l03792"></a>03792 <span class="comment"> * @warning This is a hack - the packet memory allocation stuff is broken. The</span>
<a name="l03793"></a>03793 <span class="comment"> * packet is allocated if it was not really allocated.</span>
<a name="l03794"></a>03794 <span class="comment"> */</span>
<a name="l03795"></a>03795 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#ga04c83bc8a685960564a169f3a050b915">av_dup_packet</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>);
<a name="l03796"></a>03796 <span class="comment"></span>
<a name="l03797"></a>03797 <span class="comment">/**</span>
<a name="l03798"></a>03798 <span class="comment"> * Copy packet, including contents</span>
<a name="l03799"></a>03799 <span class="comment"> *</span>
<a name="l03800"></a>03800 <span class="comment"> * @return 0 on success, negative AVERROR on fail</span>
<a name="l03801"></a>03801 <span class="comment"> */</span>
<a name="l03802"></a>03802 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#ga917dac9e139893510532c9bea475ef11" title="Copy packet, including contents.">av_copy_packet</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *src);
<a name="l03803"></a>03803 <span class="comment"></span>
<a name="l03804"></a>03804 <span class="comment">/**</span>
<a name="l03805"></a>03805 <span class="comment"> * Copy packet side data</span>
<a name="l03806"></a>03806 <span class="comment"> *</span>
<a name="l03807"></a>03807 <span class="comment"> * @return 0 on success, negative AVERROR on fail</span>
<a name="l03808"></a>03808 <span class="comment"> */</span>
<a name="l03809"></a>03809 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#ga14ca6bb8bfe5508b0071765efc9266f6" title="Copy packet side data.">av_copy_packet_side_data</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *src);
<a name="l03810"></a>03810 <span class="comment"></span>
<a name="l03811"></a>03811 <span class="comment">/**</span>
<a name="l03812"></a>03812 <span class="comment"> * Free a packet.</span>
<a name="l03813"></a>03813 <span class="comment"> *</span>
<a name="l03814"></a>03814 <span class="comment"> * @param pkt packet to free</span>
<a name="l03815"></a>03815 <span class="comment"> */</span>
<a name="l03816"></a>03816 <span class="keywordtype">void</span> <a class="code" href="group__lavc__packet.html#gae65881462e78f98b268f34661d921ee0" title="Free a packet.">av_free_packet</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>);
<a name="l03817"></a>03817 <span class="comment"></span>
<a name="l03818"></a>03818 <span class="comment">/**</span>
<a name="l03819"></a>03819 <span class="comment"> * Allocate new information of a packet.</span>
<a name="l03820"></a>03820 <span class="comment"> *</span>
<a name="l03821"></a>03821 <span class="comment"> * @param pkt packet</span>
<a name="l03822"></a>03822 <span class="comment"> * @param type side information type</span>
<a name="l03823"></a>03823 <span class="comment"> * @param size side information size</span>
<a name="l03824"></a>03824 <span class="comment"> * @return pointer to fresh allocated data or NULL otherwise</span>
<a name="l03825"></a>03825 <span class="comment"> */</span>
<a name="l03826"></a>03826 uint8_t* <a class="code" href="group__lavc__packet.html#gac59f9714ac34774b43b3797c80b06c68" title="Allocate new information of a packet.">av_packet_new_side_data</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>, <span class="keyword">enum</span> <a class="code" href="group__lavc__packet.html#ga9a80bfcacc586b483a973272800edb97">AVPacketSideDataType</a> type,
<a name="l03827"></a>03827 <span class="keywordtype">int</span> size);
<a name="l03828"></a>03828 <span class="comment"></span>
<a name="l03829"></a>03829 <span class="comment">/**</span>
<a name="l03830"></a>03830 <span class="comment"> * Shrink the already allocated side data buffer</span>
<a name="l03831"></a>03831 <span class="comment"> *</span>
<a name="l03832"></a>03832 <span class="comment"> * @param pkt packet</span>
<a name="l03833"></a>03833 <span class="comment"> * @param type side information type</span>
<a name="l03834"></a>03834 <span class="comment"> * @param size new side information size</span>
<a name="l03835"></a>03835 <span class="comment"> * @return 0 on success, < 0 on failure</span>
<a name="l03836"></a>03836 <span class="comment"> */</span>
<a name="l03837"></a>03837 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#gaefae1892a6e7de60928da347ec74f460" title="Shrink the already allocated side data buffer.">av_packet_shrink_side_data</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>, <span class="keyword">enum</span> <a class="code" href="group__lavc__packet.html#ga9a80bfcacc586b483a973272800edb97">AVPacketSideDataType</a> type,
<a name="l03838"></a>03838 <span class="keywordtype">int</span> size);
<a name="l03839"></a>03839 <span class="comment"></span>
<a name="l03840"></a>03840 <span class="comment">/**</span>
<a name="l03841"></a>03841 <span class="comment"> * Get side information from packet.</span>
<a name="l03842"></a>03842 <span class="comment"> *</span>
<a name="l03843"></a>03843 <span class="comment"> * @param pkt packet</span>
<a name="l03844"></a>03844 <span class="comment"> * @param type desired side information type</span>
<a name="l03845"></a>03845 <span class="comment"> * @param size pointer for side information size to store (optional)</span>
<a name="l03846"></a>03846 <span class="comment"> * @return pointer to data if present or NULL otherwise</span>
<a name="l03847"></a>03847 <span class="comment"> */</span>
<a name="l03848"></a>03848 uint8_t* <a class="code" href="group__lavc__packet.html#ga13f8dba52eed886ad2c7d2510da289f8" title="Get side information from packet.">av_packet_get_side_data</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>, <span class="keyword">enum</span> <a class="code" href="group__lavc__packet.html#ga9a80bfcacc586b483a973272800edb97">AVPacketSideDataType</a> type,
<a name="l03849"></a>03849 <span class="keywordtype">int</span> *size);
<a name="l03850"></a>03850
<a name="l03851"></a>03851 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#gae27195b8483cfe56407a664af5b52951">av_packet_merge_side_data</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>);
<a name="l03852"></a>03852
<a name="l03853"></a>03853 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#ga7febd324eb8a1109e74416e9c82045b1">av_packet_split_side_data</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>);
<a name="l03854"></a>03854
<a name="l03855"></a>03855 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__lavc__packet.html#ga78c05e43a5d021eb10e63b28a541bce3">av_packet_side_data_name</a>(<span class="keyword">enum</span> <a class="code" href="group__lavc__packet.html#ga9a80bfcacc586b483a973272800edb97">AVPacketSideDataType</a> type);
<a name="l03856"></a>03856 <span class="comment"></span>
<a name="l03857"></a>03857 <span class="comment">/**</span>
<a name="l03858"></a>03858 <span class="comment"> * Pack a dictionary for use in side_data.</span>
<a name="l03859"></a>03859 <span class="comment"> *</span>
<a name="l03860"></a>03860 <span class="comment"> * @param dict The dictionary to pack.</span>
<a name="l03861"></a>03861 <span class="comment"> * @param size pointer to store the size of the returned data</span>
<a name="l03862"></a>03862 <span class="comment"> * @return pointer to data if successful, NULL otherwise</span>
<a name="l03863"></a>03863 <span class="comment"> */</span>
<a name="l03864"></a>03864 uint8_t *<a class="code" href="group__lavc__packet.html#ga7a0673855be71c876334ed04c6989ae8" title="Pack a dictionary for use in side_data.">av_packet_pack_dictionary</a>(<a class="code" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> *dict, <span class="keywordtype">int</span> *size);<span class="comment"></span>
<a name="l03865"></a>03865 <span class="comment">/**</span>
<a name="l03866"></a>03866 <span class="comment"> * Unpack a dictionary from side_data.</span>
<a name="l03867"></a>03867 <span class="comment"> *</span>
<a name="l03868"></a>03868 <span class="comment"> * @param data data from side_data</span>
<a name="l03869"></a>03869 <span class="comment"> * @param size size of the data</span>
<a name="l03870"></a>03870 <span class="comment"> * @param dict the metadata storage dictionary</span>
<a name="l03871"></a>03871 <span class="comment"> * @return 0 on success, < 0 on failure</span>
<a name="l03872"></a>03872 <span class="comment"> */</span>
<a name="l03873"></a>03873 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#ga1db169cc19e8194eca7311f877783a50" title="Unpack a dictionary from side_data.">av_packet_unpack_dictionary</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">int</span> size, <a class="code" href="group__lavu__dict.html#ga1d7cc0833bee918994a600556410315f">AVDictionary</a> **dict);
<a name="l03874"></a>03874
<a name="l03875"></a>03875 <span class="comment"></span>
<a name="l03876"></a>03876 <span class="comment">/**</span>
<a name="l03877"></a>03877 <span class="comment"> * Convenience function to free all the side data stored.</span>
<a name="l03878"></a>03878 <span class="comment"> * All the other fields stay untouched.</span>
<a name="l03879"></a>03879 <span class="comment"> *</span>
<a name="l03880"></a>03880 <span class="comment"> * @param pkt packet</span>
<a name="l03881"></a>03881 <span class="comment"> */</span>
<a name="l03882"></a>03882 <span class="keywordtype">void</span> <a class="code" href="group__lavc__packet.html#ga5cf4ba712aca9b300daf1eea1b8a9ebb" title="Convenience function to free all the side data stored.">av_packet_free_side_data</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>);
<a name="l03883"></a>03883 <span class="comment"></span>
<a name="l03884"></a>03884 <span class="comment">/**</span>
<a name="l03885"></a>03885 <span class="comment"> * Setup a new reference to the data described by a given packet</span>
<a name="l03886"></a>03886 <span class="comment"> *</span>
<a name="l03887"></a>03887 <span class="comment"> * If src is reference-counted, setup dst as a new reference to the</span>
<a name="l03888"></a>03888 <span class="comment"> * buffer in src. Otherwise allocate a new buffer in dst and copy the</span>
<a name="l03889"></a>03889 <span class="comment"> * data from src into it.</span>
<a name="l03890"></a>03890 <span class="comment"> *</span>
<a name="l03891"></a>03891 <span class="comment"> * All the other fields are copied from src.</span>
<a name="l03892"></a>03892 <span class="comment"> *</span>
<a name="l03893"></a>03893 <span class="comment"> * @see av_packet_unref</span>
<a name="l03894"></a>03894 <span class="comment"> *</span>
<a name="l03895"></a>03895 <span class="comment"> * @param dst Destination packet</span>
<a name="l03896"></a>03896 <span class="comment"> * @param src Source packet</span>
<a name="l03897"></a>03897 <span class="comment"> *</span>
<a name="l03898"></a>03898 <span class="comment"> * @return 0 on success, a negative AVERROR on error.</span>
<a name="l03899"></a>03899 <span class="comment"> */</span>
<a name="l03900"></a>03900 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#gadb05d71fa2ea7b7fd3e8cfc6d9065a47" title="Setup a new reference to the data described by a given packet.">av_packet_ref</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *src);
<a name="l03901"></a>03901 <span class="comment"></span>
<a name="l03902"></a>03902 <span class="comment">/**</span>
<a name="l03903"></a>03903 <span class="comment"> * Wipe the packet.</span>
<a name="l03904"></a>03904 <span class="comment"> *</span>
<a name="l03905"></a>03905 <span class="comment"> * Unreference the buffer referenced by the packet and reset the</span>
<a name="l03906"></a>03906 <span class="comment"> * remaining packet fields to their default values.</span>
<a name="l03907"></a>03907 <span class="comment"> *</span>
<a name="l03908"></a>03908 <span class="comment"> * @param pkt The packet to be unreferenced.</span>
<a name="l03909"></a>03909 <span class="comment"> */</span>
<a name="l03910"></a>03910 <span class="keywordtype">void</span> <a class="code" href="group__lavc__packet.html#ga63d5a489b419bd5d45cfd09091cbcbc2" title="Wipe the packet.">av_packet_unref</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>);
<a name="l03911"></a>03911 <span class="comment"></span>
<a name="l03912"></a>03912 <span class="comment">/**</span>
<a name="l03913"></a>03913 <span class="comment"> * Move every field in src to dst and reset src.</span>
<a name="l03914"></a>03914 <span class="comment"> *</span>
<a name="l03915"></a>03915 <span class="comment"> * @see av_packet_unref</span>
<a name="l03916"></a>03916 <span class="comment"> *</span>
<a name="l03917"></a>03917 <span class="comment"> * @param src Source packet, will be reset</span>
<a name="l03918"></a>03918 <span class="comment"> * @param dst Destination packet</span>
<a name="l03919"></a>03919 <span class="comment"> */</span>
<a name="l03920"></a>03920 <span class="keywordtype">void</span> <a class="code" href="group__lavc__packet.html#ga91dbb1359f99547adb544ee96a406b21" title="Move every field in src to dst and reset src.">av_packet_move_ref</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *dst, <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *src);
<a name="l03921"></a>03921 <span class="comment"></span>
<a name="l03922"></a>03922 <span class="comment">/**</span>
<a name="l03923"></a>03923 <span class="comment"> * Copy only "properties" fields from src to dst.</span>
<a name="l03924"></a>03924 <span class="comment"> *</span>
<a name="l03925"></a>03925 <span class="comment"> * Properties for the purpose of this function are all the fields</span>
<a name="l03926"></a>03926 <span class="comment"> * beside those related to the packet data (buf, data, size)</span>
<a name="l03927"></a>03927 <span class="comment"> *</span>
<a name="l03928"></a>03928 <span class="comment"> * @param dst Destination packet</span>
<a name="l03929"></a>03929 <span class="comment"> * @param src Source packet</span>
<a name="l03930"></a>03930 <span class="comment"> *</span>
<a name="l03931"></a>03931 <span class="comment"> * @return 0 on success AVERROR on failure.</span>
<a name="l03932"></a>03932 <span class="comment"> *</span>
<a name="l03933"></a>03933 <span class="comment"> */</span>
<a name="l03934"></a>03934 <span class="keywordtype">int</span> <a class="code" href="group__lavc__packet.html#gade00f67930f4e2a3401b67b701d5b3a2" title="Copy only "properties" fields from src to dst.">av_packet_copy_props</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *src);
<a name="l03935"></a>03935 <span class="comment"></span>
<a name="l03936"></a>03936 <span class="comment">/**</span>
<a name="l03937"></a>03937 <span class="comment"> * Convert valid timing fields (timestamps / durations) in a packet from one</span>
<a name="l03938"></a>03938 <span class="comment"> * timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be</span>
<a name="l03939"></a>03939 <span class="comment"> * ignored.</span>
<a name="l03940"></a>03940 <span class="comment"> *</span>
<a name="l03941"></a>03941 <span class="comment"> * @param pkt packet on which the conversion will be performed</span>
<a name="l03942"></a>03942 <span class="comment"> * @param tb_src source timebase, in which the timing fields in pkt are</span>
<a name="l03943"></a>03943 <span class="comment"> * expressed</span>
<a name="l03944"></a>03944 <span class="comment"> * @param tb_dst destination timebase, to which the timing fields will be</span>
<a name="l03945"></a>03945 <span class="comment"> * converted</span>
<a name="l03946"></a>03946 <span class="comment"> */</span>
<a name="l03947"></a>03947 <span class="keywordtype">void</span> <a class="code" href="group__lavc__packet.html#gae5c86e4d93f6e7aa62ef2c60763ea67e" title="Convert valid timing fields (timestamps / durations) in a packet from one timebase to another...">av_packet_rescale_ts</a>(<a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *<a class="code" href="demuxing__decoding_8c.html#a3d4c6562f0b27cf0cacbbea5c038c090">pkt</a>, <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> tb_src, <a class="code" href="structAVRational.html" title="rational number numerator/denominator">AVRational</a> tb_dst);
<a name="l03948"></a>03948 <span class="comment"></span>
<a name="l03949"></a>03949 <span class="comment">/**</span>
<a name="l03950"></a>03950 <span class="comment"> * @}</span>
<a name="l03951"></a>03951 <span class="comment"> */</span>
<a name="l03952"></a>03952 <span class="comment"></span>
<a name="l03953"></a>03953 <span class="comment">/**</span>
<a name="l03954"></a>03954 <span class="comment"> * @addtogroup lavc_decoding</span>
<a name="l03955"></a>03955 <span class="comment"> * @{</span>
<a name="l03956"></a>03956 <span class="comment"> */</span>
<a name="l03957"></a>03957 <span class="comment"></span>
<a name="l03958"></a>03958 <span class="comment">/**</span>
<a name="l03959"></a>03959 <span class="comment"> * Find a registered decoder with a matching codec ID.</span>
<a name="l03960"></a>03960 <span class="comment"> *</span>
<a name="l03961"></a>03961 <span class="comment"> * @param id AVCodecID of the requested decoder</span>
<a name="l03962"></a>03962 <span class="comment"> * @return A decoder if one was found, NULL otherwise.</span>
<a name="l03963"></a>03963 <span class="comment"> */</span>
<a name="l03964"></a>03964 <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *<a class="code" href="group__lavc__decoding.html#ga19a0ca553277f019dd5b0fec6e1f9dca" title="Find a registered decoder with a matching codec ID.">avcodec_find_decoder</a>(<span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <span class="keywordtype">id</span>);
<a name="l03965"></a>03965 <span class="comment"></span>
<a name="l03966"></a>03966 <span class="comment">/**</span>
<a name="l03967"></a>03967 <span class="comment"> * Find a registered decoder with the specified name.</span>
<a name="l03968"></a>03968 <span class="comment"> *</span>
<a name="l03969"></a>03969 <span class="comment"> * @param name name of the requested decoder</span>
<a name="l03970"></a>03970 <span class="comment"> * @return A decoder if one was found, NULL otherwise.</span>
<a name="l03971"></a>03971 <span class="comment"> */</span>
<a name="l03972"></a>03972 <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *<a class="code" href="group__lavc__decoding.html#ga776f2359007e8457799503068419e791" title="Find a registered decoder with the specified name.">avcodec_find_decoder_by_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);
<a name="l03973"></a>03973
<a name="l03974"></a>03974 <span class="preprocessor">#if FF_API_GET_BUFFER</span>
<a name="l03975"></a>03975 <span class="preprocessor"></span><a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <span class="keywordtype">int</span> <a class="code" href="group__lavc__decoding.html#ga666e4cc55f8a14c3b1ea66aaef2f6970">avcodec_default_get_buffer</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *pic);
<a name="l03976"></a>03976 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <span class="keywordtype">void</span> <a class="code" href="group__lavc__decoding.html#ga4544e55d2417bfe6e746dcaf2195dde0">avcodec_default_release_buffer</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *pic);
<a name="l03977"></a>03977 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <span class="keywordtype">int</span> <a class="code" href="group__lavc__decoding.html#ga3f7158d88758be42cc1ab6b9e6df9f0d">avcodec_default_reget_buffer</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *pic);
<a name="l03978"></a>03978 <span class="preprocessor">#endif</span>
<a name="l03979"></a>03979 <span class="preprocessor"></span><span class="comment"></span>
<a name="l03980"></a>03980 <span class="comment">/**</span>
<a name="l03981"></a>03981 <span class="comment"> * The default callback for AVCodecContext.get_buffer2(). It is made public so</span>
<a name="l03982"></a>03982 <span class="comment"> * it can be called by custom get_buffer2() implementations for decoders without</span>
<a name="l03983"></a>03983 <span class="comment"> * CODEC_CAP_DR1 set.</span>
<a name="l03984"></a>03984 <span class="comment"> */</span>
<a name="l03985"></a>03985 <span class="keywordtype">int</span> <a class="code" href="group__lavc__decoding.html#ga09dee227d3666720eff1f6913d11699d" title="The default callback for AVCodecContext.get_buffer2().">avcodec_default_get_buffer2</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>, <span class="keywordtype">int</span> flags);
<a name="l03986"></a>03986
<a name="l03987"></a>03987 <span class="preprocessor">#if FF_API_EMU_EDGE</span>
<a name="l03988"></a>03988 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l03989"></a>03989 <span class="comment"> * Return the amount of padding in pixels which the get_buffer callback must</span>
<a name="l03990"></a>03990 <span class="comment"> * provide around the edge of the image for codecs which do not have the</span>
<a name="l03991"></a>03991 <span class="comment"> * CODEC_FLAG_EMU_EDGE flag.</span>
<a name="l03992"></a>03992 <span class="comment"> *</span>
<a name="l03993"></a>03993 <span class="comment"> * @return Required padding in pixels.</span>
<a name="l03994"></a>03994 <span class="comment"> *</span>
<a name="l03995"></a>03995 <span class="comment"> * @deprecated CODEC_FLAG_EMU_EDGE is deprecated, so this function is no longer</span>
<a name="l03996"></a>03996 <span class="comment"> * needed</span>
<a name="l03997"></a>03997 <span class="comment"> */</span>
<a name="l03998"></a>03998 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l03999"></a>03999 <span class="keywordtype">unsigned</span> <a class="code" href="group__lavc__decoding.html#gaad92aaeee369795273fc6cfc6ef3b189" title="Return the amount of padding in pixels which the get_buffer callback must provide around the edge of ...">avcodec_get_edge_width</a>(<span class="keywordtype">void</span>);
<a name="l04000"></a>04000 <span class="preprocessor">#endif</span>
<a name="l04001"></a>04001 <span class="preprocessor"></span><span class="comment"></span>
<a name="l04002"></a>04002 <span class="comment">/**</span>
<a name="l04003"></a>04003 <span class="comment"> * Modify width and height values so that they will result in a memory</span>
<a name="l04004"></a>04004 <span class="comment"> * buffer that is acceptable for the codec if you do not use any horizontal</span>
<a name="l04005"></a>04005 <span class="comment"> * padding.</span>
<a name="l04006"></a>04006 <span class="comment"> *</span>
<a name="l04007"></a>04007 <span class="comment"> * May only be used if a codec with CODEC_CAP_DR1 has been opened.</span>
<a name="l04008"></a>04008 <span class="comment"> */</span>
<a name="l04009"></a>04009 <span class="keywordtype">void</span> <a class="code" href="group__lavc__decoding.html#ga48432a3760eec9fce0f0ef7b298859f1" title="Modify width and height values so that they will result in a memory buffer that is acceptable for the...">avcodec_align_dimensions</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <span class="keywordtype">int</span> *<a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> *<a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>);
<a name="l04010"></a>04010 <span class="comment"></span>
<a name="l04011"></a>04011 <span class="comment">/**</span>
<a name="l04012"></a>04012 <span class="comment"> * Modify width and height values so that they will result in a memory</span>
<a name="l04013"></a>04013 <span class="comment"> * buffer that is acceptable for the codec if you also ensure that all</span>
<a name="l04014"></a>04014 <span class="comment"> * line sizes are a multiple of the respective linesize_align[i].</span>
<a name="l04015"></a>04015 <span class="comment"> *</span>
<a name="l04016"></a>04016 <span class="comment"> * May only be used if a codec with CODEC_CAP_DR1 has been opened.</span>
<a name="l04017"></a>04017 <span class="comment"> */</span>
<a name="l04018"></a>04018 <span class="keywordtype">void</span> <a class="code" href="group__lavc__decoding.html#ga34e3269dc1b9e2c98e9371241722e7e2" title="Modify width and height values so that they will result in a memory buffer that is acceptable for the...">avcodec_align_dimensions2</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <span class="keywordtype">int</span> *<a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> *<a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>,
<a name="l04019"></a>04019 <span class="keywordtype">int</span> linesize_align[<a class="code" href="frame_8h.html#add80189702cf0f5ea82718576fb43201">AV_NUM_DATA_POINTERS</a>]);
<a name="l04020"></a>04020 <span class="comment"></span>
<a name="l04021"></a>04021 <span class="comment">/**</span>
<a name="l04022"></a>04022 <span class="comment"> * Converts AVChromaLocation to swscale x/y chroma position.</span>
<a name="l04023"></a>04023 <span class="comment"> *</span>
<a name="l04024"></a>04024 <span class="comment"> * The positions represent the chroma (0,0) position in a coordinates system</span>
<a name="l04025"></a>04025 <span class="comment"> * with luma (0,0) representing the origin and luma(1,1) representing 256,256</span>
<a name="l04026"></a>04026 <span class="comment"> *</span>
<a name="l04027"></a>04027 <span class="comment"> * @param xpos horizontal chroma sample position</span>
<a name="l04028"></a>04028 <span class="comment"> * @param ypos vertical chroma sample position</span>
<a name="l04029"></a>04029 <span class="comment"> */</span>
<a name="l04030"></a>04030 <span class="keywordtype">int</span> <a class="code" href="group__lavc__decoding.html#ga29744651709d05d125982e6ca20fcd95" title="Converts AVChromaLocation to swscale x/y chroma position.">avcodec_enum_to_chroma_pos</a>(<span class="keywordtype">int</span> *xpos, <span class="keywordtype">int</span> *ypos, <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a1f86ed1b6a420faccacf77c98db6c1ff" title="Location of chroma samples.">AVChromaLocation</a> pos);
<a name="l04031"></a>04031 <span class="comment"></span>
<a name="l04032"></a>04032 <span class="comment">/**</span>
<a name="l04033"></a>04033 <span class="comment"> * Converts swscale x/y chroma position to AVChromaLocation.</span>
<a name="l04034"></a>04034 <span class="comment"> *</span>
<a name="l04035"></a>04035 <span class="comment"> * The positions represent the chroma (0,0) position in a coordinates system</span>
<a name="l04036"></a>04036 <span class="comment"> * with luma (0,0) representing the origin and luma(1,1) representing 256,256</span>
<a name="l04037"></a>04037 <span class="comment"> *</span>
<a name="l04038"></a>04038 <span class="comment"> * @param xpos horizontal chroma sample position</span>
<a name="l04039"></a>04039 <span class="comment"> * @param ypos vertical chroma sample position</span>
<a name="l04040"></a>04040 <span class="comment"> */</span>
<a name="l04041"></a>04041 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a1f86ed1b6a420faccacf77c98db6c1ff" title="Location of chroma samples.">AVChromaLocation</a> <a class="code" href="group__lavc__decoding.html#ga30c6c7e3af6c589814d5135561b69980" title="Converts swscale x/y chroma position to AVChromaLocation.">avcodec_chroma_pos_to_enum</a>(<span class="keywordtype">int</span> xpos, <span class="keywordtype">int</span> ypos);
<a name="l04042"></a>04042
<a name="l04043"></a>04043 <span class="preprocessor">#if FF_API_OLD_DECODE_AUDIO</span>
<a name="l04044"></a>04044 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l04045"></a>04045 <span class="comment"> * Wrapper function which calls avcodec_decode_audio4.</span>
<a name="l04046"></a>04046 <span class="comment"> *</span>
<a name="l04047"></a>04047 <span class="comment"> * @deprecated Use avcodec_decode_audio4 instead.</span>
<a name="l04048"></a>04048 <span class="comment"> *</span>
<a name="l04049"></a>04049 <span class="comment"> * Decode the audio frame of size avpkt->size from avpkt->data into samples.</span>
<a name="l04050"></a>04050 <span class="comment"> * Some decoders may support multiple frames in a single AVPacket, such</span>
<a name="l04051"></a>04051 <span class="comment"> * decoders would then just decode the first frame. In this case,</span>
<a name="l04052"></a>04052 <span class="comment"> * avcodec_decode_audio3 has to be called again with an AVPacket that contains</span>
<a name="l04053"></a>04053 <span class="comment"> * the remaining data in order to decode the second frame etc.</span>
<a name="l04054"></a>04054 <span class="comment"> * If no frame</span>
<a name="l04055"></a>04055 <span class="comment"> * could be outputted, frame_size_ptr is zero. Otherwise, it is the</span>
<a name="l04056"></a>04056 <span class="comment"> * decompressed frame size in bytes.</span>
<a name="l04057"></a>04057 <span class="comment"> *</span>
<a name="l04058"></a>04058 <span class="comment"> * @warning You must set frame_size_ptr to the allocated size of the</span>
<a name="l04059"></a>04059 <span class="comment"> * output buffer before calling avcodec_decode_audio3().</span>
<a name="l04060"></a>04060 <span class="comment"> *</span>
<a name="l04061"></a>04061 <span class="comment"> * @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than</span>
<a name="l04062"></a>04062 <span class="comment"> * the actual read bytes because some optimized bitstream readers read 32 or 64</span>
<a name="l04063"></a>04063 <span class="comment"> * bits at once and could read over the end.</span>
<a name="l04064"></a>04064 <span class="comment"> *</span>
<a name="l04065"></a>04065 <span class="comment"> * @warning The end of the input buffer avpkt->data should be set to 0 to ensure that</span>
<a name="l04066"></a>04066 <span class="comment"> * no overreading happens for damaged MPEG streams.</span>
<a name="l04067"></a>04067 <span class="comment"> *</span>
<a name="l04068"></a>04068 <span class="comment"> * @warning You must not provide a custom get_buffer() when using</span>
<a name="l04069"></a>04069 <span class="comment"> * avcodec_decode_audio3(). Doing so will override it with</span>
<a name="l04070"></a>04070 <span class="comment"> * avcodec_default_get_buffer. Use avcodec_decode_audio4() instead,</span>
<a name="l04071"></a>04071 <span class="comment"> * which does allow the application to provide a custom get_buffer().</span>
<a name="l04072"></a>04072 <span class="comment"> *</span>
<a name="l04073"></a>04073 <span class="comment"> * @note You might have to align the input buffer avpkt->data and output buffer</span>
<a name="l04074"></a>04074 <span class="comment"> * samples. The alignment requirements depend on the CPU: On some CPUs it isn't</span>
<a name="l04075"></a>04075 <span class="comment"> * necessary at all, on others it won't work at all if not aligned and on others</span>
<a name="l04076"></a>04076 <span class="comment"> * it will work but it will have an impact on performance.</span>
<a name="l04077"></a>04077 <span class="comment"> *</span>
<a name="l04078"></a>04078 <span class="comment"> * In practice, avpkt->data should have 4 byte alignment at minimum and</span>
<a name="l04079"></a>04079 <span class="comment"> * samples should be 16 byte aligned unless the CPU doesn't need it</span>
<a name="l04080"></a>04080 <span class="comment"> * (AltiVec and SSE do).</span>
<a name="l04081"></a>04081 <span class="comment"> *</span>
<a name="l04082"></a>04082 <span class="comment"> * @note Codecs which have the CODEC_CAP_DELAY capability set have a delay</span>
<a name="l04083"></a>04083 <span class="comment"> * between input and output, these need to be fed with avpkt->data=NULL,</span>
<a name="l04084"></a>04084 <span class="comment"> * avpkt->size=0 at the end to return the remaining frames.</span>
<a name="l04085"></a>04085 <span class="comment"> *</span>
<a name="l04086"></a>04086 <span class="comment"> * @param avctx the codec context</span>
<a name="l04087"></a>04087 <span class="comment"> * @param[out] samples the output buffer, sample type in avctx->sample_fmt</span>
<a name="l04088"></a>04088 <span class="comment"> * If the sample format is planar, each channel plane will</span>
<a name="l04089"></a>04089 <span class="comment"> * be the same size, with no padding between channels.</span>
<a name="l04090"></a>04090 <span class="comment"> * @param[in,out] frame_size_ptr the output buffer size in bytes</span>
<a name="l04091"></a>04091 <span class="comment"> * @param[in] avpkt The input AVPacket containing the input buffer.</span>
<a name="l04092"></a>04092 <span class="comment"> * You can create such packet with av_init_packet() and by then setting</span>
<a name="l04093"></a>04093 <span class="comment"> * data and size, some decoders might in addition need other fields.</span>
<a name="l04094"></a>04094 <span class="comment"> * All decoders are designed to use the least fields possible though.</span>
<a name="l04095"></a>04095 <span class="comment"> * @return On error a negative value is returned, otherwise the number of bytes</span>
<a name="l04096"></a>04096 <span class="comment"> * used or zero if no frame data was decompressed (used) from the input AVPacket.</span>
<a name="l04097"></a>04097 <span class="comment"> */</span>
<a name="l04098"></a>04098 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <span class="keywordtype">int</span> <a class="code" href="group__lavc__decoding.html#gac552241713bbc0eae2206a75d211daf4" title="Wrapper function which calls avcodec_decode_audio4.">avcodec_decode_audio3</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, int16_t *samples,
<a name="l04099"></a>04099 <span class="keywordtype">int</span> *frame_size_ptr,
<a name="l04100"></a>04100 <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *avpkt);
<a name="l04101"></a>04101 <span class="preprocessor">#endif</span>
<a name="l04102"></a>04102 <span class="preprocessor"></span><span class="comment"></span>
<a name="l04103"></a>04103 <span class="comment">/**</span>
<a name="l04104"></a>04104 <span class="comment"> * Decode the audio frame of size avpkt->size from avpkt->data into frame.</span>
<a name="l04105"></a>04105 <span class="comment"> *</span>
<a name="l04106"></a>04106 <span class="comment"> * Some decoders may support multiple frames in a single AVPacket. Such</span>
<a name="l04107"></a>04107 <span class="comment"> * decoders would then just decode the first frame and the return value would be</span>
<a name="l04108"></a>04108 <span class="comment"> * less than the packet size. In this case, avcodec_decode_audio4 has to be</span>
<a name="l04109"></a>04109 <span class="comment"> * called again with an AVPacket containing the remaining data in order to</span>
<a name="l04110"></a>04110 <span class="comment"> * decode the second frame, etc... Even if no frames are returned, the packet</span>
<a name="l04111"></a>04111 <span class="comment"> * needs to be fed to the decoder with remaining data until it is completely</span>
<a name="l04112"></a>04112 <span class="comment"> * consumed or an error occurs.</span>
<a name="l04113"></a>04113 <span class="comment"> *</span>
<a name="l04114"></a>04114 <span class="comment"> * Some decoders (those marked with CODEC_CAP_DELAY) have a delay between input</span>
<a name="l04115"></a>04115 <span class="comment"> * and output. This means that for some packets they will not immediately</span>
<a name="l04116"></a>04116 <span class="comment"> * produce decoded output and need to be flushed at the end of decoding to get</span>
<a name="l04117"></a>04117 <span class="comment"> * all the decoded data. Flushing is done by calling this function with packets</span>
<a name="l04118"></a>04118 <span class="comment"> * with avpkt->data set to NULL and avpkt->size set to 0 until it stops</span>
<a name="l04119"></a>04119 <span class="comment"> * returning samples. It is safe to flush even those decoders that are not</span>
<a name="l04120"></a>04120 <span class="comment"> * marked with CODEC_CAP_DELAY, then no samples will be returned.</span>
<a name="l04121"></a>04121 <span class="comment"> *</span>
<a name="l04122"></a>04122 <span class="comment"> * @warning The input buffer, avpkt->data must be FF_INPUT_BUFFER_PADDING_SIZE</span>
<a name="l04123"></a>04123 <span class="comment"> * larger than the actual read bytes because some optimized bitstream</span>
<a name="l04124"></a>04124 <span class="comment"> * readers read 32 or 64 bits at once and could read over the end.</span>
<a name="l04125"></a>04125 <span class="comment"> *</span>
<a name="l04126"></a>04126 <span class="comment"> * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()</span>
<a name="l04127"></a>04127 <span class="comment"> * before packets may be fed to the decoder.</span>
<a name="l04128"></a>04128 <span class="comment"> *</span>
<a name="l04129"></a>04129 <span class="comment"> * @param avctx the codec context</span>
<a name="l04130"></a>04130 <span class="comment"> * @param[out] frame The AVFrame in which to store decoded audio samples.</span>
<a name="l04131"></a>04131 <span class="comment"> * The decoder will allocate a buffer for the decoded frame by</span>
<a name="l04132"></a>04132 <span class="comment"> * calling the AVCodecContext.get_buffer2() callback.</span>
<a name="l04133"></a>04133 <span class="comment"> * When AVCodecContext.refcounted_frames is set to 1, the frame is</span>
<a name="l04134"></a>04134 <span class="comment"> * reference counted and the returned reference belongs to the</span>
<a name="l04135"></a>04135 <span class="comment"> * caller. The caller must release the frame using av_frame_unref()</span>
<a name="l04136"></a>04136 <span class="comment"> * when the frame is no longer needed. The caller may safely write</span>
<a name="l04137"></a>04137 <span class="comment"> * to the frame if av_frame_is_writable() returns 1.</span>
<a name="l04138"></a>04138 <span class="comment"> * When AVCodecContext.refcounted_frames is set to 0, the returned</span>
<a name="l04139"></a>04139 <span class="comment"> * reference belongs to the decoder and is valid only until the</span>
<a name="l04140"></a>04140 <span class="comment"> * next call to this function or until closing or flushing the</span>
<a name="l04141"></a>04141 <span class="comment"> * decoder. The caller may not write to it.</span>
<a name="l04142"></a>04142 <span class="comment"> * @param[out] got_frame_ptr Zero if no frame could be decoded, otherwise it is</span>
<a name="l04143"></a>04143 <span class="comment"> * non-zero. Note that this field being set to zero</span>
<a name="l04144"></a>04144 <span class="comment"> * does not mean that an error has occurred. For</span>
<a name="l04145"></a>04145 <span class="comment"> * decoders with CODEC_CAP_DELAY set, no given decode</span>
<a name="l04146"></a>04146 <span class="comment"> * call is guaranteed to produce a frame.</span>
<a name="l04147"></a>04147 <span class="comment"> * @param[in] avpkt The input AVPacket containing the input buffer.</span>
<a name="l04148"></a>04148 <span class="comment"> * At least avpkt->data and avpkt->size should be set. Some</span>
<a name="l04149"></a>04149 <span class="comment"> * decoders might also require additional fields to be set.</span>
<a name="l04150"></a>04150 <span class="comment"> * @return A negative error code is returned if an error occurred during</span>
<a name="l04151"></a>04151 <span class="comment"> * decoding, otherwise the number of bytes consumed from the input</span>
<a name="l04152"></a>04152 <span class="comment"> * AVPacket is returned.</span>
<a name="l04153"></a>04153 <span class="comment"> */</span>
<a name="l04154"></a>04154 <span class="keywordtype">int</span> <a class="code" href="group__lavc__decoding.html#ga834bb1b062fbcc2de4cf7fb93f154a3e" title="Decode the audio frame of size avpkt->size from avpkt->data into frame.">avcodec_decode_audio4</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>,
<a name="l04155"></a>04155 <span class="keywordtype">int</span> *got_frame_ptr, <span class="keyword">const</span> <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *avpkt);
<a name="l04156"></a>04156 <span class="comment"></span>
<a name="l04157"></a>04157 <span class="comment">/**</span>
<a name="l04158"></a>04158 <span class="comment"> * Decode the video frame of size avpkt->size from avpkt->data into picture.</span>
<a name="l04159"></a>04159 <span class="comment"> * Some decoders may support multiple frames in a single AVPacket, such</span>
<a name="l04160"></a>04160 <span class="comment"> * decoders would then just decode the first frame.</span>
<a name="l04161"></a>04161 <span class="comment"> *</span>
<a name="l04162"></a>04162 <span class="comment"> * @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than</span>
<a name="l04163"></a>04163 <span class="comment"> * the actual read bytes because some optimized bitstream readers read 32 or 64</span>
<a name="l04164"></a>04164 <span class="comment"> * bits at once and could read over the end.</span>
<a name="l04165"></a>04165 <span class="comment"> *</span>
<a name="l04166"></a>04166 <span class="comment"> * @warning The end of the input buffer buf should be set to 0 to ensure that</span>
<a name="l04167"></a>04167 <span class="comment"> * no overreading happens for damaged MPEG streams.</span>
<a name="l04168"></a>04168 <span class="comment"> *</span>
<a name="l04169"></a>04169 <span class="comment"> * @note Codecs which have the CODEC_CAP_DELAY capability set have a delay</span>
<a name="l04170"></a>04170 <span class="comment"> * between input and output, these need to be fed with avpkt->data=NULL,</span>
<a name="l04171"></a>04171 <span class="comment"> * avpkt->size=0 at the end to return the remaining frames.</span>
<a name="l04172"></a>04172 <span class="comment"> *</span>
<a name="l04173"></a>04173 <span class="comment"> * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()</span>
<a name="l04174"></a>04174 <span class="comment"> * before packets may be fed to the decoder.</span>
<a name="l04175"></a>04175 <span class="comment"> *</span>
<a name="l04176"></a>04176 <span class="comment"> * @param avctx the codec context</span>
<a name="l04177"></a>04177 <span class="comment"> * @param[out] picture The AVFrame in which the decoded video frame will be stored.</span>
<a name="l04178"></a>04178 <span class="comment"> * Use av_frame_alloc() to get an AVFrame. The codec will</span>
<a name="l04179"></a>04179 <span class="comment"> * allocate memory for the actual bitmap by calling the</span>
<a name="l04180"></a>04180 <span class="comment"> * AVCodecContext.get_buffer2() callback.</span>
<a name="l04181"></a>04181 <span class="comment"> * When AVCodecContext.refcounted_frames is set to 1, the frame is</span>
<a name="l04182"></a>04182 <span class="comment"> * reference counted and the returned reference belongs to the</span>
<a name="l04183"></a>04183 <span class="comment"> * caller. The caller must release the frame using av_frame_unref()</span>
<a name="l04184"></a>04184 <span class="comment"> * when the frame is no longer needed. The caller may safely write</span>
<a name="l04185"></a>04185 <span class="comment"> * to the frame if av_frame_is_writable() returns 1.</span>
<a name="l04186"></a>04186 <span class="comment"> * When AVCodecContext.refcounted_frames is set to 0, the returned</span>
<a name="l04187"></a>04187 <span class="comment"> * reference belongs to the decoder and is valid only until the</span>
<a name="l04188"></a>04188 <span class="comment"> * next call to this function or until closing or flushing the</span>
<a name="l04189"></a>04189 <span class="comment"> * decoder. The caller may not write to it.</span>
<a name="l04190"></a>04190 <span class="comment"> *</span>
<a name="l04191"></a>04191 <span class="comment"> * @param[in] avpkt The input AVPacket containing the input buffer.</span>
<a name="l04192"></a>04192 <span class="comment"> * You can create such packet with av_init_packet() and by then setting</span>
<a name="l04193"></a>04193 <span class="comment"> * data and size, some decoders might in addition need other fields like</span>
<a name="l04194"></a>04194 <span class="comment"> * flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least</span>
<a name="l04195"></a>04195 <span class="comment"> * fields possible.</span>
<a name="l04196"></a>04196 <span class="comment"> * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero.</span>
<a name="l04197"></a>04197 <span class="comment"> * @return On error a negative value is returned, otherwise the number of bytes</span>
<a name="l04198"></a>04198 <span class="comment"> * used or zero if no frame could be decompressed.</span>
<a name="l04199"></a>04199 <span class="comment"> */</span>
<a name="l04200"></a>04200 <span class="keywordtype">int</span> <a class="code" href="group__lavc__decoding.html#ga99ee61b6dcffb7817a275d39da58cc74" title="Decode the video frame of size avpkt->size from avpkt->data into picture.">avcodec_decode_video2</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *picture,
<a name="l04201"></a>04201 <span class="keywordtype">int</span> *got_picture_ptr,
<a name="l04202"></a>04202 <span class="keyword">const</span> <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *avpkt);
<a name="l04203"></a>04203 <span class="comment"></span>
<a name="l04204"></a>04204 <span class="comment">/**</span>
<a name="l04205"></a>04205 <span class="comment"> * Decode a subtitle message.</span>
<a name="l04206"></a>04206 <span class="comment"> * Return a negative value on error, otherwise return the number of bytes used.</span>
<a name="l04207"></a>04207 <span class="comment"> * If no subtitle could be decompressed, got_sub_ptr is zero.</span>
<a name="l04208"></a>04208 <span class="comment"> * Otherwise, the subtitle is stored in *sub.</span>
<a name="l04209"></a>04209 <span class="comment"> * Note that CODEC_CAP_DR1 is not available for subtitle codecs. This is for</span>
<a name="l04210"></a>04210 <span class="comment"> * simplicity, because the performance difference is expect to be negligible</span>
<a name="l04211"></a>04211 <span class="comment"> * and reusing a get_buffer written for video codecs would probably perform badly</span>
<a name="l04212"></a>04212 <span class="comment"> * due to a potentially very different allocation pattern.</span>
<a name="l04213"></a>04213 <span class="comment"> *</span>
<a name="l04214"></a>04214 <span class="comment"> * Some decoders (those marked with CODEC_CAP_DELAY) have a delay between input</span>
<a name="l04215"></a>04215 <span class="comment"> * and output. This means that for some packets they will not immediately</span>
<a name="l04216"></a>04216 <span class="comment"> * produce decoded output and need to be flushed at the end of decoding to get</span>
<a name="l04217"></a>04217 <span class="comment"> * all the decoded data. Flushing is done by calling this function with packets</span>
<a name="l04218"></a>04218 <span class="comment"> * with avpkt->data set to NULL and avpkt->size set to 0 until it stops</span>
<a name="l04219"></a>04219 <span class="comment"> * returning subtitles. It is safe to flush even those decoders that are not</span>
<a name="l04220"></a>04220 <span class="comment"> * marked with CODEC_CAP_DELAY, then no subtitles will be returned.</span>
<a name="l04221"></a>04221 <span class="comment"> *</span>
<a name="l04222"></a>04222 <span class="comment"> * @note The AVCodecContext MUST have been opened with @ref avcodec_open2()</span>
<a name="l04223"></a>04223 <span class="comment"> * before packets may be fed to the decoder.</span>
<a name="l04224"></a>04224 <span class="comment"> *</span>
<a name="l04225"></a>04225 <span class="comment"> * @param avctx the codec context</span>
<a name="l04226"></a>04226 <span class="comment"> * @param[out] sub The Preallocated AVSubtitle in which the decoded subtitle will be stored,</span>
<a name="l04227"></a>04227 <span class="comment"> * must be freed with avsubtitle_free if *got_sub_ptr is set.</span>
<a name="l04228"></a>04228 <span class="comment"> * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero.</span>
<a name="l04229"></a>04229 <span class="comment"> * @param[in] avpkt The input AVPacket containing the input buffer.</span>
<a name="l04230"></a>04230 <span class="comment"> */</span>
<a name="l04231"></a>04231 <span class="keywordtype">int</span> <a class="code" href="group__lavc__decoding.html#ga47db1b7f294b9f92684401b9c66a7c4b" title="Decode a subtitle message.">avcodec_decode_subtitle2</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <a class="code" href="structAVSubtitle.html">AVSubtitle</a> *sub,
<a name="l04232"></a>04232 <span class="keywordtype">int</span> *got_sub_ptr,
<a name="l04233"></a>04233 <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *avpkt);
<a name="l04234"></a>04234 <span class="comment"></span>
<a name="l04235"></a>04235 <span class="comment">/**</span>
<a name="l04236"></a>04236 <span class="comment"> * @defgroup lavc_parsing Frame parsing</span>
<a name="l04237"></a>04237 <span class="comment"> * @{</span>
<a name="l04238"></a>04238 <span class="comment"> */</span>
<a name="l04239"></a><a class="code" href="group__lavc__parsing.html#gaad2e1cb6faa858b3558c5182d3ec56aa">04239</a>
<a name="l04240"></a><a class="code" href="group__lavc__parsing.html#ggaad2e1cb6faa858b3558c5182d3ec56aaa88e5d6e12b558d4d015fa2b3b043cb91">04240</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__parsing.html#gaad2e1cb6faa858b3558c5182d3ec56aa">AVPictureStructure</a> {
<a name="l04241"></a><a class="code" href="group__lavc__parsing.html#ggaad2e1cb6faa858b3558c5182d3ec56aaa86a376b542e532a5f2be40b56a79f161">04241</a> <a class="code" href="group__lavc__parsing.html#ggaad2e1cb6faa858b3558c5182d3ec56aaa88e5d6e12b558d4d015fa2b3b043cb91">AV_PICTURE_STRUCTURE_UNKNOWN</a>, <span class="comment">//< unknown</span>
<a name="l04242"></a><a class="code" href="group__lavc__parsing.html#ggaad2e1cb6faa858b3558c5182d3ec56aaa6d82ada133fd9cff3e9577a2134dba5b">04242</a> <a class="code" href="group__lavc__parsing.html#ggaad2e1cb6faa858b3558c5182d3ec56aaa86a376b542e532a5f2be40b56a79f161">AV_PICTURE_STRUCTURE_TOP_FIELD</a>, <span class="comment">//< coded as top field</span>
<a name="l04243"></a><a class="code" href="group__lavc__parsing.html#ggaad2e1cb6faa858b3558c5182d3ec56aaa1b90bcaf885c0721b70702a14fec481c">04243</a> <a class="code" href="group__lavc__parsing.html#ggaad2e1cb6faa858b3558c5182d3ec56aaa6d82ada133fd9cff3e9577a2134dba5b">AV_PICTURE_STRUCTURE_BOTTOM_FIELD</a>, <span class="comment">//< coded as bottom field</span>
<a name="l04244"></a>04244 <a class="code" href="group__lavc__parsing.html#ggaad2e1cb6faa858b3558c5182d3ec56aaa1b90bcaf885c0721b70702a14fec481c">AV_PICTURE_STRUCTURE_FRAME</a>, <span class="comment">//< coded as frame</span>
<a name="l04245"></a>04245 };
<a name="l04246"></a><a class="code" href="structAVCodecParserContext.html">04246</a>
<a name="l04247"></a><a class="code" href="structAVCodecParserContext.html#a50c37cbfe40edf7edb0fdf3644124eb8">04247</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> {
<a name="l04248"></a><a class="code" href="structAVCodecParserContext.html#a540286a805755b5b1f9d213f9f1d7109">04248</a> <span class="keywordtype">void</span> *<a class="code" href="structAVCodecParserContext.html#a50c37cbfe40edf7edb0fdf3644124eb8">priv_data</a>;
<a name="l04249"></a><a class="code" href="structAVCodecParserContext.html#ac3fc3d38b1f4e864535a9011ac2526e3">04249</a> <span class="keyword">struct </span><a class="code" href="structAVCodecParser.html">AVCodecParser</a> *<a class="code" href="structAVCodecParserContext.html#a540286a805755b5b1f9d213f9f1d7109">parser</a>;
<a name="l04250"></a><a class="code" href="structAVCodecParserContext.html#a03bee6c789b4ad1b8df27afd0658b0b1">04250</a> int64_t <a class="code" href="structAVCodecParserContext.html#ac3fc3d38b1f4e864535a9011ac2526e3">frame_offset</a>; <span class="comment">/* offset of the current frame */</span>
<a name="l04251"></a>04251 int64_t <a class="code" href="structAVCodecParserContext.html#a03bee6c789b4ad1b8df27afd0658b0b1">cur_offset</a>; <span class="comment">/* current offset</span>
<a name="l04252"></a><a class="code" href="structAVCodecParserContext.html#ab4eda26dc96f26d2bb71b9a9c7d9a50c">04252</a> <span class="comment"> (incremented by each av_parser_parse()) */</span>
<a name="l04253"></a>04253 int64_t <a class="code" href="structAVCodecParserContext.html#ab4eda26dc96f26d2bb71b9a9c7d9a50c">next_frame_offset</a>; <span class="comment">/* offset of the next frame */</span>
<a name="l04254"></a><a class="code" href="structAVCodecParserContext.html#a41702bcd99e8aeab875634fb44bfd741">04254</a> <span class="comment">/* video info */</span>
<a name="l04255"></a>04255 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a41702bcd99e8aeab875634fb44bfd741">pict_type</a>; <span class="comment">/* XXX: Put it back in AVCodecContext. */</span><span class="comment"></span>
<a name="l04256"></a>04256 <span class="comment"> /**</span>
<a name="l04257"></a>04257 <span class="comment"> * This field is used for proper frame duration computation in lavf.</span>
<a name="l04258"></a>04258 <span class="comment"> * It signals, how much longer the frame duration of the current frame</span>
<a name="l04259"></a>04259 <span class="comment"> * is compared to normal frame duration.</span>
<a name="l04260"></a>04260 <span class="comment"> *</span>
<a name="l04261"></a>04261 <span class="comment"> * frame_duration = (1 + repeat_pict) * time_base</span>
<a name="l04262"></a>04262 <span class="comment"> *</span>
<a name="l04263"></a>04263 <span class="comment"> * It is used by codecs like H.264 to display telecined material.</span>
<a name="l04264"></a><a class="code" href="structAVCodecParserContext.html#a813780022f0a6abd1b7ab075264ffc3f">04264</a> <span class="comment"> */</span>
<a name="l04265"></a><a class="code" href="structAVCodecParserContext.html#a7e0b385e4ec6765ab0ae0db11565dd1d">04265</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a813780022f0a6abd1b7ab075264ffc3f" title="This field is used for proper frame duration computation in lavf.">repeat_pict</a>; <span class="comment">/* XXX: Put it back in AVCodecContext. */</span>
<a name="l04266"></a><a class="code" href="structAVCodecParserContext.html#ae3146f05127d9d4ba5a140a869bdab35">04266</a> int64_t <a class="code" href="structAVCodecParserContext.html#a7e0b385e4ec6765ab0ae0db11565dd1d">pts</a>; <span class="comment">/* pts of the current frame */</span>
<a name="l04267"></a>04267 int64_t <a class="code" href="structAVCodecParserContext.html#ae3146f05127d9d4ba5a140a869bdab35">dts</a>; <span class="comment">/* dts of the current frame */</span>
<a name="l04268"></a>04268
<a name="l04269"></a><a class="code" href="structAVCodecParserContext.html#ae89a7517e6ae437a3658424e748ed980">04269</a> <span class="comment">/* private data */</span>
<a name="l04270"></a><a class="code" href="structAVCodecParserContext.html#a6f05a770622ba8c068d37752fec72eca">04270</a> int64_t <a class="code" href="structAVCodecParserContext.html#ae89a7517e6ae437a3658424e748ed980">last_pts</a>;
<a name="l04271"></a><a class="code" href="structAVCodecParserContext.html#af4800c3024585bd29852ab15d11588d6">04271</a> int64_t <a class="code" href="structAVCodecParserContext.html#a6f05a770622ba8c068d37752fec72eca">last_dts</a>;
<a name="l04272"></a>04272 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#af4800c3024585bd29852ab15d11588d6">fetch_timestamp</a>;
<a name="l04273"></a><a class="code" href="libavcodec_2avcodec_8h.html#ab16338725f6f17d4acce3cc80b210f01">04273</a>
<a name="l04274"></a><a class="code" href="structAVCodecParserContext.html#ac4e6f9c9bd604bd9ff4d7a5035381557">04274</a> <span class="preprocessor">#define AV_PARSER_PTS_NB 4</span>
<a name="l04275"></a><a class="code" href="structAVCodecParserContext.html#abe8a632fc75a7b0a614175552b45f85b">04275</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#ac4e6f9c9bd604bd9ff4d7a5035381557">cur_frame_start_index</a>;
<a name="l04276"></a><a class="code" href="structAVCodecParserContext.html#ab9dc35523fa27b36052b5ab984189ca2">04276</a> int64_t <a class="code" href="structAVCodecParserContext.html#abe8a632fc75a7b0a614175552b45f85b">cur_frame_offset</a>[<a class="code" href="libavcodec_2avcodec_8h.html#ab16338725f6f17d4acce3cc80b210f01">AV_PARSER_PTS_NB</a>];
<a name="l04277"></a><a class="code" href="structAVCodecParserContext.html#a952b4e5e0f5422fb61c8a7bf3dd06afb">04277</a> int64_t <a class="code" href="structAVCodecParserContext.html#ab9dc35523fa27b36052b5ab984189ca2">cur_frame_pts</a>[<a class="code" href="libavcodec_2avcodec_8h.html#ab16338725f6f17d4acce3cc80b210f01">AV_PARSER_PTS_NB</a>];
<a name="l04278"></a>04278 int64_t <a class="code" href="structAVCodecParserContext.html#a952b4e5e0f5422fb61c8a7bf3dd06afb">cur_frame_dts</a>[<a class="code" href="libavcodec_2avcodec_8h.html#ab16338725f6f17d4acce3cc80b210f01">AV_PARSER_PTS_NB</a>];
<a name="l04279"></a><a class="code" href="structAVCodecParserContext.html#ab6cc0e73ffbec72c438413c6c6a4e326">04279</a>
<a name="l04280"></a><a class="code" href="libavcodec_2avcodec_8h.html#a700fb89fb8a00d075c8b7f3375784b90">04280</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#ab6cc0e73ffbec72c438413c6c6a4e326">flags</a>;
<a name="l04281"></a><a class="code" href="libavcodec_2avcodec_8h.html#a2e1aef8ac038e6cdecbb89bc922d3096">04281</a> <span class="preprocessor">#define PARSER_FLAG_COMPLETE_FRAMES 0x0001</span>
<a name="l04282"></a>04282 <span class="preprocessor"></span><span class="preprocessor">#define PARSER_FLAG_ONCE 0x0002</span>
<a name="l04283"></a><a class="code" href="libavcodec_2avcodec_8h.html#aa3b2f6a01b6cec272ffead61fd61037e">04283</a> <span class="preprocessor"></span><span class="comment">/// Set if the parser has a valid file offset</span>
<a name="l04284"></a><a class="code" href="libavcodec_2avcodec_8h.html#a0caacc93560ac7a69347a5e9c629a6d9">04284</a> <span class="comment"></span><span class="preprocessor">#define PARSER_FLAG_FETCHED_OFFSET 0x0004</span>
<a name="l04285"></a>04285 <span class="preprocessor"></span><span class="preprocessor">#define PARSER_FLAG_USE_CODEC_TS 0x1000</span>
<a name="l04286"></a><a class="code" href="structAVCodecParserContext.html#af22fba8f2937d73db0ab5c9f9e985916">04286</a> <span class="preprocessor"></span>
<a name="l04287"></a><a class="code" href="structAVCodecParserContext.html#a0bcb2d2925118607396a86cddf5d2add">04287</a> int64_t <a class="code" href="structAVCodecParserContext.html#af22fba8f2937d73db0ab5c9f9e985916" title="byte offset from starting packet start">offset</a>; <span class="comment">///< byte offset from starting packet start</span>
<a name="l04288"></a>04288 <span class="comment"></span> int64_t <a class="code" href="structAVCodecParserContext.html#a0bcb2d2925118607396a86cddf5d2add">cur_frame_end</a>[<a class="code" href="libavcodec_2avcodec_8h.html#ab16338725f6f17d4acce3cc80b210f01">AV_PARSER_PTS_NB</a>];
<a name="l04289"></a>04289 <span class="comment"></span>
<a name="l04290"></a>04290 <span class="comment"> /**</span>
<a name="l04291"></a>04291 <span class="comment"> * Set by parser to 1 for key frames and 0 for non-key frames.</span>
<a name="l04292"></a>04292 <span class="comment"> * It is initialized to -1, so if the parser doesn't set this flag,</span>
<a name="l04293"></a>04293 <span class="comment"> * old-style fallback using AV_PICTURE_TYPE_I picture type as key frames</span>
<a name="l04294"></a>04294 <span class="comment"> * will be used.</span>
<a name="l04295"></a><a class="code" href="structAVCodecParserContext.html#ac115e048335e4a7f1d85541cebcf2013">04295</a> <span class="comment"> */</span>
<a name="l04296"></a>04296 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#ac115e048335e4a7f1d85541cebcf2013" title="Set by parser to 1 for key frames and 0 for non-key frames.">key_frame</a>;
<a name="l04297"></a>04297 <span class="comment"></span>
<a name="l04298"></a>04298 <span class="comment"> /**</span>
<a name="l04299"></a>04299 <span class="comment"> * Time difference in stream time base units from the pts of this</span>
<a name="l04300"></a>04300 <span class="comment"> * packet to the point at which the output from the decoder has converged</span>
<a name="l04301"></a>04301 <span class="comment"> * independent from the availability of previous frames. That is, the</span>
<a name="l04302"></a>04302 <span class="comment"> * frames are virtually identical no matter if decoding started from</span>
<a name="l04303"></a>04303 <span class="comment"> * the very first frame or from this keyframe.</span>
<a name="l04304"></a>04304 <span class="comment"> * Is AV_NOPTS_VALUE if unknown.</span>
<a name="l04305"></a>04305 <span class="comment"> * This field is not the display duration of the current frame.</span>
<a name="l04306"></a>04306 <span class="comment"> * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY</span>
<a name="l04307"></a>04307 <span class="comment"> * set.</span>
<a name="l04308"></a>04308 <span class="comment"> *</span>
<a name="l04309"></a>04309 <span class="comment"> * The purpose of this field is to allow seeking in streams that have no</span>
<a name="l04310"></a>04310 <span class="comment"> * keyframes in the conventional sense. It corresponds to the</span>
<a name="l04311"></a>04311 <span class="comment"> * recovery point SEI in H.264 and match_time_delta in NUT. It is also</span>
<a name="l04312"></a>04312 <span class="comment"> * essential for some types of subtitle streams to ensure that all</span>
<a name="l04313"></a>04313 <span class="comment"> * subtitles are correctly displayed after seeking.</span>
<a name="l04314"></a><a class="code" href="structAVCodecParserContext.html#a720d361a167efcd43612fcf6ec57a2af">04314</a> <span class="comment"> */</span>
<a name="l04315"></a>04315 int64_t <a class="code" href="structAVCodecParserContext.html#a720d361a167efcd43612fcf6ec57a2af" title="Time difference in stream time base units from the pts of this packet to the point at which the outpu...">convergence_duration</a>;
<a name="l04316"></a>04316
<a name="l04317"></a>04317 <span class="comment">// Timestamp generation support:</span><span class="comment"></span>
<a name="l04318"></a>04318 <span class="comment"> /**</span>
<a name="l04319"></a>04319 <span class="comment"> * Synchronization point for start of timestamp generation.</span>
<a name="l04320"></a>04320 <span class="comment"> *</span>
<a name="l04321"></a>04321 <span class="comment"> * Set to >0 for sync point, 0 for no sync point and <0 for undefined</span>
<a name="l04322"></a>04322 <span class="comment"> * (default).</span>
<a name="l04323"></a>04323 <span class="comment"> *</span>
<a name="l04324"></a>04324 <span class="comment"> * For example, this corresponds to presence of H.264 buffering period</span>
<a name="l04325"></a>04325 <span class="comment"> * SEI message.</span>
<a name="l04326"></a><a class="code" href="structAVCodecParserContext.html#af966b95c5e701aacc4feffd678d4e4ba">04326</a> <span class="comment"> */</span>
<a name="l04327"></a>04327 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#af966b95c5e701aacc4feffd678d4e4ba" title="Synchronization point for start of timestamp generation.">dts_sync_point</a>;
<a name="l04328"></a>04328 <span class="comment"></span>
<a name="l04329"></a>04329 <span class="comment"> /**</span>
<a name="l04330"></a>04330 <span class="comment"> * Offset of the current timestamp against last timestamp sync point in</span>
<a name="l04331"></a>04331 <span class="comment"> * units of AVCodecContext.time_base.</span>
<a name="l04332"></a>04332 <span class="comment"> *</span>
<a name="l04333"></a>04333 <span class="comment"> * Set to INT_MIN when dts_sync_point unused. Otherwise, it must</span>
<a name="l04334"></a>04334 <span class="comment"> * contain a valid timestamp offset.</span>
<a name="l04335"></a>04335 <span class="comment"> *</span>
<a name="l04336"></a>04336 <span class="comment"> * Note that the timestamp of sync point has usually a nonzero</span>
<a name="l04337"></a>04337 <span class="comment"> * dts_ref_dts_delta, which refers to the previous sync point. Offset of</span>
<a name="l04338"></a>04338 <span class="comment"> * the next frame after timestamp sync point will be usually 1.</span>
<a name="l04339"></a>04339 <span class="comment"> *</span>
<a name="l04340"></a>04340 <span class="comment"> * For example, this corresponds to H.264 cpb_removal_delay.</span>
<a name="l04341"></a><a class="code" href="structAVCodecParserContext.html#a0938e2e1fb7543727fded955ccce88ca">04341</a> <span class="comment"> */</span>
<a name="l04342"></a>04342 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a0938e2e1fb7543727fded955ccce88ca" title="Offset of the current timestamp against last timestamp sync point in units of AVCodecContext.time_base.">dts_ref_dts_delta</a>;
<a name="l04343"></a>04343 <span class="comment"></span>
<a name="l04344"></a>04344 <span class="comment"> /**</span>
<a name="l04345"></a>04345 <span class="comment"> * Presentation delay of current frame in units of AVCodecContext.time_base.</span>
<a name="l04346"></a>04346 <span class="comment"> *</span>
<a name="l04347"></a>04347 <span class="comment"> * Set to INT_MIN when dts_sync_point unused. Otherwise, it must</span>
<a name="l04348"></a>04348 <span class="comment"> * contain valid non-negative timestamp delta (presentation time of a frame</span>
<a name="l04349"></a>04349 <span class="comment"> * must not lie in the past).</span>
<a name="l04350"></a>04350 <span class="comment"> *</span>
<a name="l04351"></a>04351 <span class="comment"> * This delay represents the difference between decoding and presentation</span>
<a name="l04352"></a>04352 <span class="comment"> * time of the frame.</span>
<a name="l04353"></a>04353 <span class="comment"> *</span>
<a name="l04354"></a>04354 <span class="comment"> * For example, this corresponds to H.264 dpb_output_delay.</span>
<a name="l04355"></a><a class="code" href="structAVCodecParserContext.html#a9d513dbc8c575da415f73a7e57db250a">04355</a> <span class="comment"> */</span>
<a name="l04356"></a>04356 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a9d513dbc8c575da415f73a7e57db250a" title="Presentation delay of current frame in units of AVCodecContext.time_base.">pts_dts_delta</a>;
<a name="l04357"></a>04357 <span class="comment"></span>
<a name="l04358"></a>04358 <span class="comment"> /**</span>
<a name="l04359"></a>04359 <span class="comment"> * Position of the packet in file.</span>
<a name="l04360"></a>04360 <span class="comment"> *</span>
<a name="l04361"></a>04361 <span class="comment"> * Analogous to cur_frame_pts/dts</span>
<a name="l04362"></a><a class="code" href="structAVCodecParserContext.html#a9587a98646942a36bc1f676e6276d331">04362</a> <span class="comment"> */</span>
<a name="l04363"></a>04363 int64_t <a class="code" href="structAVCodecParserContext.html#a9587a98646942a36bc1f676e6276d331" title="Position of the packet in file.">cur_frame_pos</a>[<a class="code" href="libavcodec_2avcodec_8h.html#ab16338725f6f17d4acce3cc80b210f01">AV_PARSER_PTS_NB</a>];
<a name="l04364"></a>04364 <span class="comment"></span>
<a name="l04365"></a>04365 <span class="comment"> /**</span>
<a name="l04366"></a>04366 <span class="comment"> * Byte position of currently parsed frame in stream.</span>
<a name="l04367"></a><a class="code" href="structAVCodecParserContext.html#a6cb1cf94ba19b6df4aa2c3c0a43beac7">04367</a> <span class="comment"> */</span>
<a name="l04368"></a>04368 int64_t <a class="code" href="structAVCodecParserContext.html#a6cb1cf94ba19b6df4aa2c3c0a43beac7" title="Byte position of currently parsed frame in stream.">pos</a>;
<a name="l04369"></a>04369 <span class="comment"></span>
<a name="l04370"></a>04370 <span class="comment"> /**</span>
<a name="l04371"></a>04371 <span class="comment"> * Previous frame byte position.</span>
<a name="l04372"></a><a class="code" href="structAVCodecParserContext.html#ad35a0f678d317123f179f3c73d63271d">04372</a> <span class="comment"> */</span>
<a name="l04373"></a>04373 int64_t <a class="code" href="structAVCodecParserContext.html#ad35a0f678d317123f179f3c73d63271d" title="Previous frame byte position.">last_pos</a>;
<a name="l04374"></a>04374 <span class="comment"></span>
<a name="l04375"></a>04375 <span class="comment"> /**</span>
<a name="l04376"></a>04376 <span class="comment"> * Duration of the current frame.</span>
<a name="l04377"></a>04377 <span class="comment"> * For audio, this is in units of 1 / AVCodecContext.sample_rate.</span>
<a name="l04378"></a>04378 <span class="comment"> * For all other types, this is in units of AVCodecContext.time_base.</span>
<a name="l04379"></a><a class="code" href="structAVCodecParserContext.html#a051e3628c43876e42cfcff99ea0fc44c">04379</a> <span class="comment"> */</span>
<a name="l04380"></a>04380 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a051e3628c43876e42cfcff99ea0fc44c" title="Duration of the current frame.">duration</a>;
<a name="l04381"></a><a class="code" href="structAVCodecParserContext.html#a4c43b9d404eb4a07aab63c98b0093941">04381</a>
<a name="l04382"></a>04382 <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#ga957ef25581a6b3c98589817b1cbed02c">AVFieldOrder</a> <a class="code" href="structAVCodecParserContext.html#a4c43b9d404eb4a07aab63c98b0093941">field_order</a>;
<a name="l04383"></a>04383 <span class="comment"></span>
<a name="l04384"></a>04384 <span class="comment"> /**</span>
<a name="l04385"></a>04385 <span class="comment"> * Indicate whether a picture is coded as a frame, top field or bottom field.</span>
<a name="l04386"></a>04386 <span class="comment"> *</span>
<a name="l04387"></a>04387 <span class="comment"> * For example, H.264 field_pic_flag equal to 0 corresponds to</span>
<a name="l04388"></a>04388 <span class="comment"> * AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag</span>
<a name="l04389"></a>04389 <span class="comment"> * equal to 1 and bottom_field_flag equal to 0 corresponds to</span>
<a name="l04390"></a>04390 <span class="comment"> * AV_PICTURE_STRUCTURE_TOP_FIELD.</span>
<a name="l04391"></a><a class="code" href="structAVCodecParserContext.html#a8dd687b78f23d6f2160b853b6d1dee08">04391</a> <span class="comment"> */</span>
<a name="l04392"></a>04392 <span class="keyword">enum</span> <a class="code" href="group__lavc__parsing.html#gaad2e1cb6faa858b3558c5182d3ec56aa">AVPictureStructure</a> <a class="code" href="structAVCodecParserContext.html#a8dd687b78f23d6f2160b853b6d1dee08" title="Indicate whether a picture is coded as a frame, top field or bottom field.">picture_structure</a>;
<a name="l04393"></a>04393 <span class="comment"></span>
<a name="l04394"></a>04394 <span class="comment"> /**</span>
<a name="l04395"></a>04395 <span class="comment"> * Picture number incremented in presentation or output order.</span>
<a name="l04396"></a>04396 <span class="comment"> * This field may be reinitialized at the first picture of a new sequence.</span>
<a name="l04397"></a>04397 <span class="comment"> *</span>
<a name="l04398"></a>04398 <span class="comment"> * For example, this corresponds to H.264 PicOrderCnt.</span>
<a name="l04399"></a><a class="code" href="structAVCodecParserContext.html#a9d1e1c94451f877cbfd55e8cb3367f18">04399</a> <span class="comment"> */</span>
<a name="l04400"></a>04400 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a9d1e1c94451f877cbfd55e8cb3367f18" title="Picture number incremented in presentation or output order.">output_picture_number</a>;
<a name="l04401"></a>04401 <span class="comment"></span>
<a name="l04402"></a>04402 <span class="comment"> /**</span>
<a name="l04403"></a>04403 <span class="comment"> * Dimensions of the decoded video intended for presentation.</span>
<a name="l04404"></a><a class="code" href="structAVCodecParserContext.html#a419a9c8156d65870b8ba6bc037f112a2">04404</a> <span class="comment"> */</span>
<a name="l04405"></a><a class="code" href="structAVCodecParserContext.html#a0e64b20802c2a2fbaa998ba7ee5ecd2e">04405</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a419a9c8156d65870b8ba6bc037f112a2" title="Dimensions of the decoded video intended for presentation.">width</a>;
<a name="l04406"></a>04406 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a0e64b20802c2a2fbaa998ba7ee5ecd2e">height</a>;
<a name="l04407"></a>04407 <span class="comment"></span>
<a name="l04408"></a>04408 <span class="comment"> /**</span>
<a name="l04409"></a>04409 <span class="comment"> * Dimensions of the coded video.</span>
<a name="l04410"></a><a class="code" href="structAVCodecParserContext.html#ada69849c61450b19d1056b0c739299fe">04410</a> <span class="comment"> */</span>
<a name="l04411"></a><a class="code" href="structAVCodecParserContext.html#ab667ba2d0988ee3bb25497b0176f261a">04411</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#ada69849c61450b19d1056b0c739299fe" title="Dimensions of the coded video.">coded_width</a>;
<a name="l04412"></a>04412 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#ab667ba2d0988ee3bb25497b0176f261a">coded_height</a>;
<a name="l04413"></a>04413 <span class="comment"></span>
<a name="l04414"></a>04414 <span class="comment"> /**</span>
<a name="l04415"></a>04415 <span class="comment"> * The format of the coded data, corresponds to enum AVPixelFormat for video</span>
<a name="l04416"></a>04416 <span class="comment"> * and for enum AVSampleFormat for audio.</span>
<a name="l04417"></a>04417 <span class="comment"> *</span>
<a name="l04418"></a>04418 <span class="comment"> * Note that a decoder can have considerable freedom in how exactly it</span>
<a name="l04419"></a>04419 <span class="comment"> * decodes the data, so the format reported here might be different from the</span>
<a name="l04420"></a>04420 <span class="comment"> * one returned by a decoder.</span>
<a name="l04421"></a><a class="code" href="structAVCodecParserContext.html#a7ff27ba517af207df14a781699f7ca7f">04421</a> <span class="comment"> */</span>
<a name="l04422"></a>04422 <span class="keywordtype">int</span> <a class="code" href="structAVCodecParserContext.html#a7ff27ba517af207df14a781699f7ca7f" title="The format of the coded data, corresponds to enum AVPixelFormat for video and for enum AVSampleFormat...">format</a>;
<a name="l04423"></a>04423 } <a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a>;
<a name="l04424"></a><a class="code" href="structAVCodecParser.html">04424</a>
<a name="l04425"></a><a class="code" href="structAVCodecParser.html#a283585b212b3fe90f5872119d7c604b2">04425</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVCodecParser.html">AVCodecParser</a> {
<a name="l04426"></a><a class="code" href="structAVCodecParser.html#a33c342399b903fe66ee3560003346ce1">04426</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecParser.html#a283585b212b3fe90f5872119d7c604b2">codec_ids</a>[5]; <span class="comment">/* several codec IDs are permitted */</span>
<a name="l04427"></a><a class="code" href="structAVCodecParser.html#a2af66c48f061a4daf63941449e8bfb1b">04427</a> <span class="keywordtype">int</span> <a class="code" href="structAVCodecParser.html#a33c342399b903fe66ee3560003346ce1">priv_data_size</a>;
<a name="l04428"></a>04428 int (*<a class="code" href="structAVCodecParser.html#a2af66c48f061a4daf63941449e8bfb1b">parser_init</a>)(<a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> *s);
<a name="l04429"></a>04429 <span class="comment">/* This callback never returns an error, a negative value means that</span>
<a name="l04430"></a><a class="code" href="structAVCodecParser.html#a388eafde274e902b4b2e5ab25b733f32">04430</a> <span class="comment"> * the frame start was in a previous packet. */</span>
<a name="l04431"></a>04431 int (*<a class="code" href="structAVCodecParser.html#a388eafde274e902b4b2e5ab25b733f32">parser_parse</a>)(<a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> *s,
<a name="l04432"></a>04432 <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx,
<a name="l04433"></a>04433 <span class="keyword">const</span> uint8_t **poutbuf, <span class="keywordtype">int</span> *poutbuf_size,
<a name="l04434"></a><a class="code" href="structAVCodecParser.html#a530a26f3c948fd981d9d5eef530b5a8b">04434</a> <span class="keyword">const</span> uint8_t *buf, <span class="keywordtype">int</span> buf_size);
<a name="l04435"></a><a class="code" href="structAVCodecParser.html#ae6a6ab67c1a6cc36ff36eb0d71cf3801">04435</a> void (*<a class="code" href="structAVCodecParser.html#a530a26f3c948fd981d9d5eef530b5a8b">parser_close</a>)(<a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> *s);
<a name="l04436"></a><a class="code" href="structAVCodecParser.html#adf3b49847ee71f00868c5b32a214dfa3">04436</a> int (*<a class="code" href="structAVCodecParser.html#ae6a6ab67c1a6cc36ff36eb0d71cf3801">split</a>)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keyword">const</span> uint8_t *buf, <span class="keywordtype">int</span> buf_size);
<a name="l04437"></a>04437 <span class="keyword">struct </span><a class="code" href="structAVCodecParser.html">AVCodecParser</a> *<a class="code" href="structAVCodecParser.html#adf3b49847ee71f00868c5b32a214dfa3">next</a>;
<a name="l04438"></a>04438 } <a class="code" href="structAVCodecParser.html">AVCodecParser</a>;
<a name="l04439"></a>04439
<a name="l04440"></a>04440 <a class="code" href="structAVCodecParser.html">AVCodecParser</a> *<a class="code" href="group__lavc__parsing.html#ga64772040a370fa3a7d67ec46d73566c8">av_parser_next</a>(<span class="keyword">const</span> <a class="code" href="structAVCodecParser.html">AVCodecParser</a> *c);
<a name="l04441"></a>04441
<a name="l04442"></a>04442 <span class="keywordtype">void</span> <a class="code" href="group__lavc__parsing.html#ga8258374e31b0afe2d6f7ecf9a34c4810">av_register_codec_parser</a>(<a class="code" href="structAVCodecParser.html">AVCodecParser</a> *parser);
<a name="l04443"></a>04443 <a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> *<a class="code" href="group__lavc__parsing.html#ga0dd9af605377fcbb49fffd982672d377">av_parser_init</a>(<span class="keywordtype">int</span> codec_id);
<a name="l04444"></a>04444 <span class="comment"></span>
<a name="l04445"></a>04445 <span class="comment">/**</span>
<a name="l04446"></a>04446 <span class="comment"> * Parse a packet.</span>
<a name="l04447"></a>04447 <span class="comment"> *</span>
<a name="l04448"></a>04448 <span class="comment"> * @param s parser context.</span>
<a name="l04449"></a>04449 <span class="comment"> * @param avctx codec context.</span>
<a name="l04450"></a>04450 <span class="comment"> * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished.</span>
<a name="l04451"></a>04451 <span class="comment"> * @param poutbuf_size set to size of parsed buffer or zero if not yet finished.</span>
<a name="l04452"></a>04452 <span class="comment"> * @param buf input buffer.</span>
<a name="l04453"></a>04453 <span class="comment"> * @param buf_size input length, to signal EOF, this should be 0 (so that the last frame can be output).</span>
<a name="l04454"></a>04454 <span class="comment"> * @param pts input presentation timestamp.</span>
<a name="l04455"></a>04455 <span class="comment"> * @param dts input decoding timestamp.</span>
<a name="l04456"></a>04456 <span class="comment"> * @param pos input byte position in stream.</span>
<a name="l04457"></a>04457 <span class="comment"> * @return the number of bytes of the input bitstream used.</span>
<a name="l04458"></a>04458 <span class="comment"> *</span>
<a name="l04459"></a>04459 <span class="comment"> * Example:</span>
<a name="l04460"></a>04460 <span class="comment"> * @code</span>
<a name="l04461"></a>04461 <span class="comment"> * while(in_len){</span>
<a name="l04462"></a>04462 <span class="comment"> * len = av_parser_parse2(myparser, AVCodecContext, &data, &size,</span>
<a name="l04463"></a>04463 <span class="comment"> * in_data, in_len,</span>
<a name="l04464"></a>04464 <span class="comment"> * pts, dts, pos);</span>
<a name="l04465"></a>04465 <span class="comment"> * in_data += len;</span>
<a name="l04466"></a>04466 <span class="comment"> * in_len -= len;</span>
<a name="l04467"></a>04467 <span class="comment"> *</span>
<a name="l04468"></a>04468 <span class="comment"> * if(size)</span>
<a name="l04469"></a>04469 <span class="comment"> * decode_frame(data, size);</span>
<a name="l04470"></a>04470 <span class="comment"> * }</span>
<a name="l04471"></a>04471 <span class="comment"> * @endcode</span>
<a name="l04472"></a>04472 <span class="comment"> */</span>
<a name="l04473"></a>04473 <span class="keywordtype">int</span> <a class="code" href="group__lavc__parsing.html#ga691ca0258e91f99297e7726f56d8c247" title="Parse a packet.">av_parser_parse2</a>(<a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> *s,
<a name="l04474"></a>04474 <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx,
<a name="l04475"></a>04475 uint8_t **poutbuf, <span class="keywordtype">int</span> *poutbuf_size,
<a name="l04476"></a>04476 <span class="keyword">const</span> uint8_t *buf, <span class="keywordtype">int</span> buf_size,
<a name="l04477"></a>04477 int64_t <a class="code" href="transcode__aac_8c.html#a4fbb704fb96c36a78a36eee010306ce7" title="Global timestamp for the audio frames.">pts</a>, int64_t dts,
<a name="l04478"></a>04478 int64_t pos);
<a name="l04479"></a>04479 <span class="comment"></span>
<a name="l04480"></a>04480 <span class="comment">/**</span>
<a name="l04481"></a>04481 <span class="comment"> * @return 0 if the output buffer is a subset of the input, 1 if it is allocated and must be freed</span>
<a name="l04482"></a>04482 <span class="comment"> * @deprecated use AVBitStreamFilter</span>
<a name="l04483"></a>04483 <span class="comment"> */</span>
<a name="l04484"></a>04484 <span class="keywordtype">int</span> <a class="code" href="group__lavc__parsing.html#ga388e291a22ce1908b932a39c87123756">av_parser_change</a>(<a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> *s,
<a name="l04485"></a>04485 <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx,
<a name="l04486"></a>04486 uint8_t **poutbuf, <span class="keywordtype">int</span> *poutbuf_size,
<a name="l04487"></a>04487 <span class="keyword">const</span> uint8_t *buf, <span class="keywordtype">int</span> buf_size, <span class="keywordtype">int</span> keyframe);
<a name="l04488"></a>04488 <span class="keywordtype">void</span> <a class="code" href="group__lavc__parsing.html#ga325e84c53b8c0dfcb2d933d126f76dd7">av_parser_close</a>(<a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> *s);
<a name="l04489"></a>04489 <span class="comment"></span>
<a name="l04490"></a>04490 <span class="comment">/**</span>
<a name="l04491"></a>04491 <span class="comment"> * @}</span>
<a name="l04492"></a>04492 <span class="comment"> * @}</span>
<a name="l04493"></a>04493 <span class="comment"> */</span>
<a name="l04494"></a>04494 <span class="comment"></span>
<a name="l04495"></a>04495 <span class="comment">/**</span>
<a name="l04496"></a>04496 <span class="comment"> * @addtogroup lavc_encoding</span>
<a name="l04497"></a>04497 <span class="comment"> * @{</span>
<a name="l04498"></a>04498 <span class="comment"> */</span>
<a name="l04499"></a>04499 <span class="comment"></span>
<a name="l04500"></a>04500 <span class="comment">/**</span>
<a name="l04501"></a>04501 <span class="comment"> * Find a registered encoder with a matching codec ID.</span>
<a name="l04502"></a>04502 <span class="comment"> *</span>
<a name="l04503"></a>04503 <span class="comment"> * @param id AVCodecID of the requested encoder</span>
<a name="l04504"></a>04504 <span class="comment"> * @return An encoder if one was found, NULL otherwise.</span>
<a name="l04505"></a>04505 <span class="comment"> */</span>
<a name="l04506"></a>04506 <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *<a class="code" href="group__lavc__encoding.html#ga9f820c481615c3a02d0407bac0bdbf25" title="Find a registered encoder with a matching codec ID.">avcodec_find_encoder</a>(<span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <span class="keywordtype">id</span>);
<a name="l04507"></a>04507 <span class="comment"></span>
<a name="l04508"></a>04508 <span class="comment">/**</span>
<a name="l04509"></a>04509 <span class="comment"> * Find a registered encoder with the specified name.</span>
<a name="l04510"></a>04510 <span class="comment"> *</span>
<a name="l04511"></a>04511 <span class="comment"> * @param name name of the requested encoder</span>
<a name="l04512"></a>04512 <span class="comment"> * @return An encoder if one was found, NULL otherwise.</span>
<a name="l04513"></a>04513 <span class="comment"> */</span>
<a name="l04514"></a>04514 <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *<a class="code" href="group__lavc__encoding.html#gaa614ffc38511c104bdff4a3afa086d37" title="Find a registered encoder with the specified name.">avcodec_find_encoder_by_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name);
<a name="l04515"></a>04515
<a name="l04516"></a>04516 <span class="preprocessor">#if FF_API_OLD_ENCODE_AUDIO</span>
<a name="l04517"></a>04517 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l04518"></a>04518 <span class="comment"> * Encode an audio frame from samples into buf.</span>
<a name="l04519"></a>04519 <span class="comment"> *</span>
<a name="l04520"></a>04520 <span class="comment"> * @deprecated Use avcodec_encode_audio2 instead.</span>
<a name="l04521"></a>04521 <span class="comment"> *</span>
<a name="l04522"></a>04522 <span class="comment"> * @note The output buffer should be at least FF_MIN_BUFFER_SIZE bytes large.</span>
<a name="l04523"></a>04523 <span class="comment"> * However, for codecs with avctx->frame_size equal to 0 (e.g. PCM) the user</span>
<a name="l04524"></a>04524 <span class="comment"> * will know how much space is needed because it depends on the value passed</span>
<a name="l04525"></a>04525 <span class="comment"> * in buf_size as described below. In that case a lower value can be used.</span>
<a name="l04526"></a>04526 <span class="comment"> *</span>
<a name="l04527"></a>04527 <span class="comment"> * @param avctx the codec context</span>
<a name="l04528"></a>04528 <span class="comment"> * @param[out] buf the output buffer</span>
<a name="l04529"></a>04529 <span class="comment"> * @param[in] buf_size the output buffer size</span>
<a name="l04530"></a>04530 <span class="comment"> * @param[in] samples the input buffer containing the samples</span>
<a name="l04531"></a>04531 <span class="comment"> * The number of samples read from this buffer is frame_size*channels,</span>
<a name="l04532"></a>04532 <span class="comment"> * both of which are defined in avctx.</span>
<a name="l04533"></a>04533 <span class="comment"> * For codecs which have avctx->frame_size equal to 0 (e.g. PCM) the number of</span>
<a name="l04534"></a>04534 <span class="comment"> * samples read from samples is equal to:</span>
<a name="l04535"></a>04535 <span class="comment"> * buf_size * 8 / (avctx->channels * av_get_bits_per_sample(avctx->codec_id))</span>
<a name="l04536"></a>04536 <span class="comment"> * This also implies that av_get_bits_per_sample() must not return 0 for these</span>
<a name="l04537"></a>04537 <span class="comment"> * codecs.</span>
<a name="l04538"></a>04538 <span class="comment"> * @return On error a negative value is returned, on success zero or the number</span>
<a name="l04539"></a>04539 <span class="comment"> * of bytes used to encode the data read from the input buffer.</span>
<a name="l04540"></a>04540 <span class="comment"> */</span>
<a name="l04541"></a>04541 <span class="keywordtype">int</span> <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a> <a class="code" href="group__lavc__encoding.html#gaf12a9da0d33f50ff406e03572fab4763" title="Encode an audio frame from samples into buf.">avcodec_encode_audio</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx,
<a name="l04542"></a>04542 uint8_t *buf, <span class="keywordtype">int</span> buf_size,
<a name="l04543"></a>04543 <span class="keyword">const</span> <span class="keywordtype">short</span> *samples);
<a name="l04544"></a>04544 <span class="preprocessor">#endif</span>
<a name="l04545"></a>04545 <span class="preprocessor"></span><span class="comment"></span>
<a name="l04546"></a>04546 <span class="comment">/**</span>
<a name="l04547"></a>04547 <span class="comment"> * Encode a frame of audio.</span>
<a name="l04548"></a>04548 <span class="comment"> *</span>
<a name="l04549"></a>04549 <span class="comment"> * Takes input samples from frame and writes the next output packet, if</span>
<a name="l04550"></a>04550 <span class="comment"> * available, to avpkt. The output packet does not necessarily contain data for</span>
<a name="l04551"></a>04551 <span class="comment"> * the most recent frame, as encoders can delay, split, and combine input frames</span>
<a name="l04552"></a>04552 <span class="comment"> * internally as needed.</span>
<a name="l04553"></a>04553 <span class="comment"> *</span>
<a name="l04554"></a>04554 <span class="comment"> * @param avctx codec context</span>
<a name="l04555"></a>04555 <span class="comment"> * @param avpkt output AVPacket.</span>
<a name="l04556"></a>04556 <span class="comment"> * The user can supply an output buffer by setting</span>
<a name="l04557"></a>04557 <span class="comment"> * avpkt->data and avpkt->size prior to calling the</span>
<a name="l04558"></a>04558 <span class="comment"> * function, but if the size of the user-provided data is not</span>
<a name="l04559"></a>04559 <span class="comment"> * large enough, encoding will fail. If avpkt->data and</span>
<a name="l04560"></a>04560 <span class="comment"> * avpkt->size are set, avpkt->destruct must also be set. All</span>
<a name="l04561"></a>04561 <span class="comment"> * other AVPacket fields will be reset by the encoder using</span>
<a name="l04562"></a>04562 <span class="comment"> * av_init_packet(). If avpkt->data is NULL, the encoder will</span>
<a name="l04563"></a>04563 <span class="comment"> * allocate it. The encoder will set avpkt->size to the size</span>
<a name="l04564"></a>04564 <span class="comment"> * of the output packet.</span>
<a name="l04565"></a>04565 <span class="comment"> *</span>
<a name="l04566"></a>04566 <span class="comment"> * If this function fails or produces no output, avpkt will be</span>
<a name="l04567"></a>04567 <span class="comment"> * freed using av_free_packet() (i.e. avpkt->destruct will be</span>
<a name="l04568"></a>04568 <span class="comment"> * called to free the user supplied buffer).</span>
<a name="l04569"></a>04569 <span class="comment"> * @param[in] frame AVFrame containing the raw audio data to be encoded.</span>
<a name="l04570"></a>04570 <span class="comment"> * May be NULL when flushing an encoder that has the</span>
<a name="l04571"></a>04571 <span class="comment"> * CODEC_CAP_DELAY capability set.</span>
<a name="l04572"></a>04572 <span class="comment"> * If CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame</span>
<a name="l04573"></a>04573 <span class="comment"> * can have any number of samples.</span>
<a name="l04574"></a>04574 <span class="comment"> * If it is not set, frame->nb_samples must be equal to</span>
<a name="l04575"></a>04575 <span class="comment"> * avctx->frame_size for all frames except the last.</span>
<a name="l04576"></a>04576 <span class="comment"> * The final frame may be smaller than avctx->frame_size.</span>
<a name="l04577"></a>04577 <span class="comment"> * @param[out] got_packet_ptr This field is set to 1 by libavcodec if the</span>
<a name="l04578"></a>04578 <span class="comment"> * output packet is non-empty, and to 0 if it is</span>
<a name="l04579"></a>04579 <span class="comment"> * empty. If the function returns an error, the</span>
<a name="l04580"></a>04580 <span class="comment"> * packet can be assumed to be invalid, and the</span>
<a name="l04581"></a>04581 <span class="comment"> * value of got_packet_ptr is undefined and should</span>
<a name="l04582"></a>04582 <span class="comment"> * not be used.</span>
<a name="l04583"></a>04583 <span class="comment"> * @return 0 on success, negative error code on failure</span>
<a name="l04584"></a>04584 <span class="comment"> */</span>
<a name="l04585"></a>04585 <span class="keywordtype">int</span> <a class="code" href="group__lavc__encoding.html#ga93a49fbd0973b216dcb8a8c5dffe1d82" title="Encode a frame of audio.">avcodec_encode_audio2</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *avpkt,
<a name="l04586"></a>04586 <span class="keyword">const</span> <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>, <span class="keywordtype">int</span> *got_packet_ptr);
<a name="l04587"></a>04587
<a name="l04588"></a>04588 <span class="preprocessor">#if FF_API_OLD_ENCODE_VIDEO</span>
<a name="l04589"></a>04589 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l04590"></a>04590 <span class="comment"> * @deprecated use avcodec_encode_video2() instead.</span>
<a name="l04591"></a>04591 <span class="comment"> *</span>
<a name="l04592"></a>04592 <span class="comment"> * Encode a video frame from pict into buf.</span>
<a name="l04593"></a>04593 <span class="comment"> * The input picture should be</span>
<a name="l04594"></a>04594 <span class="comment"> * stored using a specific format, namely avctx.pix_fmt.</span>
<a name="l04595"></a>04595 <span class="comment"> *</span>
<a name="l04596"></a>04596 <span class="comment"> * @param avctx the codec context</span>
<a name="l04597"></a>04597 <span class="comment"> * @param[out] buf the output buffer for the bitstream of encoded frame</span>
<a name="l04598"></a>04598 <span class="comment"> * @param[in] buf_size the size of the output buffer in bytes</span>
<a name="l04599"></a>04599 <span class="comment"> * @param[in] pict the input picture to encode</span>
<a name="l04600"></a>04600 <span class="comment"> * @return On error a negative value is returned, on success zero or the number</span>
<a name="l04601"></a>04601 <span class="comment"> * of bytes used from the output buffer.</span>
<a name="l04602"></a>04602 <span class="comment"> */</span>
<a name="l04603"></a>04603 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04604"></a>04604 <span class="keywordtype">int</span> <a class="code" href="group__lavc__encoding.html#ga22847c21918ee93a4d05f7ffb419f9a9">avcodec_encode_video</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, uint8_t *buf, <span class="keywordtype">int</span> buf_size,
<a name="l04605"></a>04605 <span class="keyword">const</span> <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *pict);
<a name="l04606"></a>04606 <span class="preprocessor">#endif</span>
<a name="l04607"></a>04607 <span class="preprocessor"></span><span class="comment"></span>
<a name="l04608"></a>04608 <span class="comment">/**</span>
<a name="l04609"></a>04609 <span class="comment"> * Encode a frame of video.</span>
<a name="l04610"></a>04610 <span class="comment"> *</span>
<a name="l04611"></a>04611 <span class="comment"> * Takes input raw video data from frame and writes the next output packet, if</span>
<a name="l04612"></a>04612 <span class="comment"> * available, to avpkt. The output packet does not necessarily contain data for</span>
<a name="l04613"></a>04613 <span class="comment"> * the most recent frame, as encoders can delay and reorder input frames</span>
<a name="l04614"></a>04614 <span class="comment"> * internally as needed.</span>
<a name="l04615"></a>04615 <span class="comment"> *</span>
<a name="l04616"></a>04616 <span class="comment"> * @param avctx codec context</span>
<a name="l04617"></a>04617 <span class="comment"> * @param avpkt output AVPacket.</span>
<a name="l04618"></a>04618 <span class="comment"> * The user can supply an output buffer by setting</span>
<a name="l04619"></a>04619 <span class="comment"> * avpkt->data and avpkt->size prior to calling the</span>
<a name="l04620"></a>04620 <span class="comment"> * function, but if the size of the user-provided data is not</span>
<a name="l04621"></a>04621 <span class="comment"> * large enough, encoding will fail. All other AVPacket fields</span>
<a name="l04622"></a>04622 <span class="comment"> * will be reset by the encoder using av_init_packet(). If</span>
<a name="l04623"></a>04623 <span class="comment"> * avpkt->data is NULL, the encoder will allocate it.</span>
<a name="l04624"></a>04624 <span class="comment"> * The encoder will set avpkt->size to the size of the</span>
<a name="l04625"></a>04625 <span class="comment"> * output packet. The returned data (if any) belongs to the</span>
<a name="l04626"></a>04626 <span class="comment"> * caller, he is responsible for freeing it.</span>
<a name="l04627"></a>04627 <span class="comment"> *</span>
<a name="l04628"></a>04628 <span class="comment"> * If this function fails or produces no output, avpkt will be</span>
<a name="l04629"></a>04629 <span class="comment"> * freed using av_free_packet() (i.e. avpkt->destruct will be</span>
<a name="l04630"></a>04630 <span class="comment"> * called to free the user supplied buffer).</span>
<a name="l04631"></a>04631 <span class="comment"> * @param[in] frame AVFrame containing the raw video data to be encoded.</span>
<a name="l04632"></a>04632 <span class="comment"> * May be NULL when flushing an encoder that has the</span>
<a name="l04633"></a>04633 <span class="comment"> * CODEC_CAP_DELAY capability set.</span>
<a name="l04634"></a>04634 <span class="comment"> * @param[out] got_packet_ptr This field is set to 1 by libavcodec if the</span>
<a name="l04635"></a>04635 <span class="comment"> * output packet is non-empty, and to 0 if it is</span>
<a name="l04636"></a>04636 <span class="comment"> * empty. If the function returns an error, the</span>
<a name="l04637"></a>04637 <span class="comment"> * packet can be assumed to be invalid, and the</span>
<a name="l04638"></a>04638 <span class="comment"> * value of got_packet_ptr is undefined and should</span>
<a name="l04639"></a>04639 <span class="comment"> * not be used.</span>
<a name="l04640"></a>04640 <span class="comment"> * @return 0 on success, negative error code on failure</span>
<a name="l04641"></a>04641 <span class="comment"> */</span>
<a name="l04642"></a>04642 <span class="keywordtype">int</span> <a class="code" href="group__lavc__encoding.html#gaa2dc9e9ea2567ebb2801a08153c7306b" title="Encode a frame of video.">avcodec_encode_video2</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <a class="code" href="structAVPacket.html" title="This structure stores compressed data.">AVPacket</a> *avpkt,
<a name="l04643"></a>04643 <span class="keyword">const</span> <a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>, <span class="keywordtype">int</span> *got_packet_ptr);
<a name="l04644"></a>04644
<a name="l04645"></a>04645 <span class="keywordtype">int</span> <a class="code" href="group__lavc__encoding.html#ga37be256d85d78f665df27ad6c8f1d65b">avcodec_encode_subtitle</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, uint8_t *buf, <span class="keywordtype">int</span> buf_size,
<a name="l04646"></a>04646 <span class="keyword">const</span> <a class="code" href="structAVSubtitle.html">AVSubtitle</a> *sub);
<a name="l04647"></a>04647
<a name="l04648"></a>04648 <span class="comment"></span>
<a name="l04649"></a>04649 <span class="comment">/**</span>
<a name="l04650"></a>04650 <span class="comment"> * @}</span>
<a name="l04651"></a>04651 <span class="comment"> */</span>
<a name="l04652"></a>04652
<a name="l04653"></a>04653 <span class="preprocessor">#if FF_API_AVCODEC_RESAMPLE</span>
<a name="l04654"></a>04654 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l04655"></a>04655 <span class="comment"> * @defgroup lavc_resample Audio resampling</span>
<a name="l04656"></a>04656 <span class="comment"> * @ingroup libavc</span>
<a name="l04657"></a>04657 <span class="comment"> * @deprecated use libswresample instead</span>
<a name="l04658"></a>04658 <span class="comment"> *</span>
<a name="l04659"></a>04659 <span class="comment"> * @{</span>
<a name="l04660"></a>04660 <span class="comment"> */</span>
<a name="l04661"></a>04661 <span class="keyword">struct </span><a class="code" href="group__lavc__resample.html#ga0051f36cfec3437423a131c085ff5ea2">ReSampleContext</a>;
<a name="l04662"></a>04662 <span class="keyword">struct </span>AVResampleContext;
<a name="l04663"></a><a class="code" href="group__lavc__resample.html#ga0051f36cfec3437423a131c085ff5ea2">04663</a>
<a name="l04664"></a>04664 <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__lavc__resample.html#ga0051f36cfec3437423a131c085ff5ea2">ReSampleContext</a> <a class="code" href="group__lavc__resample.html#ga0051f36cfec3437423a131c085ff5ea2">ReSampleContext</a>;
<a name="l04665"></a>04665 <span class="comment"></span>
<a name="l04666"></a>04666 <span class="comment">/**</span>
<a name="l04667"></a>04667 <span class="comment"> * Initialize audio resampling context.</span>
<a name="l04668"></a>04668 <span class="comment"> *</span>
<a name="l04669"></a>04669 <span class="comment"> * @param output_channels number of output channels</span>
<a name="l04670"></a>04670 <span class="comment"> * @param input_channels number of input channels</span>
<a name="l04671"></a>04671 <span class="comment"> * @param output_rate output sample rate</span>
<a name="l04672"></a>04672 <span class="comment"> * @param input_rate input sample rate</span>
<a name="l04673"></a>04673 <span class="comment"> * @param sample_fmt_out requested output sample format</span>
<a name="l04674"></a>04674 <span class="comment"> * @param sample_fmt_in input sample format</span>
<a name="l04675"></a>04675 <span class="comment"> * @param filter_length length of each FIR filter in the filterbank relative to the cutoff frequency</span>
<a name="l04676"></a>04676 <span class="comment"> * @param log2_phase_count log2 of the number of entries in the polyphase filterbank</span>
<a name="l04677"></a>04677 <span class="comment"> * @param linear if 1 then the used FIR filter will be linearly interpolated</span>
<a name="l04678"></a>04678 <span class="comment"> between the 2 closest, if 0 the closest will be used</span>
<a name="l04679"></a>04679 <span class="comment"> * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate</span>
<a name="l04680"></a>04680 <span class="comment"> * @return allocated ReSampleContext, NULL if error occurred</span>
<a name="l04681"></a>04681 <span class="comment"> */</span>
<a name="l04682"></a>04682 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04683"></a>04683 <a class="code" href="group__lavc__resample.html#ga0051f36cfec3437423a131c085ff5ea2">ReSampleContext</a> *<a class="code" href="group__lavc__resample.html#ga6837453b6819cf2f4d26c2d320b1d696" title="Initialize audio resampling context.">av_audio_resample_init</a>(<span class="keywordtype">int</span> output_channels, <span class="keywordtype">int</span> input_channels,
<a name="l04684"></a>04684 <span class="keywordtype">int</span> output_rate, <span class="keywordtype">int</span> input_rate,
<a name="l04685"></a>04685 <span class="keyword">enum</span> <a class="code" href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5" title="Audio sample formats.">AVSampleFormat</a> sample_fmt_out,
<a name="l04686"></a>04686 <span class="keyword">enum</span> <a class="code" href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5" title="Audio sample formats.">AVSampleFormat</a> sample_fmt_in,
<a name="l04687"></a>04687 <span class="keywordtype">int</span> filter_length, <span class="keywordtype">int</span> log2_phase_count,
<a name="l04688"></a>04688 <span class="keywordtype">int</span> linear, <span class="keywordtype">double</span> cutoff);
<a name="l04689"></a>04689
<a name="l04690"></a>04690 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04691"></a>04691 <span class="keywordtype">int</span> <a class="code" href="group__lavc__resample.html#ga4a2391f7d72287f478ae9dfc0ae373f4">audio_resample</a>(<a class="code" href="group__lavc__resample.html#ga0051f36cfec3437423a131c085ff5ea2">ReSampleContext</a> *s, <span class="keywordtype">short</span> *output, <span class="keywordtype">short</span> *input, <span class="keywordtype">int</span> nb_samples);
<a name="l04692"></a>04692 <span class="comment"></span>
<a name="l04693"></a>04693 <span class="comment">/**</span>
<a name="l04694"></a>04694 <span class="comment"> * Free resample context.</span>
<a name="l04695"></a>04695 <span class="comment"> *</span>
<a name="l04696"></a>04696 <span class="comment"> * @param s a non-NULL pointer to a resample context previously</span>
<a name="l04697"></a>04697 <span class="comment"> * created with av_audio_resample_init()</span>
<a name="l04698"></a>04698 <span class="comment"> */</span>
<a name="l04699"></a>04699 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04700"></a>04700 <span class="keywordtype">void</span> <a class="code" href="group__lavc__resample.html#ga06447648458074fba375b9cc069664e0" title="Free resample context.">audio_resample_close</a>(<a class="code" href="group__lavc__resample.html#ga0051f36cfec3437423a131c085ff5ea2">ReSampleContext</a> *s);
<a name="l04701"></a>04701
<a name="l04702"></a>04702 <span class="comment"></span>
<a name="l04703"></a>04703 <span class="comment">/**</span>
<a name="l04704"></a>04704 <span class="comment"> * Initialize an audio resampler.</span>
<a name="l04705"></a>04705 <span class="comment"> * Note, if either rate is not an integer then simply scale both rates up so they are.</span>
<a name="l04706"></a>04706 <span class="comment"> * @param filter_length length of each FIR filter in the filterbank relative to the cutoff freq</span>
<a name="l04707"></a>04707 <span class="comment"> * @param log2_phase_count log2 of the number of entries in the polyphase filterbank</span>
<a name="l04708"></a>04708 <span class="comment"> * @param linear If 1 then the used FIR filter will be linearly interpolated</span>
<a name="l04709"></a>04709 <span class="comment"> between the 2 closest, if 0 the closest will be used</span>
<a name="l04710"></a>04710 <span class="comment"> * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate</span>
<a name="l04711"></a>04711 <span class="comment"> */</span>
<a name="l04712"></a>04712 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04713"></a>04713 <span class="keyword">struct </span>AVResampleContext *<a class="code" href="group__lavc__resample.html#ga9f11d551d458bb904e1078c65121fe03" title="Initialize an audio resampler.">av_resample_init</a>(<span class="keywordtype">int</span> out_rate, <span class="keywordtype">int</span> in_rate, <span class="keywordtype">int</span> filter_length, <span class="keywordtype">int</span> log2_phase_count, <span class="keywordtype">int</span> linear, <span class="keywordtype">double</span> cutoff);
<a name="l04714"></a>04714 <span class="comment"></span>
<a name="l04715"></a>04715 <span class="comment">/**</span>
<a name="l04716"></a>04716 <span class="comment"> * Resample an array of samples using a previously configured context.</span>
<a name="l04717"></a>04717 <span class="comment"> * @param src an array of unconsumed samples</span>
<a name="l04718"></a>04718 <span class="comment"> * @param consumed the number of samples of src which have been consumed are returned here</span>
<a name="l04719"></a>04719 <span class="comment"> * @param src_size the number of unconsumed samples available</span>
<a name="l04720"></a>04720 <span class="comment"> * @param dst_size the amount of space in samples available in dst</span>
<a name="l04721"></a>04721 <span class="comment"> * @param update_ctx If this is 0 then the context will not be modified, that way several channels can be resampled with the same context.</span>
<a name="l04722"></a>04722 <span class="comment"> * @return the number of samples written in dst or -1 if an error occurred</span>
<a name="l04723"></a>04723 <span class="comment"> */</span>
<a name="l04724"></a>04724 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04725"></a>04725 <span class="keywordtype">int</span> <a class="code" href="group__lavc__resample.html#gaced5571eafa8e23a25b96e1755f8f65c" title="Resample an array of samples using a previously configured context.">av_resample</a>(<span class="keyword">struct</span> AVResampleContext *c, <span class="keywordtype">short</span> *dst, <span class="keywordtype">short</span> *src, <span class="keywordtype">int</span> *consumed, <span class="keywordtype">int</span> src_size, <span class="keywordtype">int</span> dst_size, <span class="keywordtype">int</span> update_ctx);
<a name="l04726"></a>04726
<a name="l04727"></a>04727 <span class="comment"></span>
<a name="l04728"></a>04728 <span class="comment">/**</span>
<a name="l04729"></a>04729 <span class="comment"> * Compensate samplerate/timestamp drift. The compensation is done by changing</span>
<a name="l04730"></a>04730 <span class="comment"> * the resampler parameters, so no audible clicks or similar distortions occur</span>
<a name="l04731"></a>04731 <span class="comment"> * @param compensation_distance distance in output samples over which the compensation should be performed</span>
<a name="l04732"></a>04732 <span class="comment"> * @param sample_delta number of output samples which should be output less</span>
<a name="l04733"></a>04733 <span class="comment"> *</span>
<a name="l04734"></a>04734 <span class="comment"> * example: av_resample_compensate(c, 10, 500)</span>
<a name="l04735"></a>04735 <span class="comment"> * here instead of 510 samples only 500 samples would be output</span>
<a name="l04736"></a>04736 <span class="comment"> *</span>
<a name="l04737"></a>04737 <span class="comment"> * note, due to rounding the actual compensation might be slightly different,</span>
<a name="l04738"></a>04738 <span class="comment"> * especially if the compensation_distance is large and the in_rate used during init is small</span>
<a name="l04739"></a>04739 <span class="comment"> */</span>
<a name="l04740"></a>04740 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04741"></a>04741 <span class="keywordtype">void</span> <a class="code" href="group__lavc__resample.html#gadf6acc7cdbbf2fe8d6a7990a22662c0b" title="Compensate samplerate/timestamp drift.">av_resample_compensate</a>(<span class="keyword">struct</span> AVResampleContext *c, <span class="keywordtype">int</span> sample_delta, <span class="keywordtype">int</span> compensation_distance);
<a name="l04742"></a>04742 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04743"></a>04743 <span class="keywordtype">void</span> <a class="code" href="group__lavc__resample.html#ga2901688d58c5a64b97436288b301ad18">av_resample_close</a>(<span class="keyword">struct</span> AVResampleContext *c);
<a name="l04744"></a>04744 <span class="comment"></span>
<a name="l04745"></a>04745 <span class="comment">/**</span>
<a name="l04746"></a>04746 <span class="comment"> * @}</span>
<a name="l04747"></a>04747 <span class="comment"> */</span>
<a name="l04748"></a>04748 <span class="preprocessor">#endif</span>
<a name="l04749"></a>04749 <span class="preprocessor"></span><span class="comment"></span>
<a name="l04750"></a>04750 <span class="comment">/**</span>
<a name="l04751"></a>04751 <span class="comment"> * @addtogroup lavc_picture</span>
<a name="l04752"></a>04752 <span class="comment"> * @{</span>
<a name="l04753"></a>04753 <span class="comment"> */</span>
<a name="l04754"></a>04754 <span class="comment"></span>
<a name="l04755"></a>04755 <span class="comment">/**</span>
<a name="l04756"></a>04756 <span class="comment"> * Allocate memory for the pixels of a picture and setup the AVPicture</span>
<a name="l04757"></a>04757 <span class="comment"> * fields for it.</span>
<a name="l04758"></a>04758 <span class="comment"> *</span>
<a name="l04759"></a>04759 <span class="comment"> * Call avpicture_free() to free it.</span>
<a name="l04760"></a>04760 <span class="comment"> *</span>
<a name="l04761"></a>04761 <span class="comment"> * @param picture the picture structure to be filled in</span>
<a name="l04762"></a>04762 <span class="comment"> * @param pix_fmt the pixel format of the picture</span>
<a name="l04763"></a>04763 <span class="comment"> * @param width the width of the picture</span>
<a name="l04764"></a>04764 <span class="comment"> * @param height the height of the picture</span>
<a name="l04765"></a>04765 <span class="comment"> * @return zero if successful, a negative error code otherwise</span>
<a name="l04766"></a>04766 <span class="comment"> *</span>
<a name="l04767"></a>04767 <span class="comment"> * @see av_image_alloc(), avpicture_fill()</span>
<a name="l04768"></a>04768 <span class="comment"> */</span>
<a name="l04769"></a>04769 <span class="keywordtype">int</span> <a class="code" href="group__lavc__picture.html#ga03b764a93c34d00e5a33a5ebb0b4a81b" title="Allocate memory for the pixels of a picture and setup the AVPicture fields for it.">avpicture_alloc</a>(<a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *picture, <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>);
<a name="l04770"></a>04770 <span class="comment"></span>
<a name="l04771"></a>04771 <span class="comment">/**</span>
<a name="l04772"></a>04772 <span class="comment"> * Free a picture previously allocated by avpicture_alloc().</span>
<a name="l04773"></a>04773 <span class="comment"> * The data buffer used by the AVPicture is freed, but the AVPicture structure</span>
<a name="l04774"></a>04774 <span class="comment"> * itself is not.</span>
<a name="l04775"></a>04775 <span class="comment"> *</span>
<a name="l04776"></a>04776 <span class="comment"> * @param picture the AVPicture to be freed</span>
<a name="l04777"></a>04777 <span class="comment"> */</span>
<a name="l04778"></a>04778 <span class="keywordtype">void</span> <a class="code" href="group__lavc__picture.html#gaf4ad71a7e39b54ee70f18cc451de956f" title="Free a picture previously allocated by avpicture_alloc().">avpicture_free</a>(<a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *picture);
<a name="l04779"></a>04779 <span class="comment"></span>
<a name="l04780"></a>04780 <span class="comment">/**</span>
<a name="l04781"></a>04781 <span class="comment"> * Setup the picture fields based on the specified image parameters</span>
<a name="l04782"></a>04782 <span class="comment"> * and the provided image data buffer.</span>
<a name="l04783"></a>04783 <span class="comment"> *</span>
<a name="l04784"></a>04784 <span class="comment"> * The picture fields are filled in by using the image data buffer</span>
<a name="l04785"></a>04785 <span class="comment"> * pointed to by ptr.</span>
<a name="l04786"></a>04786 <span class="comment"> *</span>
<a name="l04787"></a>04787 <span class="comment"> * If ptr is NULL, the function will fill only the picture linesize</span>
<a name="l04788"></a>04788 <span class="comment"> * array and return the required size for the image buffer.</span>
<a name="l04789"></a>04789 <span class="comment"> *</span>
<a name="l04790"></a>04790 <span class="comment"> * To allocate an image buffer and fill the picture data in one call,</span>
<a name="l04791"></a>04791 <span class="comment"> * use avpicture_alloc().</span>
<a name="l04792"></a>04792 <span class="comment"> *</span>
<a name="l04793"></a>04793 <span class="comment"> * @param picture the picture to be filled in</span>
<a name="l04794"></a>04794 <span class="comment"> * @param ptr buffer where the image data is stored, or NULL</span>
<a name="l04795"></a>04795 <span class="comment"> * @param pix_fmt the pixel format of the image</span>
<a name="l04796"></a>04796 <span class="comment"> * @param width the width of the image in pixels</span>
<a name="l04797"></a>04797 <span class="comment"> * @param height the height of the image in pixels</span>
<a name="l04798"></a>04798 <span class="comment"> * @return the size in bytes required for src, a negative error code</span>
<a name="l04799"></a>04799 <span class="comment"> * in case of failure</span>
<a name="l04800"></a>04800 <span class="comment"> *</span>
<a name="l04801"></a>04801 <span class="comment"> * @see av_image_fill_arrays()</span>
<a name="l04802"></a>04802 <span class="comment"> */</span>
<a name="l04803"></a>04803 <span class="keywordtype">int</span> <a class="code" href="group__lavc__picture.html#gac1b22e9b246cb8b0928cca8f5fa524d4" title="Setup the picture fields based on the specified image parameters and the provided image data buffer...">avpicture_fill</a>(<a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *picture, <span class="keyword">const</span> uint8_t *ptr,
<a name="l04804"></a>04804 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>);
<a name="l04805"></a>04805 <span class="comment"></span>
<a name="l04806"></a>04806 <span class="comment">/**</span>
<a name="l04807"></a>04807 <span class="comment"> * Copy pixel data from an AVPicture into a buffer.</span>
<a name="l04808"></a>04808 <span class="comment"> *</span>
<a name="l04809"></a>04809 <span class="comment"> * avpicture_get_size() can be used to compute the required size for</span>
<a name="l04810"></a>04810 <span class="comment"> * the buffer to fill.</span>
<a name="l04811"></a>04811 <span class="comment"> *</span>
<a name="l04812"></a>04812 <span class="comment"> * @param src source picture with filled data</span>
<a name="l04813"></a>04813 <span class="comment"> * @param pix_fmt picture pixel format</span>
<a name="l04814"></a>04814 <span class="comment"> * @param width picture width</span>
<a name="l04815"></a>04815 <span class="comment"> * @param height picture height</span>
<a name="l04816"></a>04816 <span class="comment"> * @param dest destination buffer</span>
<a name="l04817"></a>04817 <span class="comment"> * @param dest_size destination buffer size in bytes</span>
<a name="l04818"></a>04818 <span class="comment"> * @return the number of bytes written to dest, or a negative value</span>
<a name="l04819"></a>04819 <span class="comment"> * (error code) on error, for example if the destination buffer is not</span>
<a name="l04820"></a>04820 <span class="comment"> * big enough</span>
<a name="l04821"></a>04821 <span class="comment"> *</span>
<a name="l04822"></a>04822 <span class="comment"> * @see av_image_copy_to_buffer()</span>
<a name="l04823"></a>04823 <span class="comment"> */</span>
<a name="l04824"></a>04824 <span class="keywordtype">int</span> <a class="code" href="group__lavc__picture.html#ga99bc554a84681f7ee6422a384007a4ca" title="Copy pixel data from an AVPicture into a buffer.">avpicture_layout</a>(<span class="keyword">const</span> <a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *src, <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>,
<a name="l04825"></a>04825 <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>,
<a name="l04826"></a>04826 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *dest, <span class="keywordtype">int</span> dest_size);
<a name="l04827"></a>04827 <span class="comment"></span>
<a name="l04828"></a>04828 <span class="comment">/**</span>
<a name="l04829"></a>04829 <span class="comment"> * Calculate the size in bytes that a picture of the given width and height</span>
<a name="l04830"></a>04830 <span class="comment"> * would occupy if stored in the given picture format.</span>
<a name="l04831"></a>04831 <span class="comment"> *</span>
<a name="l04832"></a>04832 <span class="comment"> * @param pix_fmt picture pixel format</span>
<a name="l04833"></a>04833 <span class="comment"> * @param width picture width</span>
<a name="l04834"></a>04834 <span class="comment"> * @param height picture height</span>
<a name="l04835"></a>04835 <span class="comment"> * @return the computed picture buffer size or a negative error code</span>
<a name="l04836"></a>04836 <span class="comment"> * in case of error</span>
<a name="l04837"></a>04837 <span class="comment"> *</span>
<a name="l04838"></a>04838 <span class="comment"> * @see av_image_get_buffer_size().</span>
<a name="l04839"></a>04839 <span class="comment"> */</span>
<a name="l04840"></a>04840 <span class="keywordtype">int</span> <a class="code" href="group__lavc__picture.html#ga18a08bcb237767ef442fd5d3d1dd2084" title="Calculate the size in bytes that a picture of the given width and height would occupy if stored in th...">avpicture_get_size</a>(<span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>);
<a name="l04841"></a>04841
<a name="l04842"></a>04842 <span class="preprocessor">#if FF_API_DEINTERLACE</span>
<a name="l04843"></a>04843 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l04844"></a>04844 <span class="comment"> * deinterlace - if not supported return -1</span>
<a name="l04845"></a>04845 <span class="comment"> *</span>
<a name="l04846"></a>04846 <span class="comment"> * @deprecated - use yadif (in libavfilter) instead</span>
<a name="l04847"></a>04847 <span class="comment"> */</span>
<a name="l04848"></a>04848 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04849"></a>04849 <span class="keywordtype">int</span> <a class="code" href="group__lavc__picture.html#gafae4ce3eea8607e0c0c14ef73ff1902f" title="deinterlace - if not supported return -1">avpicture_deinterlace</a>(<a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *src,
<a name="l04850"></a>04850 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>);
<a name="l04851"></a>04851 <span class="preprocessor">#endif</span>
<a name="l04852"></a>04852 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l04853"></a>04853 <span class="comment"> * Copy image src to dst. Wraps av_image_copy().</span>
<a name="l04854"></a>04854 <span class="comment"> */</span>
<a name="l04855"></a>04855 <span class="keywordtype">void</span> <a class="code" href="group__lavc__picture.html#gaa55e61985bbede1135135e39a40a4ac4" title="Copy image src to dst.">av_picture_copy</a>(<a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *src,
<a name="l04856"></a>04856 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>);
<a name="l04857"></a>04857 <span class="comment"></span>
<a name="l04858"></a>04858 <span class="comment">/**</span>
<a name="l04859"></a>04859 <span class="comment"> * Crop image top and left side.</span>
<a name="l04860"></a>04860 <span class="comment"> */</span>
<a name="l04861"></a>04861 <span class="keywordtype">int</span> <a class="code" href="group__lavc__picture.html#gadeee38e47bd67bb3cce616ce4979e9be" title="Crop image top and left side.">av_picture_crop</a>(<a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *src,
<a name="l04862"></a>04862 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>, <span class="keywordtype">int</span> top_band, <span class="keywordtype">int</span> left_band);
<a name="l04863"></a>04863 <span class="comment"></span>
<a name="l04864"></a>04864 <span class="comment">/**</span>
<a name="l04865"></a>04865 <span class="comment"> * Pad image.</span>
<a name="l04866"></a>04866 <span class="comment"> */</span>
<a name="l04867"></a>04867 <span class="keywordtype">int</span> <a class="code" href="group__lavc__picture.html#ga9b2a864f48cb9d8eac48bd71ec195125" title="Pad image.">av_picture_pad</a>(<a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *dst, <span class="keyword">const</span> <a class="code" href="structAVPicture.html" title="Picture data structure.">AVPicture</a> *src, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>,
<a name="l04868"></a>04868 <span class="keywordtype">int</span> padtop, <span class="keywordtype">int</span> padbottom, <span class="keywordtype">int</span> padleft, <span class="keywordtype">int</span> padright, <span class="keywordtype">int</span> *color);
<a name="l04869"></a>04869 <span class="comment"></span>
<a name="l04870"></a>04870 <span class="comment">/**</span>
<a name="l04871"></a>04871 <span class="comment"> * @}</span>
<a name="l04872"></a>04872 <span class="comment"> */</span>
<a name="l04873"></a>04873 <span class="comment"></span>
<a name="l04874"></a>04874 <span class="comment">/**</span>
<a name="l04875"></a>04875 <span class="comment"> * @defgroup lavc_misc Utility functions</span>
<a name="l04876"></a>04876 <span class="comment"> * @ingroup libavc</span>
<a name="l04877"></a>04877 <span class="comment"> *</span>
<a name="l04878"></a>04878 <span class="comment"> * Miscellaneous utility functions related to both encoding and decoding</span>
<a name="l04879"></a>04879 <span class="comment"> * (or neither).</span>
<a name="l04880"></a>04880 <span class="comment"> * @{</span>
<a name="l04881"></a>04881 <span class="comment"> */</span>
<a name="l04882"></a>04882 <span class="comment"></span>
<a name="l04883"></a>04883 <span class="comment">/**</span>
<a name="l04884"></a>04884 <span class="comment"> * @defgroup lavc_misc_pixfmt Pixel formats</span>
<a name="l04885"></a>04885 <span class="comment"> *</span>
<a name="l04886"></a>04886 <span class="comment"> * Functions for working with pixel formats.</span>
<a name="l04887"></a>04887 <span class="comment"> * @{</span>
<a name="l04888"></a>04888 <span class="comment"> */</span>
<a name="l04889"></a>04889 <span class="comment"></span>
<a name="l04890"></a>04890 <span class="comment">/**</span>
<a name="l04891"></a>04891 <span class="comment"> * Utility function to access log2_chroma_w log2_chroma_h from</span>
<a name="l04892"></a>04892 <span class="comment"> * the pixel format AVPixFmtDescriptor.</span>
<a name="l04893"></a>04893 <span class="comment"> *</span>
<a name="l04894"></a>04894 <span class="comment"> * This function asserts that pix_fmt is valid. See av_pix_fmt_get_chroma_sub_sample</span>
<a name="l04895"></a>04895 <span class="comment"> * for one that returns a failure code and continues in case of invalid</span>
<a name="l04896"></a>04896 <span class="comment"> * pix_fmts.</span>
<a name="l04897"></a>04897 <span class="comment"> *</span>
<a name="l04898"></a>04898 <span class="comment"> * @param[in] pix_fmt the pixel format</span>
<a name="l04899"></a>04899 <span class="comment"> * @param[out] h_shift store log2_chroma_w</span>
<a name="l04900"></a>04900 <span class="comment"> * @param[out] v_shift store log2_chroma_h</span>
<a name="l04901"></a>04901 <span class="comment"> *</span>
<a name="l04902"></a>04902 <span class="comment"> * @see av_pix_fmt_get_chroma_sub_sample</span>
<a name="l04903"></a>04903 <span class="comment"> */</span>
<a name="l04904"></a>04904
<a name="l04905"></a>04905 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc__pixfmt.html#ga8734c0195b87efe1a060ca101505c7b8" title="Utility function to access log2_chroma_w log2_chroma_h from the pixel format AVPixFmtDescriptor.">avcodec_get_chroma_sub_sample</a>(<span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>, <span class="keywordtype">int</span> *h_shift, <span class="keywordtype">int</span> *v_shift);
<a name="l04906"></a>04906 <span class="comment"></span>
<a name="l04907"></a>04907 <span class="comment">/**</span>
<a name="l04908"></a>04908 <span class="comment"> * Return a value representing the fourCC code associated to the</span>
<a name="l04909"></a>04909 <span class="comment"> * pixel format pix_fmt, or 0 if no associated fourCC code can be</span>
<a name="l04910"></a>04910 <span class="comment"> * found.</span>
<a name="l04911"></a>04911 <span class="comment"> */</span>
<a name="l04912"></a>04912 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc__pixfmt.html#ga9bb07f91a7c87cba19a44ebdcf5bde63" title="Return a value representing the fourCC code associated to the pixel format pix_fmt, or 0 if no associated fourCC code can be found.">avcodec_pix_fmt_to_codec_tag</a>(<span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="demuxing__decoding_8c.html#a7331e302ea7bb48e0b605a069576e135">pix_fmt</a>);
<a name="l04913"></a>04913 <span class="comment"></span>
<a name="l04914"></a>04914 <span class="comment">/**</span>
<a name="l04915"></a>04915 <span class="comment"> * @deprecated see av_get_pix_fmt_loss()</span>
<a name="l04916"></a>04916 <span class="comment"> */</span>
<a name="l04917"></a>04917 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc__pixfmt.html#ga838136cb54100d6afcb2f7e0377566ff">avcodec_get_pix_fmt_loss</a>(<span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> dst_pix_fmt, <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> src_pix_fmt,
<a name="l04918"></a>04918 <span class="keywordtype">int</span> has_alpha);
<a name="l04919"></a>04919 <span class="comment"></span>
<a name="l04920"></a>04920 <span class="comment">/**</span>
<a name="l04921"></a>04921 <span class="comment"> * Find the best pixel format to convert to given a certain source pixel</span>
<a name="l04922"></a>04922 <span class="comment"> * format. When converting from one pixel format to another, information loss</span>
<a name="l04923"></a>04923 <span class="comment"> * may occur. For example, when converting from RGB24 to GRAY, the color</span>
<a name="l04924"></a>04924 <span class="comment"> * information will be lost. Similarly, other losses occur when converting from</span>
<a name="l04925"></a>04925 <span class="comment"> * some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of</span>
<a name="l04926"></a>04926 <span class="comment"> * the given pixel formats should be used to suffer the least amount of loss.</span>
<a name="l04927"></a>04927 <span class="comment"> * The pixel formats from which it chooses one, are determined by the</span>
<a name="l04928"></a>04928 <span class="comment"> * pix_fmt_list parameter.</span>
<a name="l04929"></a>04929 <span class="comment"> *</span>
<a name="l04930"></a>04930 <span class="comment"> *</span>
<a name="l04931"></a>04931 <span class="comment"> * @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to choose from</span>
<a name="l04932"></a>04932 <span class="comment"> * @param[in] src_pix_fmt source pixel format</span>
<a name="l04933"></a>04933 <span class="comment"> * @param[in] has_alpha Whether the source pixel format alpha channel is used.</span>
<a name="l04934"></a>04934 <span class="comment"> * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur.</span>
<a name="l04935"></a>04935 <span class="comment"> * @return The best pixel format to convert to or -1 if none was found.</span>
<a name="l04936"></a>04936 <span class="comment"> */</span>
<a name="l04937"></a>04937 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="group__lavc__misc__pixfmt.html#ga9e74b43a3433ccfe836814f0a6371aa0" title="Find the best pixel format to convert to given a certain source pixel format.">avcodec_find_best_pix_fmt_of_list</a>(<span class="keyword">const</span> <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> *pix_fmt_list,
<a name="l04938"></a>04938 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> src_pix_fmt,
<a name="l04939"></a>04939 <span class="keywordtype">int</span> has_alpha, <span class="keywordtype">int</span> *loss_ptr);
<a name="l04940"></a>04940 <span class="comment"></span>
<a name="l04941"></a>04941 <span class="comment">/**</span>
<a name="l04942"></a>04942 <span class="comment"> * @deprecated see av_find_best_pix_fmt_of_2()</span>
<a name="l04943"></a>04943 <span class="comment"> */</span>
<a name="l04944"></a>04944 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="group__lavc__misc__pixfmt.html#ga209703f647b87bd3f35ed97eb534fd21">avcodec_find_best_pix_fmt_of_2</a>(<span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> dst_pix_fmt1, <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> dst_pix_fmt2,
<a name="l04945"></a>04945 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> src_pix_fmt, <span class="keywordtype">int</span> has_alpha, <span class="keywordtype">int</span> *loss_ptr);
<a name="l04946"></a>04946
<a name="l04947"></a>04947 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04948"></a>04948 <span class="preprocessor">#if AV_HAVE_INCOMPATIBLE_LIBAV_ABI</span>
<a name="l04949"></a>04949 <span class="preprocessor"></span><span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="group__lavc__misc__pixfmt.html#gafaa40af15ce2d1ab4adca12b827ee85f">avcodec_find_best_pix_fmt2</a>(<span class="keyword">const</span> <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> *pix_fmt_list,
<a name="l04950"></a>04950 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> src_pix_fmt,
<a name="l04951"></a>04951 <span class="keywordtype">int</span> has_alpha, <span class="keywordtype">int</span> *loss_ptr);
<a name="l04952"></a>04952 <span class="preprocessor">#else</span>
<a name="l04953"></a>04953 <span class="preprocessor"></span><span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="group__lavc__misc__pixfmt.html#gafaa40af15ce2d1ab4adca12b827ee85f">avcodec_find_best_pix_fmt2</a>(<span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> dst_pix_fmt1, <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> dst_pix_fmt2,
<a name="l04954"></a>04954 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> src_pix_fmt, <span class="keywordtype">int</span> has_alpha, <span class="keywordtype">int</span> *loss_ptr);
<a name="l04955"></a>04955 <span class="preprocessor">#endif</span>
<a name="l04956"></a>04956 <span class="preprocessor"></span>
<a name="l04957"></a>04957
<a name="l04958"></a>04958 <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> <a class="code" href="group__lavc__misc__pixfmt.html#ga2d16136bf8844295b2f8ea17c386d833">avcodec_default_get_format</a>(<span class="keyword">struct</span> <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <span class="keyword">const</span> <span class="keyword">enum</span> <a class="code" href="pixfmt_8h.html#a9a8e335cf3be472042bc9f0cf80cd4c5" title="Pixel format.">AVPixelFormat</a> * fmt);
<a name="l04959"></a>04959 <span class="comment"></span>
<a name="l04960"></a>04960 <span class="comment">/**</span>
<a name="l04961"></a>04961 <span class="comment"> * @}</span>
<a name="l04962"></a>04962 <span class="comment"> */</span>
<a name="l04963"></a>04963
<a name="l04964"></a>04964 <span class="preprocessor">#if FF_API_SET_DIMENSIONS</span>
<a name="l04965"></a>04965 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l04966"></a>04966 <span class="comment"> * @deprecated this function is not supposed to be used from outside of lavc</span>
<a name="l04967"></a>04967 <span class="comment"> */</span>
<a name="l04968"></a>04968 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l04969"></a>04969 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#ga4e17541c4f237465b50668d279192da8">avcodec_set_dimensions</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#a2474a5474cbff19523a51eb1de01cda4">width</a>, <span class="keywordtype">int</span> <a class="code" href="demuxing__decoding_8c.html#ad12fc34ce789bce6c8a05d8a17138534">height</a>);
<a name="l04970"></a>04970 <span class="preprocessor">#endif</span>
<a name="l04971"></a>04971 <span class="preprocessor"></span><span class="comment"></span>
<a name="l04972"></a>04972 <span class="comment">/**</span>
<a name="l04973"></a>04973 <span class="comment"> * Put a string representing the codec tag codec_tag in buf.</span>
<a name="l04974"></a>04974 <span class="comment"> *</span>
<a name="l04975"></a>04975 <span class="comment"> * @param buf buffer to place codec tag in</span>
<a name="l04976"></a>04976 <span class="comment"> * @param buf_size size in bytes of buf</span>
<a name="l04977"></a>04977 <span class="comment"> * @param codec_tag codec tag to assign</span>
<a name="l04978"></a>04978 <span class="comment"> * @return the length of the string that would have been generated if</span>
<a name="l04979"></a>04979 <span class="comment"> * enough space had been available, excluding the trailing null</span>
<a name="l04980"></a>04980 <span class="comment"> */</span>
<a name="l04981"></a>04981 <span class="keywordtype">size_t</span> <a class="code" href="group__lavc__misc.html#ga1f9e278e427564ee2e8b0ad875dbe5df" title="Put a string representing the codec tag codec_tag in buf.">av_get_codec_tag_string</a>(<span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> buf_size, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> codec_tag);
<a name="l04982"></a>04982
<a name="l04983"></a>04983 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#ga6d4056568b5ab73d2e55800d9a5caa66">avcodec_string</a>(<span class="keywordtype">char</span> *buf, <span class="keywordtype">int</span> buf_size, <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *enc, <span class="keywordtype">int</span> encode);
<a name="l04984"></a>04984 <span class="comment"></span>
<a name="l04985"></a>04985 <span class="comment">/**</span>
<a name="l04986"></a>04986 <span class="comment"> * Return a name for the specified profile, if available.</span>
<a name="l04987"></a>04987 <span class="comment"> *</span>
<a name="l04988"></a>04988 <span class="comment"> * @param codec the codec that is searched for the given profile</span>
<a name="l04989"></a>04989 <span class="comment"> * @param profile the profile value for which a name is requested</span>
<a name="l04990"></a>04990 <span class="comment"> * @return A name for the profile if found, NULL otherwise.</span>
<a name="l04991"></a>04991 <span class="comment"> */</span>
<a name="l04992"></a>04992 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__lavc__misc.html#ga0dc4a8003d0818a235bde2d8fbe81e11" title="Return a name for the specified profile, if available.">av_get_profile_name</a>(<span class="keyword">const</span> <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec, <span class="keywordtype">int</span> profile);
<a name="l04993"></a>04993
<a name="l04994"></a>04994 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga9ccd730ba6e891b6c61da68ab138c63f">avcodec_default_execute</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c, <span class="keywordtype">int</span> (*func)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c2, <span class="keywordtype">void</span> *arg2),<span class="keywordtype">void</span> *arg, <span class="keywordtype">int</span> *ret, <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> size);
<a name="l04995"></a>04995 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga365b89d7f5b6dc9f930f07ec4078a611">avcodec_default_execute2</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c, <span class="keywordtype">int</span> (*func)(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *c2, <span class="keywordtype">void</span> *arg2, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>),<span class="keywordtype">void</span> *arg, <span class="keywordtype">int</span> *ret, <span class="keywordtype">int</span> count);
<a name="l04996"></a>04996 <span class="comment">//FIXME func typedef</span>
<a name="l04997"></a>04997 <span class="comment"></span>
<a name="l04998"></a>04998 <span class="comment">/**</span>
<a name="l04999"></a>04999 <span class="comment"> * Fill AVFrame audio data and linesize pointers.</span>
<a name="l05000"></a>05000 <span class="comment"> *</span>
<a name="l05001"></a>05001 <span class="comment"> * The buffer buf must be a preallocated buffer with a size big enough</span>
<a name="l05002"></a>05002 <span class="comment"> * to contain the specified samples amount. The filled AVFrame data</span>
<a name="l05003"></a>05003 <span class="comment"> * pointers will point to this buffer.</span>
<a name="l05004"></a>05004 <span class="comment"> *</span>
<a name="l05005"></a>05005 <span class="comment"> * AVFrame extended_data channel pointers are allocated if necessary for</span>
<a name="l05006"></a>05006 <span class="comment"> * planar audio.</span>
<a name="l05007"></a>05007 <span class="comment"> *</span>
<a name="l05008"></a>05008 <span class="comment"> * @param frame the AVFrame</span>
<a name="l05009"></a>05009 <span class="comment"> * frame->nb_samples must be set prior to calling the</span>
<a name="l05010"></a>05010 <span class="comment"> * function. This function fills in frame->data,</span>
<a name="l05011"></a>05011 <span class="comment"> * frame->extended_data, frame->linesize[0].</span>
<a name="l05012"></a>05012 <span class="comment"> * @param nb_channels channel count</span>
<a name="l05013"></a>05013 <span class="comment"> * @param sample_fmt sample format</span>
<a name="l05014"></a>05014 <span class="comment"> * @param buf buffer to use for frame data</span>
<a name="l05015"></a>05015 <span class="comment"> * @param buf_size size of buffer</span>
<a name="l05016"></a>05016 <span class="comment"> * @param align plane size sample alignment (0 = default)</span>
<a name="l05017"></a>05017 <span class="comment"> * @return >=0 on success, negative error code on failure</span>
<a name="l05018"></a>05018 <span class="comment"> * @todo return the size in bytes required to store the samples in</span>
<a name="l05019"></a>05019 <span class="comment"> * case of success, at the next libavutil bump</span>
<a name="l05020"></a>05020 <span class="comment"> */</span>
<a name="l05021"></a>05021 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga66b44aad56fa22a78fb8916eb8cc0516" title="Fill AVFrame audio data and linesize pointers.">avcodec_fill_audio_frame</a>(<a class="code" href="structAVFrame.html" title="This structure describes decoded (raw) audio or video data.">AVFrame</a> *<a class="code" href="demuxing__decoding_8c.html#ad7d33d579a8d4241a5e643e39287a209">frame</a>, <span class="keywordtype">int</span> nb_channels,
<a name="l05022"></a>05022 <span class="keyword">enum</span> <a class="code" href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5" title="Audio sample formats.">AVSampleFormat</a> sample_fmt, <span class="keyword">const</span> uint8_t *buf,
<a name="l05023"></a>05023 <span class="keywordtype">int</span> buf_size, <span class="keywordtype">int</span> align);
<a name="l05024"></a>05024 <span class="comment"></span>
<a name="l05025"></a>05025 <span class="comment">/**</span>
<a name="l05026"></a>05026 <span class="comment"> * Reset the internal decoder state / flush internal buffers. Should be called</span>
<a name="l05027"></a>05027 <span class="comment"> * e.g. when seeking or when switching to a different stream.</span>
<a name="l05028"></a>05028 <span class="comment"> *</span>
<a name="l05029"></a>05029 <span class="comment"> * @note when refcounted frames are not used (i.e. avctx->refcounted_frames is 0),</span>
<a name="l05030"></a>05030 <span class="comment"> * this invalidates the frames previously returned from the decoder. When</span>
<a name="l05031"></a>05031 <span class="comment"> * refcounted frames are used, the decoder just releases any references it might</span>
<a name="l05032"></a>05032 <span class="comment"> * keep internally, but the caller's reference remains valid.</span>
<a name="l05033"></a>05033 <span class="comment"> */</span>
<a name="l05034"></a>05034 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#gaf60b0e076f822abcb2700eb601d352a6" title="Reset the internal decoder state / flush internal buffers.">avcodec_flush_buffers</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx);
<a name="l05035"></a>05035 <span class="comment"></span>
<a name="l05036"></a>05036 <span class="comment">/**</span>
<a name="l05037"></a>05037 <span class="comment"> * Return codec bits per sample.</span>
<a name="l05038"></a>05038 <span class="comment"> *</span>
<a name="l05039"></a>05039 <span class="comment"> * @param[in] codec_id the codec</span>
<a name="l05040"></a>05040 <span class="comment"> * @return Number of bits per sample or zero if unknown for the given codec.</span>
<a name="l05041"></a>05041 <span class="comment"> */</span>
<a name="l05042"></a>05042 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga0717e7440fdb123f708082f66cd9b41d" title="Return codec bits per sample.">av_get_bits_per_sample</a>(<span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> codec_id);
<a name="l05043"></a>05043 <span class="comment"></span>
<a name="l05044"></a>05044 <span class="comment">/**</span>
<a name="l05045"></a>05045 <span class="comment"> * Return the PCM codec associated with a sample format.</span>
<a name="l05046"></a>05046 <span class="comment"> * @param be endianness, 0 for little, 1 for big,</span>
<a name="l05047"></a>05047 <span class="comment"> * -1 (or anything else) for native</span>
<a name="l05048"></a>05048 <span class="comment"> * @return AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE</span>
<a name="l05049"></a>05049 <span class="comment"> */</span>
<a name="l05050"></a>05050 <span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <a class="code" href="group__lavc__misc.html#gafa5775a0bd6a6ab58011e8492156eb6e" title="Return the PCM codec associated with a sample format.">av_get_pcm_codec</a>(<span class="keyword">enum</span> <a class="code" href="group__lavu__sampfmts.html#gaf9a51ca15301871723577c730b5865c5" title="Audio sample formats.">AVSampleFormat</a> fmt, <span class="keywordtype">int</span> be);
<a name="l05051"></a>05051 <span class="comment"></span>
<a name="l05052"></a>05052 <span class="comment">/**</span>
<a name="l05053"></a>05053 <span class="comment"> * Return codec bits per sample.</span>
<a name="l05054"></a>05054 <span class="comment"> * Only return non-zero if the bits per sample is exactly correct, not an</span>
<a name="l05055"></a>05055 <span class="comment"> * approximation.</span>
<a name="l05056"></a>05056 <span class="comment"> *</span>
<a name="l05057"></a>05057 <span class="comment"> * @param[in] codec_id the codec</span>
<a name="l05058"></a>05058 <span class="comment"> * @return Number of bits per sample or zero if unknown for the given codec.</span>
<a name="l05059"></a>05059 <span class="comment"> */</span>
<a name="l05060"></a>05060 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#gadddbcd146ffaf53016bac730c631f7b3" title="Return codec bits per sample.">av_get_exact_bits_per_sample</a>(<span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> codec_id);
<a name="l05061"></a>05061 <span class="comment"></span>
<a name="l05062"></a>05062 <span class="comment">/**</span>
<a name="l05063"></a>05063 <span class="comment"> * Return audio frame duration.</span>
<a name="l05064"></a>05064 <span class="comment"> *</span>
<a name="l05065"></a>05065 <span class="comment"> * @param avctx codec context</span>
<a name="l05066"></a>05066 <span class="comment"> * @param frame_bytes size of the frame, or 0 if unknown</span>
<a name="l05067"></a>05067 <span class="comment"> * @return frame duration, in samples, if known. 0 if not able to</span>
<a name="l05068"></a>05068 <span class="comment"> * determine.</span>
<a name="l05069"></a>05069 <span class="comment"> */</span>
<a name="l05070"></a>05070 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga3266a8c3df0790c62259f91afcde45a9" title="Return audio frame duration.">av_get_audio_frame_duration</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keywordtype">int</span> frame_bytes);
<a name="l05071"></a>05071
<a name="l05072"></a><a class="code" href="structAVBitStreamFilterContext.html">05072</a>
<a name="l05073"></a><a class="code" href="structAVBitStreamFilterContext.html#a52be23186f336ec2dabea3ff06b2c28d">05073</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVBitStreamFilterContext.html">AVBitStreamFilterContext</a> {
<a name="l05074"></a><a class="code" href="structAVBitStreamFilterContext.html#ae3a452c97019b6868bbbded7f18b06e5">05074</a> <span class="keywordtype">void</span> *<a class="code" href="structAVBitStreamFilterContext.html#a52be23186f336ec2dabea3ff06b2c28d">priv_data</a>;
<a name="l05075"></a><a class="code" href="structAVBitStreamFilterContext.html#aef526b29a519eff27dc47d0d2fb31157">05075</a> <span class="keyword">struct </span><a class="code" href="structAVBitStreamFilter.html">AVBitStreamFilter</a> *<a class="code" href="structAVBitStreamFilterContext.html#ae3a452c97019b6868bbbded7f18b06e5">filter</a>;
<a name="l05076"></a><a class="code" href="structAVBitStreamFilterContext.html#a65bd58b3ccc448c497f69c413c2703b6">05076</a> <a class="code" href="structAVCodecParserContext.html">AVCodecParserContext</a> *<a class="code" href="structAVBitStreamFilterContext.html#aef526b29a519eff27dc47d0d2fb31157">parser</a>;
<a name="l05077"></a>05077 <span class="keyword">struct </span><a class="code" href="structAVBitStreamFilterContext.html">AVBitStreamFilterContext</a> *<a class="code" href="structAVBitStreamFilterContext.html#a65bd58b3ccc448c497f69c413c2703b6">next</a>;
<a name="l05078"></a>05078 } <a class="code" href="structAVBitStreamFilterContext.html">AVBitStreamFilterContext</a>;
<a name="l05079"></a>05079
<a name="l05080"></a><a class="code" href="structAVBitStreamFilter.html">05080</a>
<a name="l05081"></a><a class="code" href="structAVBitStreamFilter.html#a33c3cb51bd13060da35481655b41e4e5">05081</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structAVBitStreamFilter.html">AVBitStreamFilter</a> {
<a name="l05082"></a><a class="code" href="structAVBitStreamFilter.html#abf78eca41afed22f479532dbfb2f8ec6">05082</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVBitStreamFilter.html#a33c3cb51bd13060da35481655b41e4e5">name</a>;
<a name="l05083"></a><a class="code" href="structAVBitStreamFilter.html#a24184c59e5c0cc00e40490ab7e2222fc">05083</a> <span class="keywordtype">int</span> <a class="code" href="structAVBitStreamFilter.html#abf78eca41afed22f479532dbfb2f8ec6">priv_data_size</a>;
<a name="l05084"></a>05084 int (*<a class="code" href="structAVBitStreamFilter.html#a24184c59e5c0cc00e40490ab7e2222fc">filter</a>)(<a class="code" href="structAVBitStreamFilterContext.html">AVBitStreamFilterContext</a> *bsfc,
<a name="l05085"></a>05085 <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *args,
<a name="l05086"></a>05086 uint8_t **poutbuf, <span class="keywordtype">int</span> *poutbuf_size,
<a name="l05087"></a><a class="code" href="structAVBitStreamFilter.html#a38ed53170bcb241d7e79df8c3f3e4dd3">05087</a> <span class="keyword">const</span> uint8_t *buf, <span class="keywordtype">int</span> buf_size, <span class="keywordtype">int</span> keyframe);
<a name="l05088"></a><a class="code" href="structAVBitStreamFilter.html#a4bdb343a6dc2a6031a8fed27bc60d022">05088</a> void (*<a class="code" href="structAVBitStreamFilter.html#a38ed53170bcb241d7e79df8c3f3e4dd3">close</a>)(<a class="code" href="structAVBitStreamFilterContext.html">AVBitStreamFilterContext</a> *bsfc);
<a name="l05089"></a>05089 <span class="keyword">struct </span><a class="code" href="structAVBitStreamFilter.html">AVBitStreamFilter</a> *<a class="code" href="structAVBitStreamFilter.html#a4bdb343a6dc2a6031a8fed27bc60d022">next</a>;
<a name="l05090"></a>05090 } <a class="code" href="structAVBitStreamFilter.html">AVBitStreamFilter</a>;
<a name="l05091"></a>05091 <span class="comment"></span>
<a name="l05092"></a>05092 <span class="comment">/**</span>
<a name="l05093"></a>05093 <span class="comment"> * Register a bitstream filter.</span>
<a name="l05094"></a>05094 <span class="comment"> *</span>
<a name="l05095"></a>05095 <span class="comment"> * The filter will be accessible to the application code through</span>
<a name="l05096"></a>05096 <span class="comment"> * av_bitstream_filter_next() or can be directly initialized with</span>
<a name="l05097"></a>05097 <span class="comment"> * av_bitstream_filter_init().</span>
<a name="l05098"></a>05098 <span class="comment"> *</span>
<a name="l05099"></a>05099 <span class="comment"> * @see avcodec_register_all()</span>
<a name="l05100"></a>05100 <span class="comment"> */</span>
<a name="l05101"></a>05101 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#ga520e0d7584b92d70e51ff0fcc3551764" title="Register a bitstream filter.">av_register_bitstream_filter</a>(<a class="code" href="structAVBitStreamFilter.html">AVBitStreamFilter</a> *bsf);
<a name="l05102"></a>05102 <span class="comment"></span>
<a name="l05103"></a>05103 <span class="comment">/**</span>
<a name="l05104"></a>05104 <span class="comment"> * Create and initialize a bitstream filter context given a bitstream</span>
<a name="l05105"></a>05105 <span class="comment"> * filter name.</span>
<a name="l05106"></a>05106 <span class="comment"> *</span>
<a name="l05107"></a>05107 <span class="comment"> * The returned context must be freed with av_bitstream_filter_close().</span>
<a name="l05108"></a>05108 <span class="comment"> *</span>
<a name="l05109"></a>05109 <span class="comment"> * @param name the name of the bitstream filter</span>
<a name="l05110"></a>05110 <span class="comment"> * @return a bitstream filter context if a matching filter was found</span>
<a name="l05111"></a>05111 <span class="comment"> * and successfully initialized, NULL otherwise</span>
<a name="l05112"></a>05112 <span class="comment"> */</span>
<a name="l05113"></a>05113 <a class="code" href="structAVBitStreamFilterContext.html">AVBitStreamFilterContext</a> *<a class="code" href="group__lavc__misc.html#ga4f87a57cd7c08c1d9b9bfe1a4bd611f3" title="Create and initialize a bitstream filter context given a bitstream filter name.">av_bitstream_filter_init</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVBitStreamFilter.html#a33c3cb51bd13060da35481655b41e4e5">name</a>);
<a name="l05114"></a>05114 <span class="comment"></span>
<a name="l05115"></a>05115 <span class="comment">/**</span>
<a name="l05116"></a>05116 <span class="comment"> * Filter bitstream.</span>
<a name="l05117"></a>05117 <span class="comment"> *</span>
<a name="l05118"></a>05118 <span class="comment"> * This function filters the buffer buf with size buf_size, and places the</span>
<a name="l05119"></a>05119 <span class="comment"> * filtered buffer in the buffer pointed to by poutbuf.</span>
<a name="l05120"></a>05120 <span class="comment"> *</span>
<a name="l05121"></a>05121 <span class="comment"> * The output buffer must be freed by the caller.</span>
<a name="l05122"></a>05122 <span class="comment"> *</span>
<a name="l05123"></a>05123 <span class="comment"> * @param bsfc bitstream filter context created by av_bitstream_filter_init()</span>
<a name="l05124"></a>05124 <span class="comment"> * @param avctx AVCodecContext accessed by the filter, may be NULL.</span>
<a name="l05125"></a>05125 <span class="comment"> * If specified, this must point to the encoder context of the</span>
<a name="l05126"></a>05126 <span class="comment"> * output stream the packet is sent to.</span>
<a name="l05127"></a>05127 <span class="comment"> * @param args arguments which specify the filter configuration, may be NULL</span>
<a name="l05128"></a>05128 <span class="comment"> * @param poutbuf pointer which is updated to point to the filtered buffer</span>
<a name="l05129"></a>05129 <span class="comment"> * @param poutbuf_size pointer which is updated to the filtered buffer size in bytes</span>
<a name="l05130"></a>05130 <span class="comment"> * @param buf buffer containing the data to filter</span>
<a name="l05131"></a>05131 <span class="comment"> * @param buf_size size in bytes of buf</span>
<a name="l05132"></a>05132 <span class="comment"> * @param keyframe set to non-zero if the buffer to filter corresponds to a key-frame packet data</span>
<a name="l05133"></a>05133 <span class="comment"> * @return >= 0 in case of success, or a negative error code in case of failure</span>
<a name="l05134"></a>05134 <span class="comment"> *</span>
<a name="l05135"></a>05135 <span class="comment"> * If the return value is positive, an output buffer is allocated and</span>
<a name="l05136"></a>05136 <span class="comment"> * is available in *poutbuf, and is distinct from the input buffer.</span>
<a name="l05137"></a>05137 <span class="comment"> *</span>
<a name="l05138"></a>05138 <span class="comment"> * If the return value is 0, the output buffer is not allocated and</span>
<a name="l05139"></a>05139 <span class="comment"> * should be considered identical to the input buffer, or in case</span>
<a name="l05140"></a>05140 <span class="comment"> * *poutbuf was set it points to the input buffer (not necessarily to</span>
<a name="l05141"></a>05141 <span class="comment"> * its starting address).</span>
<a name="l05142"></a>05142 <span class="comment"> */</span>
<a name="l05143"></a>05143 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga1ab3bf4e396f0bbc5151df6af765543d" title="Filter bitstream.">av_bitstream_filter_filter</a>(<a class="code" href="structAVBitStreamFilterContext.html">AVBitStreamFilterContext</a> *bsfc,
<a name="l05144"></a>05144 <a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *avctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *args,
<a name="l05145"></a>05145 uint8_t **poutbuf, <span class="keywordtype">int</span> *poutbuf_size,
<a name="l05146"></a>05146 <span class="keyword">const</span> uint8_t *buf, <span class="keywordtype">int</span> buf_size, <span class="keywordtype">int</span> keyframe);
<a name="l05147"></a>05147 <span class="comment"></span>
<a name="l05148"></a>05148 <span class="comment">/**</span>
<a name="l05149"></a>05149 <span class="comment"> * Release bitstream filter context.</span>
<a name="l05150"></a>05150 <span class="comment"> *</span>
<a name="l05151"></a>05151 <span class="comment"> * @param bsf the bitstream filter context created with</span>
<a name="l05152"></a>05152 <span class="comment"> * av_bitstream_filter_init(), can be NULL</span>
<a name="l05153"></a>05153 <span class="comment"> */</span>
<a name="l05154"></a>05154 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#gabee15852c201976249e89964161a44b4" title="Release bitstream filter context.">av_bitstream_filter_close</a>(<a class="code" href="structAVBitStreamFilterContext.html">AVBitStreamFilterContext</a> *bsf);
<a name="l05155"></a>05155 <span class="comment"></span>
<a name="l05156"></a>05156 <span class="comment">/**</span>
<a name="l05157"></a>05157 <span class="comment"> * If f is NULL, return the first registered bitstream filter,</span>
<a name="l05158"></a>05158 <span class="comment"> * if f is non-NULL, return the next registered bitstream filter</span>
<a name="l05159"></a>05159 <span class="comment"> * after f, or NULL if f is the last one.</span>
<a name="l05160"></a>05160 <span class="comment"> *</span>
<a name="l05161"></a>05161 <span class="comment"> * This function can be used to iterate over all registered bitstream</span>
<a name="l05162"></a>05162 <span class="comment"> * filters.</span>
<a name="l05163"></a>05163 <span class="comment"> */</span>
<a name="l05164"></a>05164 <a class="code" href="structAVBitStreamFilter.html">AVBitStreamFilter</a> *<a class="code" href="group__lavc__misc.html#ga940bf6b3f2ea61c0265e48e66545f976" title="If f is NULL, return the first registered bitstream filter, if f is non-NULL, return the next registe...">av_bitstream_filter_next</a>(<span class="keyword">const</span> <a class="code" href="structAVBitStreamFilter.html">AVBitStreamFilter</a> *f);
<a name="l05165"></a>05165
<a name="l05166"></a>05166 <span class="comment">/* memory */</span>
<a name="l05167"></a>05167 <span class="comment"></span>
<a name="l05168"></a>05168 <span class="comment">/**</span>
<a name="l05169"></a>05169 <span class="comment"> * Same behaviour av_fast_malloc but the buffer has additional</span>
<a name="l05170"></a>05170 <span class="comment"> * FF_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0.</span>
<a name="l05171"></a>05171 <span class="comment"> *</span>
<a name="l05172"></a>05172 <span class="comment"> * In addition the whole buffer will initially and after resizes</span>
<a name="l05173"></a>05173 <span class="comment"> * be 0-initialized so that no uninitialized data will ever appear.</span>
<a name="l05174"></a>05174 <span class="comment"> */</span>
<a name="l05175"></a>05175 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#ga04a23a2336412504052d5c4e0c7716ee" title="Same behaviour av_fast_malloc but the buffer has additional FF_INPUT_BUFFER_PADDING_SIZE at the end w...">av_fast_padded_malloc</a>(<span class="keywordtype">void</span> *ptr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size, <span class="keywordtype">size_t</span> min_size);
<a name="l05176"></a>05176 <span class="comment"></span>
<a name="l05177"></a>05177 <span class="comment">/**</span>
<a name="l05178"></a>05178 <span class="comment"> * Same behaviour av_fast_padded_malloc except that buffer will always</span>
<a name="l05179"></a>05179 <span class="comment"> * be 0-initialized after call.</span>
<a name="l05180"></a>05180 <span class="comment"> */</span>
<a name="l05181"></a>05181 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#gaea5550dc9271f356631f7002772158d8" title="Same behaviour av_fast_padded_malloc except that buffer will always be 0-initialized after call...">av_fast_padded_mallocz</a>(<span class="keywordtype">void</span> *ptr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> *size, <span class="keywordtype">size_t</span> min_size);
<a name="l05182"></a>05182 <span class="comment"></span>
<a name="l05183"></a>05183 <span class="comment">/**</span>
<a name="l05184"></a>05184 <span class="comment"> * Encode extradata length to a buffer. Used by xiph codecs.</span>
<a name="l05185"></a>05185 <span class="comment"> *</span>
<a name="l05186"></a>05186 <span class="comment"> * @param s buffer to write to; must be at least (v/255+1) bytes long</span>
<a name="l05187"></a>05187 <span class="comment"> * @param v size of extradata in bytes</span>
<a name="l05188"></a>05188 <span class="comment"> * @return number of bytes written to the buffer.</span>
<a name="l05189"></a>05189 <span class="comment"> */</span>
<a name="l05190"></a>05190 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga144411ccbce77847ee9ce10d7fe5361c" title="Encode extradata length to a buffer.">av_xiphlacing</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *s, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> v);
<a name="l05191"></a>05191
<a name="l05192"></a>05192 <span class="preprocessor">#if FF_API_MISSING_SAMPLE</span>
<a name="l05193"></a>05193 <span class="preprocessor"></span><span class="comment">/**</span>
<a name="l05194"></a>05194 <span class="comment"> * Log a generic warning message about a missing feature. This function is</span>
<a name="l05195"></a>05195 <span class="comment"> * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)</span>
<a name="l05196"></a>05196 <span class="comment"> * only, and would normally not be used by applications.</span>
<a name="l05197"></a>05197 <span class="comment"> * @param[in] avc a pointer to an arbitrary struct of which the first field is</span>
<a name="l05198"></a>05198 <span class="comment"> * a pointer to an AVClass struct</span>
<a name="l05199"></a>05199 <span class="comment"> * @param[in] feature string containing the name of the missing feature</span>
<a name="l05200"></a>05200 <span class="comment"> * @param[in] want_sample indicates if samples are wanted which exhibit this feature.</span>
<a name="l05201"></a>05201 <span class="comment"> * If want_sample is non-zero, additional verbage will be added to the log</span>
<a name="l05202"></a>05202 <span class="comment"> * message which tells the user how to report samples to the development</span>
<a name="l05203"></a>05203 <span class="comment"> * mailing list.</span>
<a name="l05204"></a>05204 <span class="comment"> * @deprecated Use avpriv_report_missing_feature() instead.</span>
<a name="l05205"></a>05205 <span class="comment"> */</span>
<a name="l05206"></a>05206 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l05207"></a>05207 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#ga8df73458e977b4a0f9d8e4f1eeae47f1" title="Log a generic warning message about a missing feature.">av_log_missing_feature</a>(<span class="keywordtype">void</span> *avc, <span class="keyword">const</span> <span class="keywordtype">char</span> *feature, <span class="keywordtype">int</span> want_sample);
<a name="l05208"></a>05208 <span class="comment"></span>
<a name="l05209"></a>05209 <span class="comment">/**</span>
<a name="l05210"></a>05210 <span class="comment"> * Log a generic warning message asking for a sample. This function is</span>
<a name="l05211"></a>05211 <span class="comment"> * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.)</span>
<a name="l05212"></a>05212 <span class="comment"> * only, and would normally not be used by applications.</span>
<a name="l05213"></a>05213 <span class="comment"> * @param[in] avc a pointer to an arbitrary struct of which the first field is</span>
<a name="l05214"></a>05214 <span class="comment"> * a pointer to an AVClass struct</span>
<a name="l05215"></a>05215 <span class="comment"> * @param[in] msg string containing an optional message, or NULL if no message</span>
<a name="l05216"></a>05216 <span class="comment"> * @deprecated Use avpriv_request_sample() instead.</span>
<a name="l05217"></a>05217 <span class="comment"> */</span>
<a name="l05218"></a>05218 <a class="code" href="attributes_8h.html#aa6d076561d3a9eea4729ee632652de02">attribute_deprecated</a>
<a name="l05219"></a>05219 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#ga90d24e73ca8633fc9e42c4bf2faf7923" title="Log a generic warning message asking for a sample.">av_log_ask_for_sample</a>(<span class="keywordtype">void</span> *avc, <span class="keyword">const</span> <span class="keywordtype">char</span> *msg, ...) <a class="code" href="attributes_8h.html#a4b078d4b8e02c0f452ee1dcaa7d983d3">av_printf_format</a>(2, 3);
<a name="l05220"></a>05220 <span class="preprocessor">#endif </span><span class="comment">/* FF_API_MISSING_SAMPLE */</span>
<a name="l05221"></a>05221 <span class="comment"></span>
<a name="l05222"></a>05222 <span class="comment">/**</span>
<a name="l05223"></a>05223 <span class="comment"> * Register the hardware accelerator hwaccel.</span>
<a name="l05224"></a>05224 <span class="comment"> */</span>
<a name="l05225"></a>05225 <span class="keywordtype">void</span> <a class="code" href="group__lavc__misc.html#ga1e7e3fd30164d0af5139885404fd2407" title="Register the hardware accelerator hwaccel.">av_register_hwaccel</a>(<a class="code" href="structAVHWAccel.html">AVHWAccel</a> *hwaccel);
<a name="l05226"></a>05226 <span class="comment"></span>
<a name="l05227"></a>05227 <span class="comment">/**</span>
<a name="l05228"></a>05228 <span class="comment"> * If hwaccel is NULL, returns the first registered hardware accelerator,</span>
<a name="l05229"></a>05229 <span class="comment"> * if hwaccel is non-NULL, returns the next registered hardware accelerator</span>
<a name="l05230"></a>05230 <span class="comment"> * after hwaccel, or NULL if hwaccel is the last one.</span>
<a name="l05231"></a>05231 <span class="comment"> */</span>
<a name="l05232"></a>05232 <a class="code" href="structAVHWAccel.html">AVHWAccel</a> *<a class="code" href="group__lavc__misc.html#gacd85ab0da8585474814590a81d011d5c" title="If hwaccel is NULL, returns the first registered hardware accelerator, if hwaccel is non-NULL...">av_hwaccel_next</a>(<span class="keyword">const</span> <a class="code" href="structAVHWAccel.html">AVHWAccel</a> *hwaccel);
<a name="l05233"></a>05233
<a name="l05234"></a>05234 <span class="comment"></span>
<a name="l05235"></a>05235 <span class="comment">/**</span>
<a name="l05236"></a>05236 <span class="comment"> * Lock operation used by lockmgr</span>
<a name="l05237"></a><a class="code" href="group__lavc__misc.html#ga7a013315e444069ec9630ddf3edce3f8">05237</a> <span class="comment"> */</span>
<a name="l05238"></a><a class="code" href="group__lavc__misc.html#gga7a013315e444069ec9630ddf3edce3f8a486a4a2d7a97554c2e073536c038465d">05238</a> <span class="keyword">enum</span> <a class="code" href="group__lavc__misc.html#ga7a013315e444069ec9630ddf3edce3f8" title="Lock operation used by lockmgr.">AVLockOp</a> {
<a name="l05239"></a><a class="code" href="group__lavc__misc.html#gga7a013315e444069ec9630ddf3edce3f8af684bbd8575f2686f42346f5e43be673">05239</a> <a class="code" href="group__lavc__misc.html#gga7a013315e444069ec9630ddf3edce3f8a486a4a2d7a97554c2e073536c038465d" title="Create a mutex.">AV_LOCK_CREATE</a>, <span class="comment">///< Create a mutex</span>
<a name="l05240"></a><a class="code" href="group__lavc__misc.html#gga7a013315e444069ec9630ddf3edce3f8a7c470cd815cdef3b16a977e9a8c89c69">05240</a> <span class="comment"></span> <a class="code" href="group__lavc__misc.html#gga7a013315e444069ec9630ddf3edce3f8af684bbd8575f2686f42346f5e43be673" title="Lock the mutex.">AV_LOCK_OBTAIN</a>, <span class="comment">///< Lock the mutex</span>
<a name="l05241"></a><a class="code" href="group__lavc__misc.html#gga7a013315e444069ec9630ddf3edce3f8aee9ae55e2efe16565998e473c2a18935">05241</a> <span class="comment"></span> <a class="code" href="group__lavc__misc.html#gga7a013315e444069ec9630ddf3edce3f8a7c470cd815cdef3b16a977e9a8c89c69" title="Unlock the mutex.">AV_LOCK_RELEASE</a>, <span class="comment">///< Unlock the mutex</span>
<a name="l05242"></a>05242 <span class="comment"></span> <a class="code" href="group__lavc__misc.html#gga7a013315e444069ec9630ddf3edce3f8aee9ae55e2efe16565998e473c2a18935" title="Free mutex resources.">AV_LOCK_DESTROY</a>, <span class="comment">///< Free mutex resources</span>
<a name="l05243"></a>05243 <span class="comment"></span>};
<a name="l05244"></a>05244 <span class="comment"></span>
<a name="l05245"></a>05245 <span class="comment">/**</span>
<a name="l05246"></a>05246 <span class="comment"> * Register a user provided lock manager supporting the operations</span>
<a name="l05247"></a>05247 <span class="comment"> * specified by AVLockOp. The "mutex" argument to the function points</span>
<a name="l05248"></a>05248 <span class="comment"> * to a (void *) where the lockmgr should store/get a pointer to a user</span>
<a name="l05249"></a>05249 <span class="comment"> * allocated mutex. It is NULL upon AV_LOCK_CREATE and equal to the</span>
<a name="l05250"></a>05250 <span class="comment"> * value left by the last call for all other ops. If the lock manager is</span>
<a name="l05251"></a>05251 <span class="comment"> * unable to perform the op then it should leave the mutex in the same</span>
<a name="l05252"></a>05252 <span class="comment"> * state as when it was called and return a non-zero value. However,</span>
<a name="l05253"></a>05253 <span class="comment"> * when called with AV_LOCK_DESTROY the mutex will always be assumed to</span>
<a name="l05254"></a>05254 <span class="comment"> * have been successfully destroyed. If av_lockmgr_register succeeds</span>
<a name="l05255"></a>05255 <span class="comment"> * it will return a non-negative value, if it fails it will return a</span>
<a name="l05256"></a>05256 <span class="comment"> * negative value and destroy all mutex and unregister all callbacks.</span>
<a name="l05257"></a>05257 <span class="comment"> * av_lockmgr_register is not thread-safe, it must be called from a</span>
<a name="l05258"></a>05258 <span class="comment"> * single thread before any calls which make use of locking are used.</span>
<a name="l05259"></a>05259 <span class="comment"> *</span>
<a name="l05260"></a>05260 <span class="comment"> * @param cb User defined callback. av_lockmgr_register invokes calls</span>
<a name="l05261"></a>05261 <span class="comment"> * to this callback and the previously registered callback.</span>
<a name="l05262"></a>05262 <span class="comment"> * The callback will be used to create more than one mutex</span>
<a name="l05263"></a>05263 <span class="comment"> * each of which must be backed by its own underlying locking</span>
<a name="l05264"></a>05264 <span class="comment"> * mechanism (i.e. do not use a single static object to</span>
<a name="l05265"></a>05265 <span class="comment"> * implement your lock manager). If cb is set to NULL the</span>
<a name="l05266"></a>05266 <span class="comment"> * lockmgr will be unregistered.</span>
<a name="l05267"></a>05267 <span class="comment"> */</span>
<a name="l05268"></a>05268 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#gae120ec60cdf49cf0f793eff3ec731bcc" title="Register a user provided lock manager supporting the operations specified by AVLockOp.">av_lockmgr_register</a>(<span class="keywordtype">int</span> (*cb)(<span class="keywordtype">void</span> **mutex, <span class="keyword">enum</span> <a class="code" href="group__lavc__misc.html#ga7a013315e444069ec9630ddf3edce3f8" title="Lock operation used by lockmgr.">AVLockOp</a> op));
<a name="l05269"></a>05269 <span class="comment"></span>
<a name="l05270"></a>05270 <span class="comment">/**</span>
<a name="l05271"></a>05271 <span class="comment"> * Get the type of the given codec.</span>
<a name="l05272"></a>05272 <span class="comment"> */</span>
<a name="l05273"></a>05273 <span class="keyword">enum</span> <a class="code" href="group__lavu__misc.html#ga9a84bba4713dfced21a1a56163be1f48">AVMediaType</a> <a class="code" href="group__lavc__misc.html#ga9680ab906f1206deafc521ed54927375" title="Get the type of the given codec.">avcodec_get_type</a>(<span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> codec_id);
<a name="l05274"></a>05274 <span class="comment"></span>
<a name="l05275"></a>05275 <span class="comment">/**</span>
<a name="l05276"></a>05276 <span class="comment"> * Get the name of a codec.</span>
<a name="l05277"></a>05277 <span class="comment"> * @return a static string identifying the codec; never NULL</span>
<a name="l05278"></a>05278 <span class="comment"> */</span>
<a name="l05279"></a>05279 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__lavc__misc.html#ga2016a52e94f867ebe5113bdf448e182d" title="Get the name of a codec.">avcodec_get_name</a>(<span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <span class="keywordtype">id</span>);
<a name="l05280"></a>05280 <span class="comment"></span>
<a name="l05281"></a>05281 <span class="comment">/**</span>
<a name="l05282"></a>05282 <span class="comment"> * @return a positive value if s is open (i.e. avcodec_open2() was called on it</span>
<a name="l05283"></a>05283 <span class="comment"> * with no corresponding avcodec_close()), 0 otherwise.</span>
<a name="l05284"></a>05284 <span class="comment"> */</span>
<a name="l05285"></a>05285 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga906dda732e79eac12067c6d7ea19b630">avcodec_is_open</a>(<a class="code" href="structAVCodecContext.html" title="main external API structure.">AVCodecContext</a> *s);
<a name="l05286"></a>05286 <span class="comment"></span>
<a name="l05287"></a>05287 <span class="comment">/**</span>
<a name="l05288"></a>05288 <span class="comment"> * @return a non-zero number if codec is an encoder, zero otherwise</span>
<a name="l05289"></a>05289 <span class="comment"> */</span>
<a name="l05290"></a>05290 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga2b665824e4d9144f8d4f6c01e3e85aa3">av_codec_is_encoder</a>(<span class="keyword">const</span> <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec);
<a name="l05291"></a>05291 <span class="comment"></span>
<a name="l05292"></a>05292 <span class="comment">/**</span>
<a name="l05293"></a>05293 <span class="comment"> * @return a non-zero number if codec is a decoder, zero otherwise</span>
<a name="l05294"></a>05294 <span class="comment"> */</span>
<a name="l05295"></a>05295 <span class="keywordtype">int</span> <a class="code" href="group__lavc__misc.html#ga6dc18eef1afca3610644a52565cf8a31">av_codec_is_decoder</a>(<span class="keyword">const</span> <a class="code" href="structAVCodec.html" title="AVCodec.">AVCodec</a> *codec);
<a name="l05296"></a>05296 <span class="comment"></span>
<a name="l05297"></a>05297 <span class="comment">/**</span>
<a name="l05298"></a>05298 <span class="comment"> * @return descriptor for given codec ID or NULL if no descriptor exists.</span>
<a name="l05299"></a>05299 <span class="comment"> */</span>
<a name="l05300"></a>05300 <span class="keyword">const</span> <a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a> *<a class="code" href="group__lavc__misc.html#gac09f8ddc2d4b36c5a85c6befba0d0888">avcodec_descriptor_get</a>(<span class="keyword">enum</span> <a class="code" href="group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce" title="Identify the syntax and semantics of the bitstream.">AVCodecID</a> <span class="keywordtype">id</span>);
<a name="l05301"></a>05301 <span class="comment"></span>
<a name="l05302"></a>05302 <span class="comment">/**</span>
<a name="l05303"></a>05303 <span class="comment"> * Iterate over all codec descriptors known to libavcodec.</span>
<a name="l05304"></a>05304 <span class="comment"> *</span>
<a name="l05305"></a>05305 <span class="comment"> * @param prev previous descriptor. NULL to get the first descriptor.</span>
<a name="l05306"></a>05306 <span class="comment"> *</span>
<a name="l05307"></a>05307 <span class="comment"> * @return next descriptor or NULL after the last descriptor</span>
<a name="l05308"></a>05308 <span class="comment"> */</span>
<a name="l05309"></a>05309 <span class="keyword">const</span> <a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a> *<a class="code" href="group__lavc__misc.html#ga909ef5261eafb1be1871f718353632bd" title="Iterate over all codec descriptors known to libavcodec.">avcodec_descriptor_next</a>(<span class="keyword">const</span> <a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a> *prev);
<a name="l05310"></a>05310 <span class="comment"></span>
<a name="l05311"></a>05311 <span class="comment">/**</span>
<a name="l05312"></a>05312 <span class="comment"> * @return codec descriptor with the given name or NULL if no such descriptor</span>
<a name="l05313"></a>05313 <span class="comment"> * exists.</span>
<a name="l05314"></a>05314 <span class="comment"> */</span>
<a name="l05315"></a>05315 <span class="keyword">const</span> <a class="code" href="structAVCodecDescriptor.html" title="This struct describes the properties of a single codec described by an AVCodecID.">AVCodecDescriptor</a> *<a class="code" href="group__lavc__misc.html#ga199f854b030f24bd31d251f9d36f1392">avcodec_descriptor_get_by_name</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structAVBitStreamFilter.html#a33c3cb51bd13060da35481655b41e4e5">name</a>);
<a name="l05316"></a>05316 <span class="comment"></span>
<a name="l05317"></a>05317 <span class="comment">/**</span>
<a name="l05318"></a>05318 <span class="comment"> * @}</span>
<a name="l05319"></a>05319 <span class="comment"> */</span>
<a name="l05320"></a>05320
<a name="l05321"></a>05321 <span class="preprocessor">#endif </span><span class="comment">/* AVCODEC_AVCODEC_H */</span>
</pre></div></div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<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.7.6.1
</small></address>
</body>
</html>