summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2020-02-10 09:19:05 -0800
committerjhurst <jhurst@cinecert.com>2020-02-10 09:19:05 -0800
commit1639efe792ff4ce5c74ba5adc6aba81647b3c0c5 (patch)
tree2a081d6d41764ccdb1fa863dab96f5379b186750
parenta6f27af72d24ed56e41e7e9a3b68b9117682acb4 (diff)
Added support for DisplayType, IntrinsicPictureResolution, ZPositionInUse properties
-rw-r--r--src/MDD.cpp13
-rwxr-xr-xsrc/MDD.h3
-rwxr-xr-xsrc/MXFTypes.cpp6
-rwxr-xr-xsrc/MXFTypes.h2
-rwxr-xr-xsrc/Metadata.cpp27
-rwxr-xr-xsrc/Metadata.h7
6 files changed, 50 insertions, 8 deletions
diff --git a/src/MDD.cpp b/src/MDD.cpp
index 06d0fde..6db1bec 100644
--- a/src/MDD.cpp
+++ b/src/MDD.cpp
@@ -1627,9 +1627,18 @@ static const ASDCP::MDDEntry s_MDD_Table[] = {
{ { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0D,
0x04, 0x01, 0x02, 0x02, 0x03, 0x01, 0x08, 0x01 },
{0}, false, "HTJ2KPictureCodingSchemeGeneric" }, // 524
- { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0d, // 525
+ { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0d,
0x0d, 0x0f, 0x03, 0x02, 0x01, 0x01, 0x00, 0x00 },
- {0}, false, "AudioChannelSLVS" },
+ {0}, false, "AudioChannelSLVS" }, // 525
+ { { 0x06, 0x0e, 0x2b, 0x34, 01, 0x01, 0x01, 0x0e,
+ 0x06, 0x01, 0x01, 0x02, 04, 0x00, 0x00, 0x00 },
+ {0}, false, "TimedTextDescriptor_DisplayType" }, // 526
+ { { 0x06, 0x0e, 0x2b, 0x34, 01, 0x01, 0x01, 0x0e,
+ 0x06, 0x01, 0x01, 0x02, 05, 0x00, 0x00, 0x00 },
+ {0}, false, "TimedTextDescriptor_IntrinsicPictureResolution" }, // 527
+ { { 0x06, 0x0e, 0x2b, 0x34, 01, 0x01, 0x01, 0x0e,
+ 06, 0x01, 0x01, 0x02, 06, 0x00, 0x00, 0x00 },
+ {0}, false, "TimedTextDescriptor_ZPositionInUse" }, // 528
{ {0}, {0}, false, 0 },
};
diff --git a/src/MDD.h b/src/MDD.h
index d704217..4e3dcaf 100755
--- a/src/MDD.h
+++ b/src/MDD.h
@@ -561,6 +561,9 @@ namespace ASDCP {
MDD_HTJ2KPictureCodingScheme, // 523
MDD_HTJ2KPictureCodingSchemeGeneric, // 524
MDD_AudioChannelSLVS, // 525
+ MDD_TimedTextDescriptor_DisplayType, // 526
+ MDD_TimedTextDescriptor_IntrinsicPictureResolution, // 527
+ MDD_TimedTextDescriptor_ZPositionInUse, // 528
MDD_Max
}; // enum MDD_t
diff --git a/src/MXFTypes.cpp b/src/MXFTypes.cpp
index ec3ac2f..72338bb 100755
--- a/src/MXFTypes.cpp
+++ b/src/MXFTypes.cpp
@@ -777,7 +777,7 @@ ASDCP::MXF::Raw::EncodeString(char* str_buf, ui32_t buf_len) const
//
bool
-ASDCP::MXF::J2KExtendedCapabilities::Archive(Kumu::MemIOWriter* Writer) const {
+ASDCP::MXF::J2KExtendedCapabilitiesType::Archive(Kumu::MemIOWriter* Writer) const {
if ( ! Writer->WriteUi32BE(Pcap) )
{
return false;
@@ -793,7 +793,7 @@ ASDCP::MXF::J2KExtendedCapabilities::Archive(Kumu::MemIOWriter* Writer) const {
//
bool
-ASDCP::MXF::J2KExtendedCapabilities::Unarchive(Kumu::MemIOReader* Reader) {
+ASDCP::MXF::J2KExtendedCapabilitiesType::Unarchive(Kumu::MemIOReader* Reader) {
if ( ! Reader->ReadUi32BE(&Pcap) )
{
return false;
@@ -809,7 +809,7 @@ ASDCP::MXF::J2KExtendedCapabilities::Unarchive(Kumu::MemIOReader* Reader) {
//
const char*
-ASDCP::MXF::J2KExtendedCapabilities::EncodeString(char* str_buf, ui32_t buf_len) const
+ASDCP::MXF::J2KExtendedCapabilitiesType::EncodeString(char* str_buf, ui32_t buf_len) const
{
const int str_len = ( sizeof(ui16_t) + 1 ) * JP2K::MaxCapabilities;
diff --git a/src/MXFTypes.h b/src/MXFTypes.h
index eb8b3df..baf27c4 100755
--- a/src/MXFTypes.h
+++ b/src/MXFTypes.h
@@ -690,7 +690,7 @@ namespace ASDCP
};
//
- class J2KExtendedCapabilities : public Kumu::IArchive
+ class J2KExtendedCapabilitiesType : public Kumu::IArchive
{
public:
ui32_t Pcap;
diff --git a/src/Metadata.cpp b/src/Metadata.cpp
index 9b7f95e..adaac11 100755
--- a/src/Metadata.cpp
+++ b/src/Metadata.cpp
@@ -3101,6 +3101,18 @@ TimedTextDescriptor::InitFromTLVSet(TLVReader& TLVSet)
result = TLVSet.ReadObject(OBJ_READ_ARGS_OPT(TimedTextDescriptor, RFC5646LanguageTagList));
RFC5646LanguageTagList.set_has_value( result == RESULT_OK );
}
+ if ( ASDCP_SUCCESS(result) ) {
+ result = TLVSet.ReadObject(OBJ_READ_ARGS_OPT(TimedTextDescriptor, DisplayType));
+ DisplayType.set_has_value( result == RESULT_OK );
+ }
+ if ( ASDCP_SUCCESS(result) ) {
+ result = TLVSet.ReadObject(OBJ_READ_ARGS_OPT(TimedTextDescriptor, IntrinsicPictureResolution));
+ IntrinsicPictureResolution.set_has_value( result == RESULT_OK );
+ }
+ if ( ASDCP_SUCCESS(result) ) {
+ result = TLVSet.ReadUi8(OBJ_READ_ARGS_OPT(TimedTextDescriptor, ZPositionInUse));
+ ZPositionInUse.set_has_value( result == RESULT_OK );
+ }
return result;
}
@@ -3114,6 +3126,9 @@ TimedTextDescriptor::WriteToTLVSet(TLVWriter& TLVSet)
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, UCSEncoding));
if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(TimedTextDescriptor, NamespaceURI));
if ( ASDCP_SUCCESS(result) && ! RFC5646LanguageTagList.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(TimedTextDescriptor, RFC5646LanguageTagList));
+ if ( ASDCP_SUCCESS(result) && ! DisplayType.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(TimedTextDescriptor, DisplayType));
+ if ( ASDCP_SUCCESS(result) && ! IntrinsicPictureResolution.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(TimedTextDescriptor, IntrinsicPictureResolution));
+ if ( ASDCP_SUCCESS(result) && ! ZPositionInUse.empty() ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS_OPT(TimedTextDescriptor, ZPositionInUse));
return result;
}
@@ -3126,6 +3141,9 @@ TimedTextDescriptor::Copy(const TimedTextDescriptor& rhs)
UCSEncoding = rhs.UCSEncoding;
NamespaceURI = rhs.NamespaceURI;
RFC5646LanguageTagList = rhs.RFC5646LanguageTagList;
+ DisplayType = rhs.DisplayType;
+ IntrinsicPictureResolution = rhs.IntrinsicPictureResolution;
+ ZPositionInUse = rhs.ZPositionInUse;
}
//
@@ -3145,6 +3163,15 @@ TimedTextDescriptor::Dump(FILE* stream)
if ( ! RFC5646LanguageTagList.empty() ) {
fprintf(stream, " %22s = %s\n", "RFC5646LanguageTagList", RFC5646LanguageTagList.get().EncodeString(identbuf, IdentBufferLen));
}
+ if ( ! DisplayType.empty() ) {
+ fprintf(stream, " %22s = %s\n", "DisplayType", DisplayType.get().EncodeString(identbuf, IdentBufferLen));
+ }
+ if ( ! IntrinsicPictureResolution.empty() ) {
+ fprintf(stream, " %22s = %s\n", "IntrinsicPictureResolution", IntrinsicPictureResolution.get().EncodeString(identbuf, IdentBufferLen));
+ }
+ if ( ! ZPositionInUse.empty() ) {
+ fprintf(stream, " %22s = %d\n", "ZPositionInUse", ZPositionInUse.get());
+ }
}
//
diff --git a/src/Metadata.h b/src/Metadata.h
index 03b3169..c624784 100755
--- a/src/Metadata.h
+++ b/src/Metadata.h
@@ -571,7 +571,7 @@ namespace ASDCP
optional_property<Raw > CodingStyleDefault;
optional_property<Raw > QuantizationDefault;
optional_property<RGBALayout > J2CLayout;
- optional_property<J2KExtendedCapabilities > J2KExtendedCapabilities;
+ optional_property<J2KExtendedCapabilitiesType > J2KExtendedCapabilities;
optional_property<Array<Kumu::ArchivableUi16> > J2KProfile;
optional_property<Array<Kumu::ArchivableUi16> > J2KCorrespondingProfile;
@@ -810,6 +810,9 @@ namespace ASDCP
UTF16String UCSEncoding;
UTF16String NamespaceURI;
optional_property<UTF16String > RFC5646LanguageTagList;
+ optional_property<UTF16String > DisplayType;
+ optional_property<UTF16String > IntrinsicPictureResolution;
+ optional_property<ui8_t > ZPositionInUse;
TimedTextDescriptor(const Dictionary*& d);
TimedTextDescriptor(const TimedTextDescriptor& rhs);
@@ -872,7 +875,7 @@ namespace ASDCP
virtual Result_t WriteToBuffer(ASDCP::FrameBuffer&);
};
- // A ContainerConstraintsSubDescriptor is required to be present in the top level File Descriptor for the Constrained Generic Container per ST 379-2
+ //
class ContainerConstraintsSubDescriptor : public InterchangeObject
{
ContainerConstraintsSubDescriptor();