summaryrefslogtreecommitdiff
path: root/src/AS_DCP.h
diff options
context:
space:
mode:
authorPierre-Anthony Lemieux <pal@palemieux.com>2019-11-28 10:58:15 -0800
committerPierre-Anthony Lemieux <pal@palemieux.com>2019-11-28 10:58:15 -0800
commit2a1a0da4f67debb7dcfd01b885dad35279f27663 (patch)
treea9d63ba3ca95aa0b7837310b61685312b3d12824 /src/AS_DCP.h
parent20c2f749a4593c418259bcf8b5f6f0775b70d910 (diff)
Added support for CAP, PRF and CPF markers
Improved Marker vs Marker Segment discrimination
Diffstat (limited to 'src/AS_DCP.h')
-rwxr-xr-xsrc/AS_DCP.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/AS_DCP.h b/src/AS_DCP.h
index 96d066c..b28f114 100755
--- a/src/AS_DCP.h
+++ b/src/AS_DCP.h
@@ -1048,6 +1048,9 @@ namespace ASDCP {
const ui32_t MaxComponents = 3;
const ui32_t MaxPrecincts = 32; // ISO 15444-1 Annex A.6.1
const ui32_t MaxDefaults = 256; // made up
+ const ui8_t MaxCapabilities = 32;
+ const ui16_t MaxPRFN = 4;
+ const ui16_t MaxCPFN = 4;
#pragma pack(1)
struct ImageComponent_t // ISO 15444-1 Annex A.5.1
@@ -1085,6 +1088,25 @@ namespace ASDCP {
ui8_t SPqcd[MaxDefaults];
ui8_t SPqcdLength;
};
+
+ struct ExtendedCapabilities_t // ISO 15444-1 Annex A.5.2
+ {
+ ui32_t Pcap; // Pcap = 0 means that no extended capabilities are required
+ ui16_t Ccap[MaxCapabilities]; // Ccap^i in ISO/IEC 15444-1 corresponds to Ccap[i -1]
+ };
+
+ struct Profile_t // ISO 15444-1
+ {
+ ui16_t N; // N = 0 means that the profile is signaled through Rsiz exclusively
+ ui16_t Pprf[MaxPRFN]; // Pprf^i in ISO/IEC 15444-1 corresponds to Pprf[i -1]
+ };
+
+ struct CorrespondingProfile_t // ISO 15444-1
+ {
+ ui16_t N; // N = 0 means that no corresponding profile is signaled
+ ui16_t Pcpf[MaxCPFN]; // Pcpf^i in ISO/IEC 15444-1 corresponds to Pcpf[i -1]
+ };
+
#pragma pack()
struct PictureDescriptor
@@ -1108,6 +1130,9 @@ namespace ASDCP {
ImageComponent_t ImageComponents[MaxComponents];
CodingStyleDefault_t CodingStyleDefault;
QuantizationDefault_t QuantizationDefault;
+ ExtendedCapabilities_t ExtendedCapabilities;
+ Profile_t Profile;
+ CorrespondingProfile_t CorrespondingProfile;
};
// Print debugging information to std::ostream