Files
libaaruformat/docs/html/structDataStreamPayloadHeader.html

303 lines
17 KiB
HTML
Raw Permalink Normal View History

2026-01-04 16:05:30 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.15.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libaaruformat: DataStreamPayloadHeader 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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="cookie.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 id="projectrow">
<td id="projectalign">
<div id="projectname">libaaruformat<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">Aaru Data Preservation Suite - Format Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.15.0 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search/",'.html');
</script>
<script type="text/javascript">
$(function() { codefold.init(); });
</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',true);
$(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(function(){initNavTree('structDataStreamPayloadHeader.html','',''); });
</script>
<div id="container">
<div id="doc-content">
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">DataStreamPayloadHeader Struct Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Header structure for a DataStreamPayloadBlock containing data stream payload.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="flux_8h_source.html">aaruformat/structs/flux.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-pub-attribs" class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:aade6939bd84d33e4869785d7d412d3c7" id="r_aade6939bd84d33e4869785d7d412d3c7"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aade6939bd84d33e4869785d7d412d3c7">identifier</a></td></tr>
<tr class="memdesc:aade6939bd84d33e4869785d7d412d3c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Block identifier, must be BlockType::DataStreamPayloadBlock (0x4C505344, "DSPL"). <br /></td></tr>
<tr class="memitem:a1b7498a80a254f1203bb8705221261f8" id="r_a1b7498a80a254f1203bb8705221261f8"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1b7498a80a254f1203bb8705221261f8">dataType</a></td></tr>
<tr class="memdesc:a1b7498a80a254f1203bb8705221261f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data type classification (value from <a class="el" href="enums_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>), e.g., FluxData or BitstreamData. <br /></td></tr>
<tr class="memitem:acb6524ee97c11cbd9934dddcf791478a" id="r_acb6524ee97c11cbd9934dddcf791478a"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acb6524ee97c11cbd9934dddcf791478a">compression</a></td></tr>
<tr class="memdesc:acb6524ee97c11cbd9934dddcf791478a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compression type: 0 = None, 1 = Lzma. <br /></td></tr>
<tr class="memitem:a55c9590fb1c3d87a9cce3b389826c1a5" id="r_a55c9590fb1c3d87a9cce3b389826c1a5"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a55c9590fb1c3d87a9cce3b389826c1a5">cmpLength</a></td></tr>
<tr class="memdesc:a55c9590fb1c3d87a9cce3b389826c1a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compressed length in bytes (includes LZMA properties if compression = Lzma). <br /></td></tr>
<tr class="memitem:ad36cd6ef72854188450049c99b731273" id="r_ad36cd6ef72854188450049c99b731273"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad36cd6ef72854188450049c99b731273">length</a></td></tr>
<tr class="memdesc:ad36cd6ef72854188450049c99b731273"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uncompressed length in bytes. <br /></td></tr>
<tr class="memitem:a6b72345551c540a0c36c971f4374eb0e" id="r_a6b72345551c540a0c36c971f4374eb0e"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6b72345551c540a0c36c971f4374eb0e">cmpCrc64</a></td></tr>
<tr class="memdesc:a6b72345551c540a0c36c971f4374eb0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC64-ECMA checksum of the compressed payload (or same as crc64 if uncompressed). <br /></td></tr>
<tr class="memitem:aea3724bf5786add9715363dbc67671a8" id="r_aea3724bf5786add9715363dbc67671a8"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aea3724bf5786add9715363dbc67671a8">crc64</a></td></tr>
<tr class="memdesc:aea3724bf5786add9715363dbc67671a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">CRC64-ECMA checksum of the uncompressed payload. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Header structure for a DataStreamPayloadBlock containing data stream payload. </p>
<p>This structure is the header of a DataStreamPayloadBlock, which contains a generic compressed data stream payload. The payload data immediately follows this header and may be compressed using LZMA compression. Currently used for flux capture data, but can be used for other data streams such as bitstreams or PNG data.</p>
<p><b>Data Type:</b> The dataType field identifies the type of data stored in the payload. Common values include:</p><ul>
<li>FluxData: Flux capture data (data and index buffers)</li>
<li>BitstreamData: Bitstream data This field enables the block to be self-describing and allows validation of the payload content.</li>
</ul>
<p><b>Compression:</b> The compression field indicates whether the payload is compressed:</p><ul>
<li>0 (None): Payload is stored uncompressed</li>
<li>1 (Lzma): Payload is compressed using LZMA, with LZMA properties stored in the first 5 bytes of the compressed data</li>
</ul>
<p><b><a class="el" href="structChecksums.html" title="Collected wholeimage checksums / hashes present in a checksum block.">Checksums</a>:</b> Two CRC64 checksums are stored:</p><ul>
<li>cmpCrc64: Checksum of the compressed payload (or same as crc64 if uncompressed)</li>
<li>crc64: Checksum of the uncompressed payload</li>
</ul>
<p>Both checksums are validated when reading the payload to ensure data integrity.</p>
<p><b>Payload Layout:</b> The uncompressed payload is an arbitrary stream of binary data. For flux captures, this consists of concatenated data and index buffers: [data_buffer][index_buffer], with the indexOffset from the corresponding <a class="el" href="structFluxEntry.html" title="Metadata entry describing a single flux capture in the FluxDataBlock.">FluxEntry</a> indicating where the index buffer starts. For other data types, the layout is specific to the data type.</p>
<dl class="section note"><dt>Note</dt><dd>The identifier field must match BlockType::DataStreamPayloadBlock (0x4C505344, "DSPL"). </dd>
<dd>
If compression is Lzma, cmpLength includes the 5-byte LZMA properties header. </dd></dl>
<p class="definition">Definition at line <a class="el" href="flux_8h_source.html#l00242">242</a> of file <a class="el" href="flux_8h_source.html">flux.h</a>.</p>
</div><a name="doc-variable-members" id="doc-variable-members"></a><h2 id="header-doc-variable-members" class="groupheader">Field Documentation</h2>
<a id="a6b72345551c540a0c36c971f4374eb0e" name="a6b72345551c540a0c36c971f4374eb0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6b72345551c540a0c36c971f4374eb0e">&#9670;&#160;</a></span>cmpCrc64</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t DataStreamPayloadHeader::cmpCrc64</td>
</tr>
</table>
</div><div class="memdoc">
<p>CRC64-ECMA checksum of the compressed payload (or same as crc64 if uncompressed). </p>
<p class="definition">Definition at line <a class="el" href="flux_8h_source.html#l00249">249</a> of file <a class="el" href="flux_8h_source.html">flux.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="flux_8c_source.html#l01201">aaruf_read_flux_capture()</a>, and <a class="el" href="close_8c_source.html#l04371">write_flux_capture_payload()</a>.</p>
</div>
</div>
<a id="a55c9590fb1c3d87a9cce3b389826c1a5" name="a55c9590fb1c3d87a9cce3b389826c1a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55c9590fb1c3d87a9cce3b389826c1a5">&#9670;&#160;</a></span>cmpLength</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t DataStreamPayloadHeader::cmpLength</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compressed length in bytes (includes LZMA properties if compression = Lzma). </p>
<p class="definition">Definition at line <a class="el" href="flux_8h_source.html#l00247">247</a> of file <a class="el" href="flux_8h_source.html">flux.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="flux_8c_source.html#l01201">aaruf_read_flux_capture()</a>, and <a class="el" href="close_8c_source.html#l04371">write_flux_capture_payload()</a>.</p>
</div>
</div>
<a id="acb6524ee97c11cbd9934dddcf791478a" name="acb6524ee97c11cbd9934dddcf791478a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb6524ee97c11cbd9934dddcf791478a">&#9670;&#160;</a></span>compression</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t DataStreamPayloadHeader::compression</td>
</tr>
</table>
</div><div class="memdoc">
<p>Compression type: 0 = None, 1 = Lzma. </p>
<p class="definition">Definition at line <a class="el" href="flux_8h_source.html#l00246">246</a> of file <a class="el" href="flux_8h_source.html">flux.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="flux_8c_source.html#l01201">aaruf_read_flux_capture()</a>, and <a class="el" href="close_8c_source.html#l04371">write_flux_capture_payload()</a>.</p>
</div>
</div>
<a id="aea3724bf5786add9715363dbc67671a8" name="aea3724bf5786add9715363dbc67671a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea3724bf5786add9715363dbc67671a8">&#9670;&#160;</a></span>crc64</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint64_t DataStreamPayloadHeader::crc64</td>
</tr>
</table>
</div><div class="memdoc">
<p>CRC64-ECMA checksum of the uncompressed payload. </p>
<p class="definition">Definition at line <a class="el" href="flux_8h_source.html#l00250">250</a> of file <a class="el" href="flux_8h_source.html">flux.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="flux_8c_source.html#l01201">aaruf_read_flux_capture()</a>, and <a class="el" href="close_8c_source.html#l04371">write_flux_capture_payload()</a>.</p>
</div>
</div>
<a id="a1b7498a80a254f1203bb8705221261f8" name="a1b7498a80a254f1203bb8705221261f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b7498a80a254f1203bb8705221261f8">&#9670;&#160;</a></span>dataType</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t DataStreamPayloadHeader::dataType</td>
</tr>
</table>
</div><div class="memdoc">
<p>Data type classification (value from <a class="el" href="enums_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6">DataType</a>), e.g., FluxData or BitstreamData. </p>
<p class="definition">Definition at line <a class="el" href="flux_8h_source.html#l00245">245</a> of file <a class="el" href="flux_8h_source.html">flux.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="flux_8c_source.html#l00865">read_flux_payload_header()</a>, and <a class="el" href="close_8c_source.html#l04371">write_flux_capture_payload()</a>.</p>
</div>
</div>
<a id="aade6939bd84d33e4869785d7d412d3c7" name="aade6939bd84d33e4869785d7d412d3c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aade6939bd84d33e4869785d7d412d3c7">&#9670;&#160;</a></span>identifier</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t DataStreamPayloadHeader::identifier</td>
</tr>
</table>
</div><div class="memdoc">
<p>Block identifier, must be BlockType::DataStreamPayloadBlock (0x4C505344, "DSPL"). </p>
<p class="definition">Definition at line <a class="el" href="flux_8h_source.html#l00244">244</a> of file <a class="el" href="flux_8h_source.html">flux.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="flux_8c_source.html#l00865">read_flux_payload_header()</a>, and <a class="el" href="close_8c_source.html#l04371">write_flux_capture_payload()</a>.</p>
</div>
</div>
<a id="ad36cd6ef72854188450049c99b731273" name="ad36cd6ef72854188450049c99b731273"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad36cd6ef72854188450049c99b731273">&#9670;&#160;</a></span>length</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t DataStreamPayloadHeader::length</td>
</tr>
</table>
</div><div class="memdoc">
<p>Uncompressed length in bytes. </p>
<p class="definition">Definition at line <a class="el" href="flux_8h_source.html#l00248">248</a> of file <a class="el" href="flux_8h_source.html">flux.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="flux_8c_source.html#l01201">aaruf_read_flux_capture()</a>, and <a class="el" href="close_8c_source.html#l04371">write_flux_capture_payload()</a>.</p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>include/aaruformat/structs/<a class="el" href="flux_8h_source.html">flux.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="structDataStreamPayloadHeader.html">DataStreamPayloadHeader</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.15.0 </li>
</ul>
</div>
</body>
</html>