blob: 406d065ff233b24862da9d55acc44c1074d8f207 [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: H.264 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">H.264 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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncSequenceParameterBufferH264.html">VAEncSequenceParameterBufferH264</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sequence parameter for H.264 encoding in baseline, main &amp; high profiles. <a href="structVAEncSequenceParameterBufferH264.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="structVAEncPictureParameterBufferH264.html">VAEncPictureParameterBufferH264</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Picture parameter for H.264 encoding in baseline, main &amp; high profiles. <a href="structVAEncPictureParameterBufferH264.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="structVAEncSliceParameterBufferH264.html">VAEncSliceParameterBufferH264</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slice parameter for H.264 encoding in baseline, main &amp; high profiles. <a href="structVAEncSliceParameterBufferH264.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="structVAEncMacroblockParameterBufferH264.html">VAEncMacroblockParameterBufferH264</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macroblock parameter for H.264 encoding in baseline, main &amp; high profiles. <a href="structVAEncMacroblockParameterBufferH264.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="structVAEncMiscParameterSubMbPartPelH264.html">VAEncMiscParameterSubMbPartPelH264</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">MB partition modes and 1/2 1/4 motion search configuration. <a href="structVAEncMiscParameterSubMbPartPelH264.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:ga9cf3cb8a709849fd74f1993382dbc4a0"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__h264.html#ga9cf3cb8a709849fd74f1993382dbc4a0">VAEncPackedHeaderTypeH264</a> { <a class="el" href="group__api__enc__h264.html#gga9cf3cb8a709849fd74f1993382dbc4a0a03818a80cfed909983ea8cf3238645d1">VAEncPackedHeaderH264_SPS</a> = VAEncPackedHeaderSequence,
<a class="el" href="group__api__enc__h264.html#gga9cf3cb8a709849fd74f1993382dbc4a0a878ffc2a39adce02ab47d38c45bf362f">VAEncPackedHeaderH264_PPS</a> = VAEncPackedHeaderPicture,
<a class="el" href="group__api__enc__h264.html#gga9cf3cb8a709849fd74f1993382dbc4a0a0c4ced3030342ca31d034644cfff7569">VAEncPackedHeaderH264_Slice</a> = VAEncPackedHeaderSlice,
<a class="el" href="group__api__enc__h264.html#gga9cf3cb8a709849fd74f1993382dbc4a0a86d498fbfde9d7a847864d6b6c67e2aa">va_deprecated_enum</a> = (0x80000000 | 1)
}<tr class="memdesc:ga9cf3cb8a709849fd74f1993382dbc4a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Packed header types specific to H.264 encoding. <a href="group__api__enc__h264.html#ga9cf3cb8a709849fd74f1993382dbc4a0">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga9cf3cb8a709849fd74f1993382dbc4a0"><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:gaea79b28e489a57a0202bada8f50f0886"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__h264.html#gaea79b28e489a57a0202bada8f50f0886">H264_LAST_PICTURE_EOSEQ</a>&#160;&#160;&#160;0x01</td></tr>
<tr class="memdesc:gaea79b28e489a57a0202bada8f50f0886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the last picture in the sequence. <a href="#gaea79b28e489a57a0202bada8f50f0886">More...</a><br /></td></tr>
<tr class="separator:gaea79b28e489a57a0202bada8f50f0886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6995267dffd438e4cce680c98d10286f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__h264.html#ga6995267dffd438e4cce680c98d10286f">H264_LAST_PICTURE_EOSTREAM</a>&#160;&#160;&#160;0x02</td></tr>
<tr class="memdesc:ga6995267dffd438e4cce680c98d10286f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the last picture in the stream. <a href="#ga6995267dffd438e4cce680c98d10286f">More...</a><br /></td></tr>
<tr class="separator:ga6995267dffd438e4cce680c98d10286f"><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>
Macroblock neighbour availability bits</h2></td></tr>
<tr><td class="ititle" colspan="2"><p><a class="anchor" id="amgrp599edbee58518002374473cb9260383b"></a><a class="anchor" id="api_enc_h264_mb_pred_avail_bits"></a>Definitions for macroblock neighbour availability bits used in intra prediction mode (non MBAFF only). </p>
</td></tr>
<tr class="memitem:gaf9f5f91e658bde6c3f9abb3b0fe39125"><td class="memItemLeft" align="right" valign="top"><a id="gaf9f5f91e658bde6c3f9abb3b0fe39125"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__h264.html#gaf9f5f91e658bde6c3f9abb3b0fe39125">VA_MB_PRED_AVAIL_TOP_LEFT</a>&#160;&#160;&#160;(1 &lt;&lt; 2)</td></tr>
<tr class="memdesc:gaf9f5f91e658bde6c3f9abb3b0fe39125"><td class="mdescLeft">&#160;</td><td class="mdescRight">References macroblock in the top-left corner. <br /></td></tr>
<tr class="separator:gaf9f5f91e658bde6c3f9abb3b0fe39125"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga147e8575387396de9ee9df45a6264772"><td class="memItemLeft" align="right" valign="top"><a id="ga147e8575387396de9ee9df45a6264772"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__h264.html#ga147e8575387396de9ee9df45a6264772">VA_MB_PRED_AVAIL_TOP</a>&#160;&#160;&#160;(1 &lt;&lt; 4)</td></tr>
<tr class="memdesc:ga147e8575387396de9ee9df45a6264772"><td class="mdescLeft">&#160;</td><td class="mdescRight">References macroblock above the current macroblock. <br /></td></tr>
<tr class="separator:ga147e8575387396de9ee9df45a6264772"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf03073fdf6eacc5cfa1a5ed7d9a55ca5"><td class="memItemLeft" align="right" valign="top"><a id="gaf03073fdf6eacc5cfa1a5ed7d9a55ca5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__h264.html#gaf03073fdf6eacc5cfa1a5ed7d9a55ca5">VA_MB_PRED_AVAIL_TOP_RIGHT</a>&#160;&#160;&#160;(1 &lt;&lt; 3)</td></tr>
<tr class="memdesc:gaf03073fdf6eacc5cfa1a5ed7d9a55ca5"><td class="mdescLeft">&#160;</td><td class="mdescRight">References macroblock in the top-right corner. <br /></td></tr>
<tr class="separator:gaf03073fdf6eacc5cfa1a5ed7d9a55ca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b7d7f38ac1007370e62a62ba644ab36"><td class="memItemLeft" align="right" valign="top"><a id="ga0b7d7f38ac1007370e62a62ba644ab36"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api__enc__h264.html#ga0b7d7f38ac1007370e62a62ba644ab36">VA_MB_PRED_AVAIL_LEFT</a>&#160;&#160;&#160;(1 &lt;&lt; 6)</td></tr>
<tr class="memdesc:ga0b7d7f38ac1007370e62a62ba644ab36"><td class="mdescLeft">&#160;</td><td class="mdescRight">References macroblock on the left of the current macroblock. <br /></td></tr>
<tr class="separator:ga0b7d7f38ac1007370e62a62ba644ab36"><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="gaea79b28e489a57a0202bada8f50f0886"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaea79b28e489a57a0202bada8f50f0886">&#9670;&nbsp;</a></span>H264_LAST_PICTURE_EOSEQ</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define H264_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="ga6995267dffd438e4cce680c98d10286f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6995267dffd438e4cce680c98d10286f">&#9670;&nbsp;</a></span>H264_LAST_PICTURE_EOSTREAM</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define H264_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="ga9cf3cb8a709849fd74f1993382dbc4a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9cf3cb8a709849fd74f1993382dbc4a0">&#9670;&nbsp;</a></span>VAEncPackedHeaderTypeH264</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__api__enc__h264.html#ga9cf3cb8a709849fd74f1993382dbc4a0">VAEncPackedHeaderTypeH264</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Packed header types specific to H.264 encoding. </p>
<p>Types of packed headers generally used for H.264 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="gga9cf3cb8a709849fd74f1993382dbc4a0a03818a80cfed909983ea8cf3238645d1"></a>VAEncPackedHeaderH264_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 7. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9cf3cb8a709849fd74f1993382dbc4a0a878ffc2a39adce02ab47d38c45bf362f"></a>VAEncPackedHeaderH264_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 8. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9cf3cb8a709849fd74f1993382dbc4a0a0c4ced3030342ca31d034644cfff7569"></a>VAEncPackedHeaderH264_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 1 (non-IDR picture), or 5 (IDR picture). </p>
</td></tr>
<tr><td class="fieldname"><a id="gga9cf3cb8a709849fd74f1993382dbc4a0a86d498fbfde9d7a847864d6b6c67e2aa"></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 6.</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000007">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>