X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2FAS_DCP_internal.h;h=464771d02ca7012aaf0a6c1475f989c797a602ac;hb=e69fe859d8723724ac972bb70de51f8c6ce1699a;hp=143bccfc8dc5ac8c889b5e523930ebd6f8119a20;hpb=deadc1bf01e8bc68905c7d33578ffb77b8317c8f;p=asdcplib.git diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h index 143bccf..464771d 100755 --- a/src/AS_DCP_internal.h +++ b/src/AS_DCP_internal.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2004-2006, John Hurst +Copyright (c) 2004-2009, John Hurst All rights reserved. Redistribution and use in source and binary forms, with or without @@ -86,7 +86,7 @@ namespace ASDCP // Result_t MD_to_WriterInfo(MXF::Identification*, WriterInfo&); - Result_t MD_to_CryptoInfo(MXF::CryptographicContext*, WriterInfo&); + Result_t MD_to_CryptoInfo(MXF::CryptographicContext*, WriterInfo&, const Dictionary&); Result_t EncryptFrameBuffer(const ASDCP::FrameBuffer&, ASDCP::FrameBuffer&, AESEncContext*); Result_t DecryptFrameBuffer(const ASDCP::FrameBuffer&, ASDCP::FrameBuffer&, AESDecContext*); @@ -111,8 +111,10 @@ namespace ASDCP class h__Reader { ASDCP_NO_COPY_CONSTRUCT(h__Reader); + h__Reader(); public: + const Dictionary* m_Dict; Kumu::FileReader m_File; OPAtomHeader m_HeaderPart; Partition m_BodyPart; @@ -122,7 +124,7 @@ namespace ASDCP ASDCP::FrameBuffer m_CtFrameBuf; Kumu::fpos_t m_LastPosition; - h__Reader(); + h__Reader(const Dictionary&); virtual ~h__Reader(); Result_t InitInfo(); @@ -134,7 +136,7 @@ namespace ASDCP const byte_t* EssenceUL, AESDecContext* Ctx, HMACContext* HMAC); // reads from current position - Result_t ReadEKLVPacket(ui32_t FrameNum, ASDCP::FrameBuffer& FrameBuf, + Result_t ReadEKLVPacket(ui32_t FrameNum, ui32_t SequenceNum, ASDCP::FrameBuffer& FrameBuf, const byte_t* EssenceUL, AESDecContext* Ctx, HMACContext* HMAC); void Close(); }; @@ -181,8 +183,10 @@ namespace ASDCP class h__Writer { ASDCP_NO_COPY_CONSTRUCT(h__Writer); + h__Writer(); public: + const Dictionary* m_Dict; Kumu::FileWriter m_File; ui32_t m_HeaderSize; OPAtomHeader m_HeaderPart; @@ -203,23 +207,23 @@ namespace ASDCP WriterInfo m_Info; DurationElementList_t m_DurationUpdateList; - h__Writer(); + h__Writer(const Dictionary&); virtual ~h__Writer(); void InitHeader(); void AddSourceClip(const MXF::Rational& EditRate, ui32_t TCFrameRate, - const std::string& TrackName, const UL& DataDefinition, - const std::string& PackageLabel); + const std::string& TrackName, const UL& EssenceUL, + const UL& DataDefinition, const std::string& PackageLabel); void AddDMSegment(const MXF::Rational& EditRate, ui32_t TCFrameRate, - const std::string& TrackName, const UL& DataDefinition, + const std::string& TrackName, const UL& DataDefinition, const std::string& PackageLabel); void AddEssenceDescriptor(const UL& WrappingUL); Result_t CreateBodyPart(const MXF::Rational& EditRate, ui32_t BytesPerEditUnit = 0); // all the above for a single source clip Result_t WriteMXFHeader(const std::string& PackageLabel, const UL& WrappingUL, - const std::string& TrackName, const UL& DataDefinition, - const MXF::Rational& EditRate, + const std::string& TrackName, const UL& EssenceUL, + const UL& DataDefinition, const MXF::Rational& EditRate, ui32_t TCFrameRate, ui32_t BytesPerEditUnit = 0); Result_t WriteEKLVPacket(const ASDCP::FrameBuffer& FrameBuf,