libaaruformat 1.0
Aaru Data Preservation Suite - Format Library
Loading...
Searching...
No Matches
helpers.c
Go to the documentation of this file.
1/*
2 * This file is part of the Aaru Data Preservation Suite.
3 * Copyright (c) 2019-2026 Natalia Portillo.
4 *
5 * This library is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as
7 * published by the Free Software Foundation; either version 2.1 of the
8 * License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
17 */
18
19#if defined(_WIN32) || defined(_WIN64)
20#include <windows.h>
21#include <wincrypt.h>
22#endif
23
24#include <aaru.h>
25
26#include <aaruformat.h>
27#include <stdio.h>
28#include <stdlib.h>
29#include <time.h>
30
40{
41 switch(type)
42 {
43 case kDataTypeCdToc:
44 return kMediaTagCdToc;
48 return kMediaTagFullToc;
49 case kDataTypeCdPma:
50 return kMediaTagCdPma;
51 case kDataTypeCdAtip:
52 return kMediaTagCdAtip;
53 case kDataTypeCdText:
54 return kMediaTagCdText;
55 case kDataTypeDvdPfi:
56 return kMediaTagDvdPfi;
59 case kDataTypeDvdCmi:
60 return kMediaTagDvdCmi;
63 case kDataTypeDvdBca:
64 return kMediaTagDvdBca;
65 case kDataTypeDvdDmi:
66 return kMediaTagDvdDmi;
69 case kDataTypeDvdMkb:
70 return kMediaTagDvdMkb;
72 return kMediaTagDvdRamDds;
78 return kMediaTagDvdrRmd;
84 return kMediaTagDvdrPfi;
86 return kMediaTagDvdAdip;
88 return kMediaTagHddvdCpi;
100 return kMediaTagBlurayDi;
102 return kMediaTagBlurayBca;
104 return kMediaTagBlurayDds;
115 case kDataTypeAacsMkb:
116 return kMediaTagAacsMkb;
121 case kDataTypeCprmMkb:
122 return kMediaTagCprmMkb;
142 return kMediaTagPcmciaCis;
143 case kDataTypeSdCid:
144 return kMediaTagSdCid;
145 case kDataTypeSdCsd:
146 return kMediaTagSdCsd;
147 case kDataTypeSdScr:
148 return kMediaTagSdScr;
149 case kDataTypeSdOcr:
150 return kMediaTagSdOcr;
151 case kDataTypeMmcCid:
152 return kMediaTagMmcCid;
153 case kDataTypeMmcCsd:
154 return kMediaTagMmcCsd;
155 case kDataTypeMmcOcr:
156 return kMediaTagMmcOcr;
168 return kMediaTagCdLeadOut;
175 case kDataTypeXboxDmi:
176 return kMediaTagXboxDmi;
177 case kDataTypeXboxPfi:
178 return kMediaTagXboxPfi;
179 case kDataTypeCdMcn:
180 return kMediaTagCdMcn;
182 return kMediaTagCdLeadIn;
190 return kMediaTagPs3DiscKey;
192 return kMediaTagPs3Data1;
194 return kMediaTagPs3Data2;
195 case kDataTypePs3Pic:
196 return kMediaTagPs3Pic;
209 default:
210 return -1;
211 }
212}
213
224{
225 switch(tag_type)
226 {
227 case kMediaTagCdToc:
228 return kDataTypeCdToc;
231 case kMediaTagFullToc:
232 return kDataTypeFullToc;
233 case kMediaTagCdPma:
234 return kDataTypeCdPma;
235 case kMediaTagCdAtip:
236 return kDataTypeCdAtip;
237 case kMediaTagCdText:
238 return kDataTypeCdText;
239 case kMediaTagDvdPfi:
240 return kDataTypeDvdPfi;
243 case kMediaTagDvdCmi:
244 return kDataTypeDvdCmi;
246 return kDataTypeDvdDiscKey;
247 case kMediaTagDvdBca:
248 return kDataTypeDvdBca;
249 case kMediaTagDvdDmi:
250 return kDataTypeDvdDmi;
253 case kMediaTagDvdMkb:
254 return kDataTypeDvdMkb;
256 return kDataTypeDvdRamDds;
261 case kMediaTagDvdrRmd:
262 return kDataTypeDvdrRmd;
267 case kMediaTagDvdrPfi:
268 return kDataTypeDvdrPfi;
269 case kMediaTagDvdAdip:
270 return kDataTypeDvdAdip;
272 return kDataTypeHddvdCpi;
284 return kDataTypeBlurayDi;
286 return kDataTypeBlurayBca;
288 return kDataTypeBlurayDds;
299 case kMediaTagAacsMkb:
300 return kDataTypeAacsMkb;
305 case kMediaTagCprmMkb:
306 return kDataTypeCprmMkb;
326 return kDataTypePcmciaCis;
327 case kMediaTagSdCid:
328 return kDataTypeSdCid;
329 case kMediaTagSdCsd:
330 return kDataTypeSdCsd;
331 case kMediaTagSdScr:
332 return kDataTypeSdScr;
333 case kMediaTagSdOcr:
334 return kDataTypeSdOcr;
335 case kMediaTagMmcCid:
336 return kDataTypeMmcCid;
337 case kMediaTagMmcCsd:
338 return kDataTypeMmcCsd;
339 case kMediaTagMmcOcr:
340 return kDataTypeMmcOcr;
352 return kDataTypeCdLeadOut;
359 case kMediaTagXboxDmi:
360 return kDataTypeXboxDmi;
361 case kMediaTagXboxPfi:
362 return kDataTypeXboxPfi;
363 case kMediaTagCdMcn:
364 return kDataTypeCdMcn;
366 return kDataTypeCdLeadIn;
374 return kDataTypePs3DiscKey;
376 return kDataTypePs3Data1;
378 return kDataTypePs3Data2;
379 case kMediaTagPs3Pic:
380 return kDataTypePs3Pic;
393 default:
394 return -1;
395 }
396}
397
398// Get the CICM XML media type from AARU media type
400{
401 switch(type)
402 {
403 case CD:
404 case CDDA:
405 case CDG:
406 case CDEG:
407 case CDI:
408 case CDIREADY:
409 case CDROM:
410 case CDROMXA:
411 case CDPLUS:
412 case CDMO:
413 case CDR:
414 case CDRW:
415 case CDMRW:
416 case VCD:
417 case SVCD:
418 case PCD:
419 case SACD:
420 case DDCD:
421 case DDCDR:
422 case DDCDRW:
423 case DTSCD:
424 case CDMIDI:
425 case CDV:
426 case DVDROM:
427 case DVDR:
428 case DVDRW:
429 case DVDPR:
430 case DVDPRW:
431 case DVDPRWDL:
432 case DVDRDL:
433 case DVDPRDL:
434 case DVDRAM:
435 case DVDRWDL:
436 case DVDDownload:
437 case HDDVDROM:
438 case HDDVDRAM:
439 case HDDVDR:
440 case HDDVDRW:
441 case HDDVDRDL:
442 case HDDVDRWDL:
443 case BDROM:
444 case BDR:
445 case BDRE:
446 case BDRXL:
447 case BDREXL:
448 case EVD:
449 case FVD:
450 case HVD:
451 case CBHD:
452 case HDVMD:
453 case VCDHD:
454 case SVOD:
455 case FDDVD:
456 case LD:
457 case LDROM:
458 case LDROM2:
459 case LVROM:
460 case MegaLD:
461 case PS1CD:
462 case PS2CD:
463 case PS2DVD:
464 case PS3DVD:
465 case PS3BD:
466 case PS4BD:
467 case UMD:
468 case XGD:
469 case XGD2:
470 case XGD3:
471 case XGD4:
472 case MEGACD:
473 case SATURNCD:
474 case GDROM:
475 case GDR:
476 case SuperCDROM2:
477 case JaguarCD:
478 case ThreeDO:
479 case PCFX:
480 case NeoGeoCD:
481 case GOD:
482 case WOD:
483 case WUOD:
484 case CDTV:
485 case CD32:
486 case Nuon:
487 case Playdia:
488 case Pippin:
489 case FMTOWNS:
490 case MilCD:
491 case VideoNow:
492 case VideoNowColor:
493 case VideoNowXp:
494 return OpticalDisc;
495 default:
496 return BlockMedia;
497 }
498}
499
511int compare_extents(const void *a, const void *b)
512{
513 const DumpExtent *extent_a = a;
514 const DumpExtent *extent_b = b;
515
516 if(extent_a->start < extent_b->start) return -1;
517 if(extent_a->start > extent_b->start) return 1;
518 return 0;
519}
520
532void generate_random_bytes(uint8_t *buffer, size_t length)
533{
534 if(buffer == NULL || length == 0) return;
535
536#if defined(_WIN32) || defined(_WIN64)
537 // Windows implementation using CryptGenRandom
538 HCRYPTPROV hCryptProv;
539 if(CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
540 {
541 CryptGenRandom(hCryptProv, (DWORD)length, buffer);
542 CryptReleaseContext(hCryptProv, 0);
543 return;
544 }
545#else
546 // Unix-like systems (Linux, macOS, BSD, etc.) - use /dev/urandom
547 FILE *urandom = fopen("/dev/urandom", "rb");
548 if(urandom != NULL)
549 {
550 size_t bytes_read = fread(buffer, 1, length, urandom);
551 fclose(urandom);
552 if(bytes_read == length) return;
553 }
554#endif
555
556 // Fallback: use time-seeded rand() if platform-specific methods fail
557 // This is less secure but ensures we always generate some random data
558 srand((unsigned int)time(NULL));
559 for(size_t i = 0; i < length; i++) { buffer[i] = (uint8_t)(rand() % 256); }
560}
Public high-level API types: media classifications, per-sector / per-media tag enums and image summar...
#define AARU_CALL
Definition decls.h:46
#define AARU_LOCAL
Definition decls.h:56
@ OpticalDisc
Purely optical discs.
Definition enums.h:246
@ BlockMedia
Media that is physically block-based or abstracted like that.
Definition enums.h:247
@ kDataTypeAacsLbaExtents
AACS LBA extents.
Definition enums.h:86
@ kDataTypeExtendedCsd
MultiMediaCard Extended CSD register.
Definition enums.h:105
@ kDataTypeCdMcn
Compact Disc Media Catalogue Number (lead‑in, 13 ASCII bytes).
Definition enums.h:122
@ kDataTypeMmcCsd
MultiMediaCard CSD register.
Definition enums.h:103
@ kDataTypeMmcCid
MultiMediaCard CID register.
Definition enums.h:102
@ kDataTypeBlurayDi
Blu-ray Disc Information (DI).
Definition enums.h:76
@ kDataTypeUsbDescriptors
USB descriptors set.
Definition enums.h:113
@ kDataTypeDiscControlBlock
DVD Disc Control Block.
Definition enums.h:108
@ kDataTypeAacsVolumeUniqueKey
AACS Volume Unique Key.
Definition enums.h:149
@ kDataTypeCdFirstTrackPregap
Compact Disc first track pre-gap.
Definition enums.h:109
@ kDataTypeBlurayDds
Blu-ray Disc Definition Structure (DDS).
Definition enums.h:78
@ kDataTypeBluraySpareArea
Blu-ray spare area information.
Definition enums.h:80
@ kDataTypeXboxSecuritySector
Xbox Security Sector.
Definition enums.h:106
@ kDataTypeDvdDiscKey
DVD disc key.
Definition enums.h:57
@ kDataTypeHddvdMediumStatus
HD DVD medium status.
Definition enums.h:71
@ kDataTypeWiiUDiscKey
Nintendo Wii U disc key (16 bytes, from non-readable disc area).
Definition enums.h:139
@ kDataTypeWiiPartitionKeyMap
Nintendo Wii partition-to-key mapping with regions.
Definition enums.h:146
@ kDataTypeSdCsd
Secure Digital CSD register.
Definition enums.h:99
@ kDataTypeCdText
Compact Disc lead-in CD-Text.
Definition enums.h:54
@ kDataTypeAacsMediaIdentifier
AACS media identifier.
Definition enums.h:83
@ kDataTypeBlurayCartridgeStatus
Blu-ray cartridge status.
Definition enums.h:79
@ kDataTypeNgcwJunkMap
Nintendo GameCube/Wii junk region map with LFG seeds.
Definition enums.h:147
@ kDataTypePs3EncryptionMap
PS3 encryption region map (serialized from sector 0).
Definition enums.h:144
@ kDataTypeAacsMkb
AACS Media Key Block (MKB).
Definition enums.h:84
@ kDataTypeDvddlLayerCapacity
DVD dual-layer capacity.
Definition enums.h:72
@ kDataTypeDvdMkb
DVD Media Key Block (MKB).
Definition enums.h:61
@ kDataTypeDvdCmi
DVD lead-in Copyright Management Information (CMI).
Definition enums.h:56
@ kDataTypeMmcDiscInformation
MMC disc information.
Definition enums.h:90
@ kDataTypeDvdRamSpareArea
DVD-RAM spare area information.
Definition enums.h:64
@ kDataTypeDvddlMiddleZoneAddress
DVD dual-layer middle zone address.
Definition enums.h:73
@ kDataTypePs3Data1
PS3 data1 key (16 bytes, from disc).
Definition enums.h:141
@ kDataTypeXboxDmi
Xbox DMI.
Definition enums.h:114
@ kDataTypeWiiUPartitionKeyMap
Nintendo Wii U partition-to-key mapping with regions.
Definition enums.h:145
@ kDataTypeSdOcr
Secure Digital OCR register.
Definition enums.h:101
@ kDataTypeScsiModeSense6
SCSI MODE SENSE (6) response.
Definition enums.h:111
@ kDataTypeDvddlJumpIntervalSize
DVD dual-layer jump interval size.
Definition enums.h:74
@ kDataTypeCdPma
Compact Disc Power Management Area (PMA).
Definition enums.h:52
@ kDataTypePs3Pic
PS3 PIC data (115 bytes, from disc lead-in).
Definition enums.h:143
@ kDataTypeMmcOcr
MultiMediaCard OCR register.
Definition enums.h:104
@ kDataTypeSessionInfo
Compact Disc session information.
Definition enums.h:50
@ kDataTypeDvdPfi2ndLayer
DVD Physical Format Information for the second layer.
Definition enums.h:135
@ kDataTypePcmciaCis
PCMCIA Card Information Structure (CIS).
Definition enums.h:97
@ kDataTypeFullToc
Compact Disc full Table of Contents.
Definition enums.h:51
@ kDataTypeDvdMediaIdentifier
DVD media identifier.
Definition enums.h:60
@ kDataTypeAtaIdentify
ATA IDENTIFY DEVICE data.
Definition enums.h:95
@ kDataTypeCdLeadIn
Compact Disc lead‑in.
Definition enums.h:126
@ kDataTypeAacsDataKeys
AACS data keys.
Definition enums.h:85
@ kDataTypeSdScr
Secure Digital SCR register.
Definition enums.h:100
@ kDataTypeDvdrRmd
DVD-R RMD (Recording Management Data).
Definition enums.h:65
@ kDataTypeDvdRamDds
DVD-RAM Disc Definition Structure (DDS).
Definition enums.h:62
@ kDataTypeDvdDmi
DVD Disc Manufacturing Information (DMI).
Definition enums.h:59
@ kDataTypeAacsMediaKey
AACS Media Key.
Definition enums.h:148
@ kDataTypeMmcTrackResourcesInformation
MMC track resources information.
Definition enums.h:91
@ kDataTypePs3Data2
PS3 data2 key (16 bytes, from disc).
Definition enums.h:142
@ kDataTypeMmcWriteProtection
MMC write-protection data.
Definition enums.h:89
@ kDataTypeDvddlManualLayerJumpLba
DVD dual-layer manual layer jump LBA.
Definition enums.h:75
@ kDataTypeXboxPfi
Xbox Physical Format Information (PFI).
Definition enums.h:115
@ kDataTypeDvdAdip
DVD Address In Pregroove (ADIP).
Definition enums.h:69
@ kDataTypeMmcPowResourcesInformation
MMC POW (Persistent Optical Write?) resources information.
Definition enums.h:92
@ kDataTypeDvdrMediaIdentifier
DVD-R media identifier.
Definition enums.h:67
@ kDataTypeAacsVolumeIdentifier
AACS volume identifier.
Definition enums.h:81
@ kDataTypeCprmMkb
CPRM Media Key Block (MKB).
Definition enums.h:87
@ kDataTypeDvdPfi
DVD Physical Format Information.
Definition enums.h:55
@ kDataTypeScsiModeSense10
SCSI MODE SENSE (10) response.
Definition enums.h:112
@ kDataTypeScsiInquiry
SCSI INQUIRY response.
Definition enums.h:93
@ kDataTypePs3DiscKey
PS3 derived disc key (16 bytes).
Definition enums.h:140
@ kDataTypeAacsSerialNumber
AACS serial number.
Definition enums.h:82
@ kDataTypeCdAtip
Compact Disc Absolute Time In Pregroove (ATIP).
Definition enums.h:53
@ kDataTypeDvdrPfi
DVD-R Physical Format Information.
Definition enums.h:68
@ kDataTypeCdToc
Compact Disc partial Table of Contents.
Definition enums.h:49
@ kDataTypeDvdRamMediumStatus
DVD-RAM medium status.
Definition enums.h:63
@ kDataTypeFloppyWriteProtect
Floppy write-protect status.
Definition enums.h:138
@ kDataTypeScsiModePage2A
SCSI MODE PAGE 2Ah.
Definition enums.h:94
@ kDataTypeHybridRecognizedLayers
Recognized layers (hybrid media).
Definition enums.h:88
@ kDataTypeBlurayBca
Blu-ray Burst Cutting Area (BCA).
Definition enums.h:77
@ kDataTypeHddvdCpi
HD DVD Copy Protection Information (CPI).
Definition enums.h:70
@ kDataTypeCdLeadOut
Compact Disc lead‑out.
Definition enums.h:110
@ kDataTypeDvdBca
DVD Burst Cutting Area (BCA).
Definition enums.h:58
@ kDataTypeFloppyLeadOut
Floppy lead‑out data.
Definition enums.h:107
@ kDataTypeAtapiIdentify
ATAPI IDENTIFY PACKET DEVICE data.
Definition enums.h:96
@ kDataTypeSdCid
Secure Digital CID register.
Definition enums.h:98
@ kDataTypeDvdDiscKeyDecrypted
Decrypted DVD Disc Key.
Definition enums.h:127
@ kDataTypeDvdrPreRecordedInfo
DVD-R pre‑recorded information.
Definition enums.h:66
@ kMediaTagScsiModeSense10
Raw MODE SENSE (10) data.
Definition aaru.h:1066
@ kMediaTagMmcPowResourcesInformation
Pseudo OverWrite resources (BD-R POW).
Definition aaru.h:1046
@ kMediaTagAacsMediaIdentifier
AACS Media Identifier (unique per disc).
Definition aaru.h:1037
@ kMediaTagCdAtip
Absolute Time In Pregroove (writable media timing & power metadata).
Definition aaru.h:1006
@ kMediaTagCdLeadIn
Raw lead-in (TOC frames).
Definition aaru.h:1070
@ kMediaTagAtapiIdentify
ATA PACKET IDENTIFY DEVICE.
Definition aaru.h:1050
@ kMediaTagAtaIdentify
ATA IDENTIFY DEVICE (512 bytes).
Definition aaru.h:1049
@ kMediaTagAacsLbaExtents
LBA extents requiring bus encryption.
Definition aaru.h:1040
@ kMediaTagDvddlJumpIntervalSize
Jump interval size (opposite track path).
Definition aaru.h:1028
@ kMediaTagDvdRamSpareArea
Spare area descriptors.
Definition aaru.h:1018
@ kMediaTagSdOcr
SecureDigital Operation Conditions (voltage).
Definition aaru.h:1055
@ kMediaTagCdLeadOut
Lead-out area contents.
Definition aaru.h:1064
@ kMediaTagSdCid
SecureDigital Card ID register.
Definition aaru.h:1052
@ kMediaTagWiiUDiscKey
Nintendo Wii U disc key (16 bytes, from non-readable disc area).
Definition aaru.h:1079
@ kMediaTagWiiUPartitionKeyMap
Nintendo Wii U partition-to-key mapping with regions.
Definition aaru.h:1085
@ kMediaTagPcmciaCis
PCMCIA/CardBus CIS tuple chain.
Definition aaru.h:1051
@ kMediaTagPs3DiscKey
PS3 derived disc key (16 bytes).
Definition aaru.h:1080
@ kMediaTagScsiModeSense6
Raw MODE SENSE (6) data.
Definition aaru.h:1065
@ kMediaTagDvdrPreRecordedInfo
Pre-recorded info area (lead-in).
Definition aaru.h:1020
@ kMediaTagAacsVolumeIdentifier
AACS Volume Identifier.
Definition aaru.h:1035
@ kMediaTagHybridRecognizedLayers
Hybrid disc recognized layer combinations (e.g. CD/DVD/BD).
Definition aaru.h:1042
@ kMediaTagXboxSecuritySector
Xbox/Xbox 360 Security Sector (SS.bin).
Definition aaru.h:1060
@ kMediaTagCdToc
Standard CD Table Of Contents (lead-in, first session).
Definition aaru.h:1002
@ kMediaTagDiscControlBlock
DVD Disc Control Blocks.
Definition aaru.h:1062
@ kMediaTagDvddlMiddleZoneAddress
Middle zone start LBA.
Definition aaru.h:1027
@ kMediaTagFloppyLeadOut
Manufacturer / duplication cylinder (floppy special data).
Definition aaru.h:1061
@ kMediaTagDvdrMediaIdentifier
DVD-R/-RW writable media identifier.
Definition aaru.h:1021
@ kMediaTagDvdPfi2ndLayer
DVD Physical Format Information for the second layer.
Definition aaru.h:1077
@ kMediaTagPs3EncryptionMap
PS3 encryption region map (serialized from sector 0).
Definition aaru.h:1084
@ kMediaTagPs3Pic
PS3 PIC data (115 bytes, from disc lead-in).
Definition aaru.h:1083
@ kMediaTagFullToc
Complete multi-session TOC including hidden tracks.
Definition aaru.h:1004
@ kMediaTagPs3Data2
PS3 data2 key (16 bytes, from disc).
Definition aaru.h:1082
@ kMediaTagHddvdMediumStatus
HD DVD Medium status (spares/defects).
Definition aaru.h:1025
@ kMediaTagSdScr
SecureDigital Configuration Register.
Definition aaru.h:1054
@ kMediaTagXboxDmi
Xbox Disc Manufacturing Info (DMI).
Definition aaru.h:1068
@ kMediaTagDvdBca
Burst Cutting Area (etched manufacturer / AACS info).
Definition aaru.h:1012
@ kMediaTagSdCsd
SecureDigital Card Specific Data.
Definition aaru.h:1053
@ kMediaTagDvdRamDds
Defect Data Structure (DVD-RAM mapping).
Definition aaru.h:1016
@ kMediaTagMmcCsd
MMC Card Specific Data.
Definition aaru.h:1057
@ kMediaTagDvdDiscKey
Encrypted disc key block (CSS).
Definition aaru.h:1011
@ kMediaTagPs3Data1
PS3 data1 key (16 bytes, from disc).
Definition aaru.h:1081
@ kMediaTagDvddlManualLayerJumpLba
Manual layer jump LBA (OTP).
Definition aaru.h:1029
@ kMediaTagMmcTrackResourcesInformation
Track Resources (allocated/open track data).
Definition aaru.h:1045
@ kMediaTagExtendedCsd
MMC Extended CSD (512 bytes).
Definition aaru.h:1059
@ kMediaTagMmcWriteProtection
Write protection status (MMC GET CONFIG).
Definition aaru.h:1043
@ kMediaTagAacsMkb
AACS Media Key Block.
Definition aaru.h:1038
@ kMediaTagDvdCmi
Copyright Management Information (CSS/CPRM flags).
Definition aaru.h:1010
@ kMediaTagAacsSerialNumber
Pre-recorded media serial number (AACS).
Definition aaru.h:1036
@ kMediaTagWiiPartitionKeyMap
Nintendo Wii partition-to-key mapping with regions.
Definition aaru.h:1086
@ kMediaTagBlurayDi
Disc Information (BD).
Definition aaru.h:1030
@ kMediaTagDvdrPfi
DVD-R physical format (layer data).
Definition aaru.h:1022
@ kMediaTagFloppyWriteProtect
Write protection status of the floppy disk.
Definition aaru.h:1078
@ kMediaTagCdMcn
Media Catalogue Number (EAN/UPC style identifier).
Definition aaru.h:1008
@ kMediaTagUsbDescriptors
Concatenated USB descriptors (device/config/interface).
Definition aaru.h:1067
@ kMediaTagAacsDataKeys
Extracted AACS title/volume keys (when decrypted).
Definition aaru.h:1039
@ kMediaTagDvdAdip
Address In Pregroove (DVD+ / wobble timing).
Definition aaru.h:1023
@ kMediaTagHddvdCpi
Content Protection Info (HD DVD).
Definition aaru.h:1024
@ kMediaTagDvdMediaIdentifier
Writable media dye / manufacturer ID.
Definition aaru.h:1014
@ kMediaTagAacsVolumeUniqueKey
AACS Volume Unique Key.
Definition aaru.h:1089
@ kMediaTagScsiInquiry
SCSI INQUIRY standard data (SPC-*).
Definition aaru.h:1047
@ kMediaTagBlurayCartridgeStatus
Cartridge presence / write protect (BD-RE/BD-R in caddy).
Definition aaru.h:1033
@ kMediaTagDvdPfi
Physical Format Information (layer geometry & book type).
Definition aaru.h:1009
@ kMediaTagCdPma
Program Memory Area (temporary track info before finalization).
Definition aaru.h:1005
@ kMediaTagMmcCid
MMC Card ID.
Definition aaru.h:1056
@ kMediaTagNgcwJunkMap
Nintendo GameCube/Wii junk region map with LFG seeds.
Definition aaru.h:1087
@ kMediaTagMmcOcr
MMC Operation Conditions.
Definition aaru.h:1058
@ kMediaTagDvdDiscKeyDecrypted
Decrypted DVD disc key,.
Definition aaru.h:1076
@ kMediaTagBlurayBca
Blu-ray Burst Cutting Area.
Definition aaru.h:1031
@ kMediaTagScsiModePage2A
SCSI Mode Page 2Ah (CD/DVD capabilities).
Definition aaru.h:1048
@ kMediaTagCdText
CD-Text blocks (titles, performers, etc.).
Definition aaru.h:1007
@ kMediaTagXboxPfi
Xbox Physical Format Information (PFI).
Definition aaru.h:1069
@ kMediaTagDvddlLayerCapacity
Dual layer capacity & break info.
Definition aaru.h:1026
@ kMediaTagAacsMediaKey
AACS Media Key.
Definition aaru.h:1088
@ kMediaTagDvdDmi
Disc Manufacturer Information (lead-in descriptor).
Definition aaru.h:1013
@ kMediaTagMmcDiscInformation
Disc Information (recordable status, erasable, last session).
Definition aaru.h:1044
@ kMediaTagDvdRamMediumStatus
Medium Status (allocated spare info).
Definition aaru.h:1017
@ kMediaTagDvdMkb
Media Key Block (AACS/DVD).
Definition aaru.h:1015
@ kMediaTagCdFirstTrackPregap
First track pregap (index 0).
Definition aaru.h:1063
@ kMediaTagCprmMkb
CPRM Media Key Block.
Definition aaru.h:1041
@ kMediaTagBlurayDds
Disc Definition Structure (recordable).
Definition aaru.h:1032
@ kMediaTagDvdrRmd
Recorded Media Data (RMD) last border-out.
Definition aaru.h:1019
@ kMediaTagBluraySpareArea
BD spare area allocation map.
Definition aaru.h:1034
@ kMediaTagSessionInfo
Per-session summary (start/end addresses, track count).
Definition aaru.h:1003
@ BDREXL
BD-RE XL.
Definition aaru.h:163
@ CDROMXA
CD-ROM XA (Yellow Book).
Definition aaru.h:112
@ SVOD
Stacked Volumetric Optical Disc.
Definition aaru.h:174
@ CDR
CD-Recordable (Orange Book).
Definition aaru.h:115
@ ThreeDO
3DO CD
Definition aaru.h:238
@ PCD
Photo CD (Beige Book).
Definition aaru.h:120
@ CDV
CD-Video (ISO/IEC 61104).
Definition aaru.h:127
@ CDG
CD+G (Red Book).
Definition aaru.h:108
@ HVD
Holographic Versatile Disc.
Definition aaru.h:170
@ CDMO
CD-MO (Orange Book).
Definition aaru.h:114
@ DDCD
Double-Density CD-ROM (Purple Book).
Definition aaru.h:122
@ LD
Pioneer LaserDisc.
Definition aaru.h:179
@ CDEG
CD+EG (Red Book).
Definition aaru.h:109
@ GDR
Sega/Yamaha recordable Gigabyte Disc.
Definition aaru.h:229
@ CDDA
CD Digital Audio (Red Book).
Definition aaru.h:107
@ Pippin
Definition aaru.h:714
@ CDMRW
Mount-Rainier CD-RW.
Definition aaru.h:117
@ MEGACD
Sega MegaCD.
Definition aaru.h:226
@ VideoNowColor
Hasbro VideoNow Color disc.
Definition aaru.h:784
@ CDIREADY
CD-i Ready, contains a track before the first TOC track, in mode 2, and all TOC tracks are Audio.
Definition aaru.h:130
@ GOD
Nintendo GameCube Optical Disc.
Definition aaru.h:514
@ CDROM
CD-ROM (Yellow Book).
Definition aaru.h:111
@ HDDVDROM
HD DVD-ROM (applies to HD DVD Video).
Definition aaru.h:150
@ MegaLD
Definition aaru.h:183
@ VCD
Video CD (White Book).
Definition aaru.h:118
@ SuperCDROM2
PC-Engine / TurboGrafx CD.
Definition aaru.h:236
@ CDRW
CD-ReWritable (Orange Book).
Definition aaru.h:116
@ SVCD
Super Video CD (White Book).
Definition aaru.h:119
@ DVDPRWDL
DVD+RW DL.
Definition aaru.h:141
@ BDRXL
BD-R XL.
Definition aaru.h:162
@ DDCDR
DD CD-R (Purple Book).
Definition aaru.h:123
@ NeoGeoCD
NEO-GEO CD.
Definition aaru.h:240
@ DVDRW
DVD-RW.
Definition aaru.h:138
@ CDPLUS
CD+ (Blue Book).
Definition aaru.h:113
@ CDTV
Commodore CDTV.
Definition aaru.h:241
@ DVDRWDL
DVD-RW DL.
Definition aaru.h:145
@ HDDVDRDL
HD DVD-R DL.
Definition aaru.h:154
@ FMTOWNS
Fujitsu FM Towns bootable CD (mixed-mode proprietary extensions).
Definition aaru.h:132
@ PS1CD
Sony PlayStation game CD.
Definition aaru.h:207
@ HDDVDRWDL
HD DVD-RW DL.
Definition aaru.h:155
@ XGD3
Microsoft X-box 360 Game Disc.
Definition aaru.h:221
@ WOD
Nintendo Wii Optical Disc.
Definition aaru.h:524
@ PS3BD
Sony PlayStation 3 game Blu-ray.
Definition aaru.h:211
@ UMD
Sony PlayStation Portable Universal Media Disc (ECMA-365).
Definition aaru.h:213
@ XGD
Microsoft X-box Game Disc.
Definition aaru.h:219
@ EVD
Enhanced Versatile Disc.
Definition aaru.h:168
@ SACD
Super Audio CD (Scarlet Book).
Definition aaru.h:121
@ DVDPRDL
DVD+R DL.
Definition aaru.h:143
@ HDDVDRAM
HD DVD-RAM.
Definition aaru.h:151
@ DVDR
DVD-R.
Definition aaru.h:137
@ PS3DVD
Sony PlayStation 3 game DVD.
Definition aaru.h:210
@ CDMIDI
CD-MIDI (Red Book).
Definition aaru.h:126
@ PCFX
NEC PC-FX.
Definition aaru.h:239
@ BDROM
BD-ROM (and BD Video).
Definition aaru.h:159
@ JaguarCD
Atari Jaguar CD.
Definition aaru.h:237
@ PS2DVD
Sony PlayStation 2 game DVD.
Definition aaru.h:209
@ XGD4
Microsoft X-box One Game Disc.
Definition aaru.h:222
@ VideoNow
Hasbro VideoNow 85 mm proprietary video disc.
Definition aaru.h:783
@ VideoNowXp
Hasbro VideoNow XP higher capacity disc.
Definition aaru.h:785
@ VCDHD
Versatile Compact Disc High Density.
Definition aaru.h:173
@ CD
Any unknown or standard violating CD.
Definition aaru.h:106
@ GDROM
Sega/Yamaha Gigabyte Disc.
Definition aaru.h:228
@ SATURNCD
Sega Saturn disc.
Definition aaru.h:227
@ CBHD
China Blue High Definition.
Definition aaru.h:171
@ BDR
BD-R.
Definition aaru.h:160
@ XGD2
Microsoft X-box 360 Game Disc.
Definition aaru.h:220
@ LDROM
Pioneer LaserDisc data.
Definition aaru.h:180
@ PS4BD
Sony PlayStation 4 game Blu-ray.
Definition aaru.h:212
@ HDDVDR
HD DVD-R.
Definition aaru.h:152
@ HDVMD
High Definition Versatile Multilayer Disc.
Definition aaru.h:172
@ HDDVDRW
HD DVD-RW.
Definition aaru.h:153
@ MilCD
Sega Dreamcast MIL-CD enhanced multimedia disc.
Definition aaru.h:231
@ BDRE
BD-RE.
Definition aaru.h:161
@ DTSCD
DTS audio CD (non-standard).
Definition aaru.h:125
@ DVDPR
DVD+R.
Definition aaru.h:139
@ DDCDRW
DD CD-RW (Purple Book).
Definition aaru.h:124
@ FVD
Forward Versatile Disc.
Definition aaru.h:169
@ CDI
CD-i (Green Book).
Definition aaru.h:110
@ Playdia
Bandai Playdia.
Definition aaru.h:244
@ DVDPRW
DVD+RW.
Definition aaru.h:140
@ Nuon
Nuon (DVD based videogame console).
Definition aaru.h:243
@ CD32
Amiga CD32.
Definition aaru.h:242
@ LVROM
Definition aaru.h:182
@ DVDDownload
DVD-Download.
Definition aaru.h:146
@ DVDRDL
DVD-R DL.
Definition aaru.h:142
@ WUOD
Nintendo Wii U Optical Disc.
Definition aaru.h:525
@ DVDROM
DVD-ROM (applies to DVD Video and DVD Audio).
Definition aaru.h:136
@ LDROM2
Definition aaru.h:181
@ FDDVD
Five Dimensional disc.
Definition aaru.h:175
@ PS2CD
Sony PlayStation 2 game CD.
Definition aaru.h:208
@ DVDRAM
DVD-RAM.
Definition aaru.h:144
int32_t aaruf_get_datatype_for_media_tag_type(const int32_t tag_type)
Converts an Aaru media tag type to an image data type.
Definition helpers.c:223
void generate_random_bytes(uint8_t *buffer, size_t length)
Generates cryptographically strong random bytes.
Definition helpers.c:532
int32_t aaruf_get_media_tag_type_for_datatype(const int32_t type)
Converts an image data type to an Aaru media tag type.
Definition helpers.c:39
int32_t aaruf_get_xml_mediatype(const int32_t type)
Definition helpers.c:399
int compare_extents(const void *a, const void *b)
Comparison function for sorting DumpExtent arrays by start sector.
Definition helpers.c:511
Inclusive [start,end] logical sector range contributed by a single hardware environment.
Definition context.h:431
uint64_t start
Starting LBA (inclusive).
Definition context.h:432