<!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: VAEncryptionSegmentInfo Struct Reference</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>
<!-- 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><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structVAEncryptionSegmentInfo-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">VAEncryptionSegmentInfo Struct Reference<div class="ingroups"><a class="el" href="group__api__core.html">Core API</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>structure for encrypted segment info.  
 <a href="structVAEncryptionSegmentInfo.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="va_8h_source.html">va.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:abfece18c420e4eaed9034eff1c013e46"><td class="memItemLeft" align="right" valign="top"><a id="abfece18c420e4eaed9034eff1c013e46"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncryptionSegmentInfo.html#abfece18c420e4eaed9034eff1c013e46">segment_start_offset</a></td></tr>
<tr class="memdesc:abfece18c420e4eaed9034eff1c013e46"><td class="mdescLeft">&#160;</td><td class="mdescRight">The offset relative to the start of the bitstream input in bytes of the start of the segment. <br /></td></tr>
<tr class="separator:abfece18c420e4eaed9034eff1c013e46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10d73ebf7d60e76a1fe5e90b9eae9df3"><td class="memItemLeft" align="right" valign="top"><a id="a10d73ebf7d60e76a1fe5e90b9eae9df3"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncryptionSegmentInfo.html#a10d73ebf7d60e76a1fe5e90b9eae9df3">segment_length</a></td></tr>
<tr class="memdesc:a10d73ebf7d60e76a1fe5e90b9eae9df3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The length of the segments in bytes. <br /></td></tr>
<tr class="separator:a10d73ebf7d60e76a1fe5e90b9eae9df3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12b9165a969461ea29232d013ee92d52"><td class="memItemLeft" align="right" valign="top"><a id="a12b9165a969461ea29232d013ee92d52"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncryptionSegmentInfo.html#a12b9165a969461ea29232d013ee92d52">partial_aes_block_size</a></td></tr>
<tr class="memdesc:a12b9165a969461ea29232d013ee92d52"><td class="mdescLeft">&#160;</td><td class="mdescRight">The length in bytes of the remainder of an incomplete block from a previous segment. <br /></td></tr>
<tr class="separator:a12b9165a969461ea29232d013ee92d52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7332797e458d358fe45b247fbaaef73"><td class="memItemLeft" align="right" valign="top"><a id="aa7332797e458d358fe45b247fbaaef73"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncryptionSegmentInfo.html#aa7332797e458d358fe45b247fbaaef73">init_byte_length</a></td></tr>
<tr class="memdesc:aa7332797e458d358fe45b247fbaaef73"><td class="mdescLeft">&#160;</td><td class="mdescRight">The length in bytes of the initial clear data. <br /></td></tr>
<tr class="separator:aa7332797e458d358fe45b247fbaaef73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22d6c5b3821cc4bbeae3631635c25ea3"><td class="memItemLeft" align="right" valign="top"><a id="a22d6c5b3821cc4bbeae3631635c25ea3"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncryptionSegmentInfo.html#a22d6c5b3821cc4bbeae3631635c25ea3">aes_cbc_iv_or_ctr</a> [64]</td></tr>
<tr class="memdesc:a22d6c5b3821cc4bbeae3631635c25ea3"><td class="mdescLeft">&#160;</td><td class="mdescRight">This will be AES counter for secure decode and secure encode when numSegments equals 1, valid size is specified by <code>key_blob_size</code>. <br /></td></tr>
<tr class="separator:a22d6c5b3821cc4bbeae3631635c25ea3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4982f978b475f38391a9dfb77641930b"><td class="memItemLeft" align="right" valign="top"><a id="a4982f978b475f38391a9dfb77641930b"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVAEncryptionSegmentInfo.html#a4982f978b475f38391a9dfb77641930b">va_reserved</a> [VA_PADDING_MEDIUM]</td></tr>
<tr class="memdesc:a4982f978b475f38391a9dfb77641930b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserved bytes for future use, must be zero. <br /></td></tr>
<tr class="separator:a4982f978b475f38391a9dfb77641930b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>structure for encrypted segment info. </p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="va_8h_source.html">va.h</a></li>
</ul>
</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>
