diff options
| author | jhurst <jhurst@cinecert.com> | 2019-11-24 16:05:31 -0800 |
|---|---|---|
| committer | jhurst <jhurst@cinecert.com> | 2019-11-24 16:05:31 -0800 |
| commit | cf8ae65acd6ffdc424604a4d3350b4eca47af220 (patch) | |
| tree | 89fb7c23f3d404769a82869a9ed5859056b414cf /src | |
| parent | cf81f87c1517aabb892f0ea29ab5b6f7d8a09d47 (diff) | |
checkpoint
Diffstat (limited to 'src')
| -rw-r--r-- | src/MDD.cpp | 21 | ||||
| -rwxr-xr-x | src/MDD.h | 6 | ||||
| -rwxr-xr-x | src/MXFTypes.h | 25 | ||||
| -rwxr-xr-x | src/Metadata.cpp | 27 | ||||
| -rwxr-xr-x | src/Metadata.h | 3 |
5 files changed, 81 insertions, 1 deletions
diff --git a/src/MDD.cpp b/src/MDD.cpp index c8de004..71aefca 100644 --- a/src/MDD.cpp +++ b/src/MDD.cpp @@ -1608,7 +1608,26 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { {0}, false, "ACESFrameWrappedEssence" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0d, // 518 0x03, 0x02, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00 }, - {0}, false, "DCAudioChannel_FSKSyncSignalChannel" }, + {0}, false, "DCAudioChannel_FSKSyncSignalChannel" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, + 0x04, 0x01, 0x06, 0x03, 0x0f, 0x00, 0x00, 0x00 }, + {0}, false, "JPEG2000PictureSubDescriptor_J2KExtendedCapabilities" }, // 519 + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, + 0x04, 0x01, 0x06, 0x03, 0x10, 0x00, 0x00, 0x00 }, + {0}, false, "JPEG2000PictureSubDescriptor_J2KProfile" }, // 520 + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, + 0x04, 0x01, 0x06, 0x03, 0x11, 0x00, 0x00, 0x00 }, + {0}, false, "JPEG2000PictureSubDescriptor_J2KCorrespondingProfile" }, // 521 + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x04, 0x01, 0x01, + 0x03, 0x01, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00 }, + {0}, false, "J2KExtendedCapabilities" }, // 522 + { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0D, + 0x04, 0x01, 0x02, 0x02, 0x03, 0x01, 0x08, 0x00 }, + {0}, false, "HTJ2KPictureCodingScheme" }, // 523 + { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0D, + 0x04, 0x01, 0x02, 0x02, 0x03, 0x01, 0x08, 0x01 }, + {0}, false, "HTJ2KPictureCodingSchemeGeneric" }, // 524 + { {0}, {0}, false, 0 }, }; @@ -554,6 +554,12 @@ namespace ASDCP { MDD_ACESUncompressedMonoscopicWithAlpha, // 516 MDD_ACESFrameWrappedEssence, // 517 MDD_DCAudioChannel_FSKSyncSignalChannel, // 518 + MDD_JPEG2000PictureSubDescriptor_J2KExtendedCapabilities, // 519 + MDD_JPEG2000PictureSubDescriptor_J2KProfile, // 520 + MDD_JPEG2000PictureSubDescriptor_J2KCorrespondingProfile, // 521 + MDD_J2KExtendedCapabilities, // 522 + MDD_HTJ2KPictureCodingScheme, // 523 + MDD_HTJ2KPictureCodingSchemeGeneric, // 524 MDD_Max }; // enum MDD_t diff --git a/src/MXFTypes.h b/src/MXFTypes.h index c49fed9..0c79e8c 100755 --- a/src/MXFTypes.h +++ b/src/MXFTypes.h @@ -688,6 +688,31 @@ namespace ASDCP const char* EncodeString(char* str_buf, ui32_t buf_len) const; }; + class J2KExtendedCapabilities : public Kumu::IArchive + { + public: + i8_t Pcap; + i8_t Ccapi[16]; // this is certainly wrong, need the spec + + bool HasValue() const { return true; } + ui32_t ArchiveLength() const { return 0; } + + bool Archive(Kumu::MemIOWriter* Writer) const { + return true; + } + + bool Unarchive(Kumu::MemIOReader* Reader) { + return true; + } + + const char* EncodeString(char* str_buf, ui32_t buf_len) const + { + str_buf[0] = 0; + return str_buf; + } + + }; + } // namespace MXF } // namespace ASDCP diff --git a/src/Metadata.cpp b/src/Metadata.cpp index b21dc23..d81b70a 100755 --- a/src/Metadata.cpp +++ b/src/Metadata.cpp @@ -2125,6 +2125,18 @@ JPEG2000PictureSubDescriptor::InitFromTLVSet(TLVReader& TLVSet) result = TLVSet.ReadObject(OBJ_READ_ARGS_OPT(JPEG2000PictureSubDescriptor, J2CLayout)); J2CLayout.set_has_value( result == RESULT_OK ); } + if ( ASDCP_SUCCESS(result) ) { + result = TLVSet.ReadObject(OBJ_READ_ARGS_OPT(JPEG2000PictureSubDescriptor, J2KExtendedCapabilities)); + J2KExtendedCapabilities.set_has_value( result == RESULT_OK ); + } + if ( ASDCP_SUCCESS(result) ) { + result = TLVSet.ReadUi16(OBJ_READ_ARGS_OPT(JPEG2000PictureSubDescriptor, J2KProfile)); + J2KProfile.set_has_value( result == RESULT_OK ); + } + if ( ASDCP_SUCCESS(result) ) { + result = TLVSet.ReadUi16(OBJ_READ_ARGS_OPT(JPEG2000PictureSubDescriptor, J2KCorrespondingProfile)); + J2KCorrespondingProfile.set_has_value( result == RESULT_OK ); + } return result; } @@ -2148,6 +2160,9 @@ JPEG2000PictureSubDescriptor::WriteToTLVSet(TLVWriter& TLVSet) if ( ASDCP_SUCCESS(result) && ! CodingStyleDefault.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(JPEG2000PictureSubDescriptor, CodingStyleDefault)); if ( ASDCP_SUCCESS(result) && ! QuantizationDefault.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(JPEG2000PictureSubDescriptor, QuantizationDefault)); if ( ASDCP_SUCCESS(result) && ! J2CLayout.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(JPEG2000PictureSubDescriptor, J2CLayout)); + if ( ASDCP_SUCCESS(result) && ! J2KExtendedCapabilities.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(JPEG2000PictureSubDescriptor, J2KExtendedCapabilities)); + if ( ASDCP_SUCCESS(result) && ! J2KProfile.empty() ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS_OPT(JPEG2000PictureSubDescriptor, J2KProfile)); + if ( ASDCP_SUCCESS(result) && ! J2KCorrespondingProfile.empty() ) result = TLVSet.WriteUi16(OBJ_WRITE_ARGS_OPT(JPEG2000PictureSubDescriptor, J2KCorrespondingProfile)); return result; } @@ -2170,6 +2185,9 @@ JPEG2000PictureSubDescriptor::Copy(const JPEG2000PictureSubDescriptor& rhs) CodingStyleDefault = rhs.CodingStyleDefault; QuantizationDefault = rhs.QuantizationDefault; J2CLayout = rhs.J2CLayout; + J2KExtendedCapabilities = rhs.J2KExtendedCapabilities; + J2KProfile = rhs.J2KProfile; + J2KCorrespondingProfile = rhs.J2KCorrespondingProfile; } // @@ -2205,6 +2223,15 @@ JPEG2000PictureSubDescriptor::Dump(FILE* stream) if ( ! J2CLayout.empty() ) { fprintf(stream, " %22s = %s\n", "J2CLayout", J2CLayout.get().EncodeString(identbuf, IdentBufferLen)); } + if ( ! J2KExtendedCapabilities.empty() ) { + fprintf(stream, " %22s = %s\n", "J2KExtendedCapabilities", J2KExtendedCapabilities.get().EncodeString(identbuf, IdentBufferLen)); + } + if ( ! J2KProfile.empty() ) { + fprintf(stream, " %22s = %d\n", "J2KProfile", J2KProfile.get()); + } + if ( ! J2KCorrespondingProfile.empty() ) { + fprintf(stream, " %22s = %d\n", "J2KCorrespondingProfile", J2KCorrespondingProfile.get()); + } } // diff --git a/src/Metadata.h b/src/Metadata.h index b2466ef..f572ce4 100755 --- a/src/Metadata.h +++ b/src/Metadata.h @@ -571,6 +571,9 @@ namespace ASDCP optional_property<Raw > CodingStyleDefault; optional_property<Raw > QuantizationDefault; optional_property<RGBALayout > J2CLayout; + optional_property<J2KExtendedCapabilities > J2KExtendedCapabilities; + optional_property<ui16_t > J2KProfile; + optional_property<ui16_t > J2KCorrespondingProfile; JPEG2000PictureSubDescriptor(const Dictionary*& d); JPEG2000PictureSubDescriptor(const JPEG2000PictureSubDescriptor& rhs); |
