X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2FAS_DCP_internal.h;h=ed9eec7e92dbd9d0878ba1bd60a942475a3beca1;hb=ba95e2de6e57669359dd72adedaf756a218437fa;hp=7242ef8ae178e1f86b5f4ef9aebe08574b474297;hpb=6c4db45a3a01b25d9ba3cd4c78210559d7131c60;p=asdcplib.git diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h index 7242ef8..ed9eec7 100755 --- a/src/AS_DCP_internal.h +++ b/src/AS_DCP_internal.h @@ -90,6 +90,23 @@ namespace ASDCP Result_t EncryptFrameBuffer(const ASDCP::FrameBuffer&, ASDCP::FrameBuffer&, AESEncContext*); Result_t DecryptFrameBuffer(const ASDCP::FrameBuffer&, ASDCP::FrameBuffer&, AESDecContext*); + // + class KLReader : public ASDCP::KLVPacket + { + ASDCP_NO_COPY_CONSTRUCT(KLReader); + byte_t m_KeyBuf[SMPTE_UL_LENGTH*2]; + + public: + KLReader() {} + ~KLReader() {} + + inline const byte_t* Key() { return m_KeyBuf; } + inline const ui64_t Length() { return m_ValueLength; } + inline const ui64_t KLLength() { return m_KLLength; } + + Result_t ReadKLFromFile(Kumu::FileReader& Reader); + }; + // class h__Reader { @@ -117,7 +134,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(); }; @@ -177,7 +194,7 @@ namespace ASDCP SourcePackage* m_FilePackage; FileDescriptor* m_EssenceDescriptor; - std::list m_EssenceSubDescriptorList; + std::list m_EssenceSubDescriptorList; ui32_t m_FramesWritten; ui64_t m_StreamOffset; @@ -195,7 +212,7 @@ namespace ASDCP const std::string& PackageLabel); void AddDMSegment(const MXF::Rational& EditRate, ui32_t TCFrameRate, const std::string& TrackName, const UL& DataDefinition, - const std::string& PackageLabel, const UMID& PackageUID); + const std::string& PackageLabel); void AddEssenceDescriptor(const UL& WrappingUL); Result_t CreateBodyPart(const MXF::Rational& EditRate, ui32_t BytesPerEditUnit = 0);