diff options
| author | jhurst <jhurst@cinecert.com> | 2006-04-05 23:03:55 +0000 |
|---|---|---|
| committer | jhurst <> | 2006-04-05 23:03:55 +0000 |
| commit | bfedf725dac9d13f3a02fe69f45c302ab29d2b1e (patch) | |
| tree | 4a746f759dcb62ebeb6309373e7579d6048f4af6 /src/KLV.h | |
| parent | fdf31e0105bf8272a6b7fa9c4039941dff37a271 (diff) | |
ginormo merge-back with Kumu, SMPTE MIC key and MPEG parser fix
Diffstat (limited to 'src/KLV.h')
| -rwxr-xr-x | src/KLV.h | 81 |
1 files changed, 66 insertions, 15 deletions
@@ -32,8 +32,9 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef _KLV_H_ #define _KLV_H_ -#include "FileIO.h" -#include "MemIO.h" +#include <KM_fileio.h> +#include <KM_memio.h> +#include "AS_DCP.h" #include "MDD.h" @@ -48,6 +49,30 @@ namespace ASDCP const ui32_t IdentBufferLen = 128; +const ui32_t IntBufferLen = 64; + +inline const char* i64sz(i64_t i, char* buf) +{ + assert(buf); +#ifdef WIN32 + snprintf(buf, IntBufferLen, "%I64d", i); +#else + snprintf(buf, IntBufferLen, "%lld", i); +#endif + return buf; +} + +inline const char* ui64sz(ui64_t i, char* buf) +{ + assert(buf); +#ifdef WIN32 + snprintf(buf, IntBufferLen, "%I64u", i); +#else + snprintf(buf, IntBufferLen, "%llu", i); +#endif + return buf; +} + struct TagValue { byte_t a; @@ -66,21 +91,47 @@ namespace ASDCP } }; - // - class IArchive + using Kumu::UUID; + + // Universal Label + class UL : public Kumu::Identifier<SMPTE_UL_LENGTH> { public: - virtual ~IArchive() {} - virtual Result_t Unarchive(ASDCP::MemIOReader& Reader) = 0; - virtual bool HasValue() const = 0; - virtual Result_t Archive(ASDCP::MemIOWriter& Writer) const = 0; + UL() {} + UL(const byte_t* rhs) { + assert(rhs); + Set(rhs); + } + + UL(const UL& rhs) { + Set(rhs.m_Value); + } + + virtual ~UL() {} + + bool operator==(const UL& rhs) const { + return ( memcmp(m_Value, rhs.m_Value, SMPTE_UL_LENGTH) == 0 ) ? true : false; + } + + const char* EncodeString(char* str_buf, ui32_t buf_len) const; + }; + + // UMID + class UMID : public Kumu::Identifier<SMPTE_UMID_LENGTH> + { + public: + UMID() {} + UMID(const UMID &rhs) { + Set(rhs.m_Value); + }; + virtual ~UMID() {} + + void MakeUMID(int Type); + void MakeUMID(int Type, const UUID& ID); + const char* EncodeString(char* str_buf, ui32_t buf_len) const; }; -} // namespace ASDCP -#include "Identifier.h" -namespace ASDCP -{ // struct MDDEntry { @@ -164,9 +215,9 @@ namespace ASDCP KLVFilePacket() {} virtual ~KLVFilePacket() {} - virtual Result_t InitFromFile(const FileReader&); - virtual Result_t InitFromFile(const FileReader&, const byte_t* label); - virtual Result_t WriteKLToFile(FileWriter& Writer, const byte_t* label, ui32_t length); + virtual Result_t InitFromFile(const Kumu::FileReader&); + virtual Result_t InitFromFile(const Kumu::FileReader&, const byte_t* label); + virtual Result_t WriteKLToFile(Kumu::FileWriter& Writer, const byte_t* label, ui32_t length); }; } // namespace ASDCP |
