summaryrefslogtreecommitdiff
path: root/src/MXFTypes.cpp
diff options
context:
space:
mode:
authorJohn Hurst <jhurst@cinecert.com>2019-12-30 14:03:53 -0800
committerGitHub <noreply@github.com>2019-12-30 14:03:53 -0800
commit9e269bd45830f54551722a65b0d7aa8f327e17dc (patch)
tree6e03793692f45418ea89c55edcb95ce89d9aad5b /src/MXFTypes.cpp
parenta67f55782d4758355190fe3f14ac6159b9d79e1e (diff)
parent39d533e10e9f5248c557caa0777c8c10ed5d737c (diff)
Merge pull request #20 from cinecert/htj2c
WIP: add support for ST 422:2019
Diffstat (limited to 'src/MXFTypes.cpp')
-rwxr-xr-xsrc/MXFTypes.cpp59
1 files changed, 58 insertions, 1 deletions
diff --git a/src/MXFTypes.cpp b/src/MXFTypes.cpp
index a98a4d2..39d928b 100755
--- a/src/MXFTypes.cpp
+++ b/src/MXFTypes.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2005-2016, John Hurst
+Copyright (c) 2005-2019, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -774,6 +774,63 @@ ASDCP::MXF::Raw::EncodeString(char* str_buf, ui32_t buf_len) const
return str_buf;
}
+
+//
+bool
+ASDCP::MXF::J2KExtendedCapabilities::Archive(Kumu::MemIOWriter* Writer) const {
+ if ( ! Writer->WriteUi32BE(Pcap) )
+ {
+ return false;
+ }
+
+ if ( ! Ccap.Archive(Writer) )
+ {
+ return false;
+ }
+
+ return true;
+}
+
+//
+bool
+ASDCP::MXF::J2KExtendedCapabilities::Unarchive(Kumu::MemIOReader* Reader) {
+ if ( ! Reader->ReadUi32BE(&Pcap) )
+ {
+ return false;
+ }
+
+ if ( ! Ccap.Unarchive(Reader) )
+ {
+ return false;
+ }
+
+ return true;
+}
+
+//
+const char*
+ASDCP::MXF::J2KExtendedCapabilities::EncodeString(char* str_buf, ui32_t buf_len) const
+{
+ const int str_len = ( sizeof(ui16_t) + 1 ) * JP2K::MaxCapabilities;
+
+ if ( Pcap != 0 && buf_len > str_len )
+ {
+ for ( int i = 0; i < Ccap.size(); ++i )
+ {
+ snprintf(str_buf+(i*3), 4, "%02hx.", Ccap[i]);
+ }
+
+ str_buf[str_len-1] = 0;
+ }
+ else
+ {
+ str_buf[0] = 0;
+ }
+
+ return str_buf;
+}
+
+
//
// end MXFTypes.cpp
//