blob: d39ed82d4f2f585f1125694105355a1f3867f383 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>VA-API: HEVC encoding API</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">VA-API
&#160;<span id="projectnumber">2.19.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle">
<div class="title">HEVC encoding API</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionVAConfigAttribValEncHEVCFeatures.html">VAConfigAttribValEncHEVCFeatures</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionVAConfigAttribValEncHEVCBlockSizes.html">VAConfigAttribValEncHEVCBlockSizes</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncSequenceParameterBufferHEVC.html">VAEncSequenceParameterBufferHEVC</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sequence parameter for HEVC encoding in main &amp; main 10 profiles. <a href="structVAEncSequenceParameterBufferHEVC.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncPictureParameterBufferHEVC.html">VAEncPictureParameterBufferHEVC</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Picture parameter for HEVC encoding in main &amp; main 10 profiles. <a href="structVAEncPictureParameterBufferHEVC.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncSliceParameterBufferHEVC.html">VAEncSliceParameterBufferHEVC</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slice parameter for HEVC encoding in main &amp; main 10 profiles. <a href="structVAEncSliceParameterBufferHEVC.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAQMatrixBufferHEVC.html">VAQMatrixBufferHEVC</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">HEVC Quantization Matrix Buffer Structure. <a href="structVAQMatrixBufferHEVC.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaa9508bfe0814259f5d2f16cae912e63f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__hevc.html#gaa9508bfe0814259f5d2f16cae912e63f">VAEncPackedHeaderTypeHEVC</a> { <br />
&#160;&#160;<a class="el" href="group__api__enc__hevc.html#ggaa9508bfe0814259f5d2f16cae912e63fab119a7672211e1ae6367d9649d0095b9">VAEncPackedHeaderHEVC_VPS</a> = VAEncPackedHeaderSequence,
<a class="el" href="group__api__enc__hevc.html#ggaa9508bfe0814259f5d2f16cae912e63fa84e49f145a8b81e25f10ac6f719e4167">VAEncPackedHeaderHEVC_SPS</a> = VAEncPackedHeaderSequence,
<a class="el" href="group__api__enc__hevc.html#ggaa9508bfe0814259f5d2f16cae912e63fa303f1fa1f91a63edd435b9efcba0f695">VAEncPackedHeaderHEVC_PPS</a> = VAEncPackedHeaderPicture,
<a class="el" href="group__api__enc__hevc.html#ggaa9508bfe0814259f5d2f16cae912e63fa1adfce789bc818954722a6852973f275">VAEncPackedHeaderHEVC_Slice</a> = VAEncPackedHeaderSlice,
<br />
&#160;&#160;<a class="el" href="group__api__enc__hevc.html#ggaa9508bfe0814259f5d2f16cae912e63fa86d498fbfde9d7a847864d6b6c67e2aa">va_deprecated_enum</a> = (0x80000000 | 1)
<br />
}<tr class="memdesc:gaa9508bfe0814259f5d2f16cae912e63f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Packed header types specific to HEVC encoding. <a href="group__api__enc__hevc.html#gaa9508bfe0814259f5d2f16cae912e63f">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gaa9508bfe0814259f5d2f16cae912e63f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Picture flags</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrpb383b258d1a87779155d9292630680c7"></a>Those flags flags are meant to signal when a picture marks the end of a sequence, a stream, or even both at once. </p>
</td></tr>
<tr class="memitem:gaade88d61138c828ffecc07074abab0c9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__hevc.html#gaade88d61138c828ffecc07074abab0c9">HEVC_LAST_PICTURE_EOSEQ</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="memdesc:gaade88d61138c828ffecc07074abab0c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the last picture in the sequence. <a href="#gaade88d61138c828ffecc07074abab0c9">More...</a><br /></td></tr>
<tr class="separator:gaade88d61138c828ffecc07074abab0c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga46667f93d28ca50593a3a9defa0d6f5f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__hevc.html#ga46667f93d28ca50593a3a9defa0d6f5f">HEVC_LAST_PICTURE_EOSTREAM</a>&#160;&#160;&#160;0x02</td></tr>
<tr class="memdesc:ga46667f93d28ca50593a3a9defa0d6f5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the last picture in the stream. <a href="#ga46667f93d28ca50593a3a9defa0d6f5f">More...</a><br /></td></tr>
<tr class="separator:ga46667f93d28ca50593a3a9defa0d6f5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gaade88d61138c828ffecc07074abab0c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaade88d61138c828ffecc07074abab0c9">&#9670;&nbsp;</a></span>HEVC_LAST_PICTURE_EOSEQ</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HEVC_LAST_PICTURE_EOSEQ&#160;&#160;&#160;0x01</td>
</tr>
</table>
</div><div class="memdoc">
<p>Marks the last picture in the sequence. </p>
<p>i.e. the driver appends <code>end_of_seq()</code> NAL unit to the encoded frame. </p>
</div>
</div>
<a id="ga46667f93d28ca50593a3a9defa0d6f5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga46667f93d28ca50593a3a9defa0d6f5f">&#9670;&nbsp;</a></span>HEVC_LAST_PICTURE_EOSTREAM</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HEVC_LAST_PICTURE_EOSTREAM&#160;&#160;&#160;0x02</td>
</tr>
</table>
</div><div class="memdoc">
<p>Marks the last picture in the stream. </p>
<p>i.e. the driver appends <code>end_of_stream()</code> NAL unit to the encoded frame. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaa9508bfe0814259f5d2f16cae912e63f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa9508bfe0814259f5d2f16cae912e63f">&#9670;&nbsp;</a></span>VAEncPackedHeaderTypeHEVC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__api__enc__hevc.html#gaa9508bfe0814259f5d2f16cae912e63f">VAEncPackedHeaderTypeHEVC</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Packed header types specific to HEVC encoding. </p>
<p>Types of packed headers generally used for HEVC encoding. Each associated packed header data buffer shall contain the start code prefix 0x000001 followed by the complete NAL unit, thus also including the <code>nal_unit_type</code>.</p>
<p>Note: the start code prefix can contain an arbitrary number of leading zeros. The driver will skip them for emulation prevention bytes insertion, if necessary. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaa9508bfe0814259f5d2f16cae912e63fab119a7672211e1ae6367d9649d0095b9"></a>VAEncPackedHeaderHEVC_VPS&#160;</td><td class="fielddoc"><p>Packed Video Parameter Set (VPS). </p>
<p>The corresponding packed header data buffer shall contain the complete video_parameter_set_rbsp() syntax element.</p>
<p>Note: packed <code>nal_unit_type</code> shall be equal to 32. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa9508bfe0814259f5d2f16cae912e63fa84e49f145a8b81e25f10ac6f719e4167"></a>VAEncPackedHeaderHEVC_SPS&#160;</td><td class="fielddoc"><p>Packed Sequence Parameter Set (SPS). </p>
<p>The corresponding packed header data buffer shall contain the complete seq_parameter_set_rbsp() syntax element.</p>
<p>Note: packed <code>nal_unit_type</code> shall be equal to 33. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa9508bfe0814259f5d2f16cae912e63fa303f1fa1f91a63edd435b9efcba0f695"></a>VAEncPackedHeaderHEVC_PPS&#160;</td><td class="fielddoc"><p>Packed Picture Parameter Set (PPS). </p>
<p>The corresponding packed header data buffer shall contain the complete pic_parameter_set_rbsp() syntax element.</p>
<p>Note: packed <code>nal_unit_type</code> shall be equal to 34. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa9508bfe0814259f5d2f16cae912e63fa1adfce789bc818954722a6852973f275"></a>VAEncPackedHeaderHEVC_Slice&#160;</td><td class="fielddoc"><p>Packed slice header. </p>
<p>The corresponding packed header data buffer shall contain the <code>slice_header()</code> syntax element only, along with any start code prefix and NAL unit type preceeding it. i.e. this means that the buffer does not contain any of the <code>slice_data()</code> or the <code>rbsp_slice_trailing_bits()</code>.</p>
<p>Note: packed <code>nal_unit_type</code> shall be equal to 0 to 9 (non-IRAP picture), or 16 to 21 (IRAP picture). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaa9508bfe0814259f5d2f16cae912e63fa86d498fbfde9d7a847864d6b6c67e2aa"></a>va_deprecated_enum&#160;</td><td class="fielddoc"><p>Packed Supplemental Enhancement Information (SEI). </p>
<p>The corresponding packed header data buffer shall contain the complete sei_rbsp() syntax element, thus including several sei_message() elements if necessary.</p>
<p>Note: packed <code>nal_unit_type</code> shall be equal to 39 or 40.</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000008">Deprecated:</a></b></dt><dd>This is a deprecated packed header flag, All applications can use <code>VA_ENC_PACKED_HEADER_RAW_DATA</code> to pass the corresponding packed SEI header data buffer to the driver </dd></dl>
</td></tr>
</table>
</div>
</div>
</div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated for VA-API by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13</small></address>
</body>
</html>