Files
libaaruformat/docs/html/consts_8h.html

439 lines
32 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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.14.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libaaruformat: include/aaruformat/consts.h File 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.14.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('consts_8h.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">consts.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Core public constants and compiletime limits for the Aaru container format implementation.
<a href="#details">More...</a></p>
<p><a href="consts_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-define-members" class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a13ba7a163f45ee45c977d63c408539ca" id="r_a13ba7a163f45ee45c977d63c408539ca"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a13ba7a163f45ee45c977d63c408539ca">DIC_MAGIC</a>&#160;&#160;&#160;0x544D52464D434944ULL</td></tr>
<tr class="memdesc:a13ba7a163f45ee45c977d63c408539ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Magic identifier for legacy DiscImageChef container (ASCII "DICMFRMT"). <br /></td></tr>
<tr class="memitem:a3c3ba66fe2b547655c9e4b16a1ba519a" id="r_a3c3ba66fe2b547655c9e4b16a1ba519a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3c3ba66fe2b547655c9e4b16a1ba519a">AARU_MAGIC</a>&#160;&#160;&#160;0x544D524655524141ULL</td></tr>
<tr class="memdesc:a3c3ba66fe2b547655c9e4b16a1ba519a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Magic identifier for AaruFormat container (ASCII "AARUFRMT"). <br /></td></tr>
<tr class="memitem:adbbd4387273589f1c76a5f5786607013" id="r_adbbd4387273589f1c76a5f5786607013"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adbbd4387273589f1c76a5f5786607013">AARUF_VERSION</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:adbbd4387273589f1c76a5f5786607013"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current image format major version (incompatible changes bump this). <br /></td></tr>
<tr class="memitem:ac837e146bff4d0f3603e4a9e444358c6" id="r_ac837e146bff4d0f3603e4a9e444358c6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac837e146bff4d0f3603e4a9e444358c6">AARUF_VERSION_V1</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ac837e146bff4d0f3603e4a9e444358c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">First ondisk version (C# implementation). <br /></td></tr>
<tr class="memitem:ad2fdced5805aa0364f1c5b073f81dd76" id="r_ad2fdced5805aa0364f1c5b073f81dd76"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad2fdced5805aa0364f1c5b073f81dd76">AARUF_VERSION_V2</a>&#160;&#160;&#160;2</td></tr>
<tr class="memdesc:ad2fdced5805aa0364f1c5b073f81dd76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Second ondisk version (C implementation). <br /></td></tr>
<tr class="memitem:a6c8469dfe973ac952cf40394bd2c160b" id="r_a6c8469dfe973ac952cf40394bd2c160b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6c8469dfe973ac952cf40394bd2c160b">MAX_CACHE_SIZE</a>&#160;&#160;&#160;536870912ULL</td></tr>
<tr class="memdesc:a6c8469dfe973ac952cf40394bd2c160b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum read cache size (bytes). <br /></td></tr>
<tr class="memitem:a25fd08252b97a0230d3efc899bddd240" id="r_a25fd08252b97a0230d3efc899bddd240"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a25fd08252b97a0230d3efc899bddd240">LZMA_PROPERTIES_LENGTH</a>&#160;&#160;&#160;5</td></tr>
<tr class="memdesc:a25fd08252b97a0230d3efc899bddd240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size in bytes of the fixed LZMA properties header (lc/lp/pb + dictionary size). <br /></td></tr>
<tr class="memitem:ac97c436bf02e6e7e7daea67d374f03cd" id="r_ac97c436bf02e6e7e7daea67d374f03cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac97c436bf02e6e7e7daea67d374f03cd">MAX_DDT_ENTRY_CACHE</a>&#160;&#160;&#160;16000000</td></tr>
<tr class="memdesc:ac97c436bf02e6e7e7daea67d374f03cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of cached DDT entry descriptors retained in memory for fast duplicate detection. <br /></td></tr>
<tr class="memitem:a44401191f17a7c09a05e57ff9e5cff24" id="r_a44401191f17a7c09a05e57ff9e5cff24"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a44401191f17a7c09a05e57ff9e5cff24">SAMPLES_PER_SECTOR</a>&#160;&#160;&#160;588</td></tr>
<tr class="memdesc:a44401191f17a7c09a05e57ff9e5cff24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Red Book (CDDA) PCM samples per 2352byte sector: 44,100 Hz / 75 sectors per second = 588 samples. <br /></td></tr>
<tr class="memitem:a207a31e861ea8e3a4f5ef52c13b42b3d" id="r_a207a31e861ea8e3a4f5ef52c13b42b3d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a207a31e861ea8e3a4f5ef52c13b42b3d">MAX_FLAKE_BLOCK</a>&#160;&#160;&#160;4608</td></tr>
<tr class="memdesc:a207a31e861ea8e3a4f5ef52c13b42b3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">FLAC maximum block size used for encoding audio sectors. <br /></td></tr>
<tr class="memitem:a3fd3617b4eb7e9548e0fd0ca8990e44a" id="r_a3fd3617b4eb7e9548e0fd0ca8990e44a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3fd3617b4eb7e9548e0fd0ca8990e44a">MIN_FLAKE_BLOCK</a>&#160;&#160;&#160;256</td></tr>
<tr class="memdesc:a3fd3617b4eb7e9548e0fd0ca8990e44a"><td class="mdescLeft">&#160;</td><td class="mdescRight">FLAC minimum block size. <br /></td></tr>
<tr class="memitem:aa64757ba31a320f675fca1062111180f" id="r_aa64757ba31a320f675fca1062111180f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa64757ba31a320f675fca1062111180f">CD_XFIX_MASK</a>&#160;&#160;&#160;0xFF000000U</td></tr>
<tr class="memdesc:aa64757ba31a320f675fca1062111180f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask for extracting correction / fix flags in Compact Disc suffix/prefix DDT entries. <br /></td></tr>
<tr class="memitem:a0b24c62ef1b78b72b9f4a42918f39e13" id="r_a0b24c62ef1b78b72b9f4a42918f39e13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0b24c62ef1b78b72b9f4a42918f39e13">CD_DFIX_MASK</a>&#160;&#160;&#160;0x00FFFFFFU</td></tr>
<tr class="memdesc:a0b24c62ef1b78b72b9f4a42918f39e13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask for extracting positional index (lower 24 bits) in Compact Disc suffix/prefix deduplicated block entries. <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Core public constants and compiletime limits for the Aaru container format implementation. </p>
<p>This header exposes magic identifiers, format version selectors, resource limits, codec parameter bounds, and bit masks used across libaaruformat. All values are immutable interface contracts; changing them breaks backward compatibility unless a new format version is declared.</p>
<p>Summary:</p><ul>
<li>Magic numbers (DIC_MAGIC, AARU_MAGIC) identify container families (legacy DiscImageChef vs AaruFormat).</li>
<li>Version macros distinguish format generations (V1 C# / legacy CRC endianness, V2 current C implementation).</li>
<li>Cache and table size limits provide protective upper bounds against runaway memory consumption.</li>
<li>Audio constants (SAMPLES_PER_SECTOR, MIN/MAX_FLAKE_BLOCK) align with Red Book (CDDA) and FLAC encoding best practices.</li>
<li>CD_* masks assist with extracting flags / positional subfields in deduplicated Compact Disc sector tables.</li>
<li>CRC64 constants implement ECMA182 polynomial and standard seed, enabling deterministic endtoend block integrity.</li>
</ul>
<p>Notes:</p><ul>
<li>Magic values are stored littleendian on disk when written as 64bit integers; when inspecting raw bytes make sure to account for host endianness.</li>
<li>AARUF_VERSION must be incremented only when an incompatible ondisk layout change is introduced.</li>
<li>MAX_DDT_ENTRY_CACHE is a soft upper bound sized to balance deduplication hit rate vs RAM; tune in future builds via configuration if adaptive heuristics are introduced.</li>
<li>The LZMA properties length (5) derives from the standard LZMA header (lc/lp/pb + dict size) and is constant for raw LZMA streams used here.</li>
<li>FLAC sample block guidance: empirical evaluation shows &gt;4608 samples per block does not yield meaningful ratio gains for typical optical audio captures while increasing decode buffer size.</li>
</ul>
<p>Thread safety: All macros are compiletime constants; no synchronization required. Portability: Constants chosen to fit within 64bit targets; arithmetic assumes two's complement. </p>
<p class="definition">Definition in file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
</div><a name="doc-define-members" id="doc-define-members"></a><h2 id="header-doc-define-members" class="groupheader">Macro Definition Documentation</h2>
<a id="a3c3ba66fe2b547655c9e4b16a1ba519a" name="a3c3ba66fe2b547655c9e4b16a1ba519a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c3ba66fe2b547655c9e4b16a1ba519a">&#9670;&#160;</a></span>AARU_MAGIC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define AARU_MAGIC&#160;&#160;&#160;0x544D524655524141ULL</td>
</tr>
</table>
</div><div class="memdoc">
<p>Magic identifier for AaruFormat container (ASCII "AARUFRMT"). </p>
<p>Used in the primary header to assert correct file type. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00064">64</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="close_8c_source.html#l03995">aaruf_close()</a>, <a class="el" href="write_8c_source.html#l01383">aaruf_close_current_block()</a>, <a class="el" href="create_8c_source.html#l00279">aaruf_create()</a>, <a class="el" href="metadata_8c_source.html#l02099">aaruf_get_aaru_json_metadata()</a>, <a class="el" href="metadata_8c_source.html#l01944">aaruf_get_cicm_metadata()</a>, <a class="el" href="metadata_8c_source.html#l02476">aaruf_get_comments()</a>, <a class="el" href="metadata_8c_source.html#l02404">aaruf_get_creator()</a>, <a class="el" href="metadata_8c_source.html#l03178">aaruf_get_drive_firmware_revision()</a>, <a class="el" href="metadata_8c_source.html#l02968">aaruf_get_drive_manufacturer()</a>, <a class="el" href="metadata_8c_source.html#l03038">aaruf_get_drive_model()</a>, <a class="el" href="metadata_8c_source.html#l03108">aaruf_get_drive_serial_number()</a>, <a class="el" href="dump_8c_source.html#l00186">aaruf_get_dumphw()</a>, <a class="el" href="metadata_8c_source.html#l00094">aaruf_get_geometry()</a>, <a class="el" href="metadata_8c_source.html#l03634">aaruf_get_image_info()</a>, <a class="el" href="metadata_8c_source.html#l02825">aaruf_get_media_barcode()</a>, <a class="el" href="metadata_8c_source.html#l02616">aaruf_get_media_manufacturer()</a>, <a class="el" href="metadata_8c_source.html#l02686">aaruf_get_media_model()</a>, <a class="el" href="metadata_8c_source.html#l02896">aaruf_get_media_part_number()</a>, <a class="el" href="metadata_8c_source.html#l02337">aaruf_get_media_sequence()</a>, <a class="el" href="metadata_8c_source.html#l02756">aaruf_get_media_serial_number()</a>, <a class="el" href="metadata_8c_source.html#l02546">aaruf_get_media_title()</a>, <a class="el" href="metadata_8c_source.html#l03417">aaruf_get_negative_sectors()</a>, <a class="el" href="metadata_8c_source.html#l03552">aaruf_get_overflow_sectors()</a>, <a class="el" href="tape_8c_source.html#l00569">aaruf_get_tape_file()</a>, <a class="el" href="tape_8c_source.html#l00982">aaruf_get_tape_partition()</a>, <a class="el" href="optical_8c_source.html#l00281">aaruf_get_tracks()</a>, <a class="el" href="metadata_8c_source.html#l03292">aaruf_get_user_sectors()</a>, <a class="el" href="identify_8c_source.html#l00163">aaruf_identify_stream()</a>, <a class="el" href="open_8c_source.html#l00125">aaruf_open()</a>, <a class="el" href="read_8c_source.html#l00085">aaruf_read_media_tag()</a>, <a class="el" href="read_8c_source.html#l00250">aaruf_read_sector()</a>, <a class="el" href="read_8c_source.html#l00815">aaruf_read_sector_long()</a>, <a class="el" href="read_8c_source.html#l01463">aaruf_read_sector_tag()</a>, <a class="el" href="read_8c_source.html#l00663">aaruf_read_track_sector()</a>, <a class="el" href="metadata_8c_source.html#l02258">aaruf_set_aaru_json_metadata()</a>, <a class="el" href="metadata_8c_source.html#l00607">aaruf_set_comments()</a>, <a class="el" href="metadata_8c_source.html#l00493">aaruf_set_creator()</a>, <a class="el" href="metadata_8c_source.html#l01793">aaruf_set_drive_firmware_revision()</a>, <a class="el" href="metadata_8c_source.html#l01412">aaruf_set_drive_manufacturer()</a>, <a class="el" href="metadata_8c_source.html#l01534">aaruf_set_drive_model()</a>, <a class="el" href="metadata_8c_source.html#l01658">aaruf_set_drive_serial_number()</a>, <a class="el" href="dump_8c_source.html#l00531">aaruf_set_dumphw()</a>, <a class="el" href="metadata_8c_source.html#l00229">aaruf_set_geometry()</a>, <a class="el" href="metadata_8c_source.html#l01176">aaruf_set_media_barcode()</a>, <a class="el" href="metadata_8c_source.html#l00832">aaruf_set_media_manufacturer()</a>, <a class="el" href="metadata_8c_source.html#l00939">aaruf_set_media_model()</a>, <a class="el" href="metadata_8c_source.html#l01297">aaruf_set_media_part_number()</a>, <a class="el" href="metadata_8c_source.html#l00363">aaruf_set_media_sequence()</a>, <a class="el" href="metadata_8c_source.html#l01054">aaruf_set_media_serial_number()</a>, <a class="el" href="metadata_8c_source.html#l00720">aaruf_set_media_title()</a>, <a class="el" href="tape_8c_source.html#l00770">aaruf_set_tape_file()</a>, <a class="el" href="tape_8c_source.html#l01196">aaruf_set_tape_partition()</a>, <a class="el" href="optical_8c_source.html#l00392">aaruf_set_tracks()</a>, <a class="el" href="verify_8c_source.html#l00130">aaruf_verify_image()</a>, <a class="el" href="write_8c_source.html#l01780">aaruf_write_media_tag()</a>, <a class="el" href="write_8c_source.html#l00098">aaruf_write_sector()</a>, <a class="el" href="write_8c_source.html#l00532">aaruf_write_sector_long()</a>, and <a class="el" href="write_8c_source.html#l02048">aaruf_write_sector_tag()</a>.</p>
</div>
</div>
<a id="adbbd4387273589f1c76a5f5786607013" name="adbbd4387273589f1c76a5f5786607013"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbbd4387273589f1c76a5f5786607013">&#9670;&#160;</a></span>AARUF_VERSION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define AARUF_VERSION&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Current image format major version (incompatible changes bump this). </p>
<p>Readers should reject headers with a higher number unless explicitly forward compatible. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00068">68</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="identify_8c_source.html#l00163">aaruf_identify_stream()</a>, and <a class="el" href="open_8c_source.html#l00125">aaruf_open()</a>.</p>
</div>
</div>
<a id="ac837e146bff4d0f3603e4a9e444358c6" name="ac837e146bff4d0f3603e4a9e444358c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac837e146bff4d0f3603e4a9e444358c6">&#9670;&#160;</a></span>AARUF_VERSION_V1</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define AARUF_VERSION_V1&#160;&#160;&#160;1</td>
</tr>
</table>
</div><div class="memdoc">
<p>First ondisk version (C# implementation). </p>
<p>Quirk: CRC64 values were stored byteswapped relative to ECMA182 canonical output. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00071">71</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="verify_8c_source.html#l00130">aaruf_verify_image()</a>, <a class="el" href="data_8c_source.html#l00071">process_data_block()</a>, <a class="el" href="blocks_2dump_8c_source.html#l00108">process_dumphw_block()</a>, <a class="el" href="optical_8c_source.html#l00111">process_tracks_block()</a>, <a class="el" href="index__v1_8c_source.html#l00225">verify_index_v1()</a>, <a class="el" href="index__v2_8c_source.html#l00227">verify_index_v2()</a>, and <a class="el" href="index__v3_8c_source.html#l00408">verify_index_v3()</a>.</p>
</div>
</div>
<a id="ad2fdced5805aa0364f1c5b073f81dd76" name="ad2fdced5805aa0364f1c5b073f81dd76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2fdced5805aa0364f1c5b073f81dd76">&#9670;&#160;</a></span>AARUF_VERSION_V2</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define AARUF_VERSION_V2&#160;&#160;&#160;2</td>
</tr>
</table>
</div><div class="memdoc">
<p>Second ondisk version (C implementation). </p>
<p>Introduced: extended header (GUID, feature bitmaps), hierarchical DDT v2, improved index (v2/v3), multicodec compression, refined metadata blocks. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00075">75</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="create_8c_source.html#l00279">aaruf_create()</a>, and <a class="el" href="open_8c_source.html#l00125">aaruf_open()</a>.</p>
</div>
</div>
<a id="a0b24c62ef1b78b72b9f4a42918f39e13" name="a0b24c62ef1b78b72b9f4a42918f39e13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b24c62ef1b78b72b9f4a42918f39e13">&#9670;&#160;</a></span>CD_DFIX_MASK</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CD_DFIX_MASK&#160;&#160;&#160;0x00FFFFFFU</td>
</tr>
</table>
</div><div class="memdoc">
<p>Mask for extracting positional index (lower 24 bits) in Compact Disc suffix/prefix deduplicated block entries. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00102">102</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="read_8c_source.html#l00815">aaruf_read_sector_long()</a>.</p>
</div>
</div>
<a id="aa64757ba31a320f675fca1062111180f" name="aa64757ba31a320f675fca1062111180f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa64757ba31a320f675fca1062111180f">&#9670;&#160;</a></span>CD_XFIX_MASK</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CD_XFIX_MASK&#160;&#160;&#160;0xFF000000U</td>
</tr>
</table>
</div><div class="memdoc">
<p>Mask for extracting correction / fix flags in Compact Disc suffix/prefix DDT entries. </p>
<p>High 8 bits store status (see <a class="el" href="enums_8h.html#a74e216af87b18a5fbf0204a52dd1bba0" title="Acquisition / content status for one or more sectors.">SectorStatus</a> / <a class="el" href="enums_8h.html#ab72dc399e3946b3c40a5ad8c8e3254b7" title="Flags describing Compact Disc sector fix-up status.">CdFixFlags</a> relationships). </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00100">100</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="read_8c_source.html#l00815">aaruf_read_sector_long()</a>.</p>
</div>
</div>
<a id="a13ba7a163f45ee45c977d63c408539ca" name="a13ba7a163f45ee45c977d63c408539ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13ba7a163f45ee45c977d63c408539ca">&#9670;&#160;</a></span>DIC_MAGIC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DIC_MAGIC&#160;&#160;&#160;0x544D52464D434944ULL</td>
</tr>
</table>
</div><div class="memdoc">
<p>Magic identifier for legacy DiscImageChef container (ASCII "DICMFRMT"). </p>
<p>Retained for backward compatibility / migration tooling. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00061">61</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="identify_8c_source.html#l00163">aaruf_identify_stream()</a>, and <a class="el" href="open_8c_source.html#l00125">aaruf_open()</a>.</p>
</div>
</div>
<a id="a25fd08252b97a0230d3efc899bddd240" name="a25fd08252b97a0230d3efc899bddd240"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25fd08252b97a0230d3efc899bddd240">&#9670;&#160;</a></span>LZMA_PROPERTIES_LENGTH</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LZMA_PROPERTIES_LENGTH&#160;&#160;&#160;5</td>
</tr>
</table>
</div><div class="memdoc">
<p>Size in bytes of the fixed LZMA properties header (lc/lp/pb + dictionary size). </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00082">82</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="write_8c_source.html#l01383">aaruf_close_current_block()</a>, <a class="el" href="read_8c_source.html#l00250">aaruf_read_sector()</a>, <a class="el" href="ddt__v2_8c_source.html#l00724">decode_ddt_multi_level_v2()</a>, <a class="el" href="data_8c_source.html#l00071">process_data_block()</a>, <a class="el" href="ddt__v1_8c_source.html#l00085">process_ddt_v1()</a>, <a class="el" href="ddt__v2_8c_source.html#l00096">process_ddt_v2()</a>, <a class="el" href="ddt__v2_8c_source.html#l01092">set_ddt_multi_level_v2()</a>, <a class="el" href="close_8c_source.html#l00077">write_cached_secondary_ddt()</a>, <a class="el" href="close_8c_source.html#l01808">write_dvd_long_sector_blocks()</a>, <a class="el" href="close_8c_source.html#l02245">write_dvd_title_key_decrypted_block()</a>, <a class="el" href="close_8c_source.html#l02409">write_media_tags()</a>, <a class="el" href="close_8c_source.html#l00850">write_mode2_subheaders_block()</a>, <a class="el" href="close_8c_source.html#l00966">write_sector_prefix()</a>, <a class="el" href="close_8c_source.html#l01206">write_sector_prefix_ddt()</a>, <a class="el" href="close_8c_source.html#l01508">write_sector_subchannel()</a>, <a class="el" href="close_8c_source.html#l01088">write_sector_suffix()</a>, <a class="el" href="close_8c_source.html#l01350">write_sector_suffix_ddt()</a>, and <a class="el" href="close_8c_source.html#l00369">write_single_level_ddt()</a>.</p>
</div>
</div>
<a id="a6c8469dfe973ac952cf40394bd2c160b" name="a6c8469dfe973ac952cf40394bd2c160b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c8469dfe973ac952cf40394bd2c160b">&#9670;&#160;</a></span>MAX_CACHE_SIZE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MAX_CACHE_SIZE&#160;&#160;&#160;536870912ULL</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum read cache size (bytes). </p>
<p>512 MiB chosen to prevent excessive resident memory while still enabling efficient sequential and moderate random access patterns. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00079">79</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="create_8c_source.html#l00279">aaruf_create()</a>, and <a class="el" href="open_8c_source.html#l00125">aaruf_open()</a>.</p>
</div>
</div>
<a id="ac97c436bf02e6e7e7daea67d374f03cd" name="ac97c436bf02e6e7e7daea67d374f03cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac97c436bf02e6e7e7daea67d374f03cd">&#9670;&#160;</a></span>MAX_DDT_ENTRY_CACHE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MAX_DDT_ENTRY_CACHE&#160;&#160;&#160;16000000</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum number of cached DDT entry descriptors retained in memory for fast duplicate detection. </p>
<p>At 16,000,000 entries with a compact structure, this caps hash_map overhead while covering large images. (Approx memory just for lookup bookkeeping: ~16 bytes * N ≈ 256 MB worst case; typical effective &lt;50% of cap.) </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00087">87</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
</div>
</div>
<a id="a207a31e861ea8e3a4f5ef52c13b42b3d" name="a207a31e861ea8e3a4f5ef52c13b42b3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a207a31e861ea8e3a4f5ef52c13b42b3d">&#9670;&#160;</a></span>MAX_FLAKE_BLOCK</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MAX_FLAKE_BLOCK&#160;&#160;&#160;4608</td>
</tr>
</table>
</div><div class="memdoc">
<p>FLAC maximum block size used for encoding audio sectors. </p>
<p>Empirically &gt;4608 samples yields diminishing compression returns and higher decode latency. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00094">94</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="write_8c_source.html#l01383">aaruf_close_current_block()</a>.</p>
</div>
</div>
<a id="a3fd3617b4eb7e9548e0fd0ca8990e44a" name="a3fd3617b4eb7e9548e0fd0ca8990e44a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fd3617b4eb7e9548e0fd0ca8990e44a">&#9670;&#160;</a></span>MIN_FLAKE_BLOCK</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MIN_FLAKE_BLOCK&#160;&#160;&#160;256</td>
</tr>
</table>
</div><div class="memdoc">
<p>FLAC minimum block size. </p>
<p>CUETools.Codecs.FLAKE does not accept blocks smaller than 256 samples. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00096">96</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="write_8c_source.html#l01383">aaruf_close_current_block()</a>.</p>
</div>
</div>
<a id="a44401191f17a7c09a05e57ff9e5cff24" name="a44401191f17a7c09a05e57ff9e5cff24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44401191f17a7c09a05e57ff9e5cff24">&#9670;&#160;</a></span>SAMPLES_PER_SECTOR</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SAMPLES_PER_SECTOR&#160;&#160;&#160;588</td>
</tr>
</table>
</div><div class="memdoc">
<p>Red Book (CDDA) PCM samples per 2352byte sector: 44,100 Hz / 75 sectors per second = 588 samples. </p>
<p class="definition">Definition at line <a class="el" href="consts_8h_source.html#l00090">90</a> of file <a class="el" href="consts_8h_source.html">consts.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="write_8c_source.html#l01383">aaruf_close_current_block()</a>.</p>
</div>
</div>
</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="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a href="dir_aeff2545c9dfcfc842fe9d84b123cb31.html">aaruformat</a></li><li class="navelem"><a href="consts_8h.html">consts.h</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.14.0 </li>
</ul>
</div>
</body>
</html>