diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-01-04 16:19:04 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-01-04 16:19:04 +0000 |
| commit | f4802823b481b47a240002d086a5caefee3e4b61 (patch) | |
| tree | 06f7eedc862fd9cc1b083da91b753bded5fd8914 /asdcplib/src/h__Writer.cpp | |
| parent | fba3fceee2203833b74631a951ec1364521630be (diff) | |
Fix new asdcplib to build.
Diffstat (limited to 'asdcplib/src/h__Writer.cpp')
| -rwxr-xr-x | asdcplib/src/h__Writer.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/asdcplib/src/h__Writer.cpp b/asdcplib/src/h__Writer.cpp index c0ed2d3b..12f68f05 100755 --- a/asdcplib/src/h__Writer.cpp +++ b/asdcplib/src/h__Writer.cpp @@ -107,7 +107,7 @@ ASDCP::h__ASDCPWriter::CreateBodyPart(const MXF::Rational& EditRate, ui32_t Byte UL OPAtomUL(m_Dict->ul(MDD_OPAtom)); m_BodyPart.OperationalPattern = OPAtomUL; m_RIP.PairArray.push_back(RIP::PartitionPair(1, m_BodyPart.ThisPartition)); // Second RIP Entry - + UL BodyUL(m_Dict->ul(MDD_ClosedCompleteBodyPartition)); result = m_BodyPart.WriteToFile(m_File, BodyUL); } @@ -168,10 +168,19 @@ ASDCP::h__ASDCPWriter::WriteASDCPHeader(const std::string& PackageLabel, const U // Result_t ASDCP::h__ASDCPWriter::WriteEKLVPacket(const ASDCP::FrameBuffer& FrameBuf,const byte_t* EssenceUL, - AESEncContext* Ctx, HMACContext* HMAC) + AESEncContext* Ctx, HMACContext* HMAC, std::string* hash) { return Write_EKLV_Packet(m_File, *m_Dict, m_HeaderPart, m_Info, m_CtFrameBuf, m_FramesWritten, - m_StreamOffset, FrameBuf, EssenceUL, Ctx, HMAC); + m_StreamOffset, FrameBuf, EssenceUL, Ctx, HMAC, hash); +} + +Result_t +ASDCP::h__ASDCPWriter::FakeWriteEKLVPacket(int size) +{ + m_StreamOffset += size; + m_File.Seek(size, Kumu::SP_POS); + + return RESULT_OK; } // standard method of writing the header and footer of a completed MXF file @@ -227,14 +236,16 @@ ASDCP::h__ASDCPWriter::WriteASDCPFooter() // standard method of writing a plaintext or encrypted frame Result_t -ASDCP::Write_EKLV_Packet(Kumu::FileWriter& File, const ASDCP::Dictionary& Dict, const MXF::OP1aHeader& HeaderPart, +ASDCP::Write_EKLV_Packet(Kumu::FileWriter& File, const ASDCP::Dictionary& Dict, const MXF::OP1aHeader&, const ASDCP::WriterInfo& Info, ASDCP::FrameBuffer& CtFrameBuf, ui32_t& FramesWritten, ui64_t & StreamOffset, const ASDCP::FrameBuffer& FrameBuf, const byte_t* EssenceUL, - AESEncContext* Ctx, HMACContext* HMAC) + AESEncContext* Ctx, HMACContext* HMAC, std::string* hash) { Result_t result = RESULT_OK; IntegrityPack IntPack; + File.StartHashing(); + byte_t overhead[128]; Kumu::MemIOWriter Overhead(overhead, 128); @@ -354,7 +365,7 @@ ASDCP::Write_EKLV_Packet(Kumu::FileWriter& File, const ASDCP::Dictionary& Dict, if ( ASDCP_SUCCESS(result) ) result = File.Writev(Overhead.Data(), Overhead.Length()); - + if ( ASDCP_SUCCESS(result) ) result = File.Writev((byte_t*)FrameBuf.RoData(), FrameBuf.Size()); @@ -365,6 +376,10 @@ ASDCP::Write_EKLV_Packet(Kumu::FileWriter& File, const ASDCP::Dictionary& Dict, if ( ASDCP_SUCCESS(result) ) result = File.Writev(); + if (hash) { + *hash = File.StopHashing(); + } + return result; } |
