summaryrefslogtreecommitdiff
path: root/asdcplib/src/h__Writer.cpp
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-06-18 15:07:41 +0100
committerCarl Hetherington <cth@carlh.net>2013-06-18 15:07:41 +0100
commitc2bac22380bea453665a24c6f39200a977771daf (patch)
treea464d94724318b81484eb3011fa0a946205550c3 /asdcplib/src/h__Writer.cpp
parent564f68cb2c258e61c1e70950c9d036859ea8619a (diff)
parent59617eb2230e47b59882c4f9ca6092ce05f53cf1 (diff)
Merge master.
Diffstat (limited to 'asdcplib/src/h__Writer.cpp')
-rwxr-xr-xasdcplib/src/h__Writer.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/asdcplib/src/h__Writer.cpp b/asdcplib/src/h__Writer.cpp
index 5d3a1d5a..d743e300 100755
--- a/asdcplib/src/h__Writer.cpp
+++ b/asdcplib/src/h__Writer.cpp
@@ -32,6 +32,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "AS_DCP_internal.h"
#include "KLV.h"
+using std::cout;
using namespace ASDCP;
using namespace ASDCP::MXF;
@@ -499,11 +500,13 @@ ASDCP::h__Writer::WriteMXFHeader(const std::string& PackageLabel, const UL& Wrap
// standard method of writing a plaintext or encrypted frame
Result_t
ASDCP::h__Writer::WriteEKLVPacket(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;
+ m_File.StartHashing();
+
byte_t overhead[128];
Kumu::MemIOWriter Overhead(overhead, 128);
assert(m_Dict);
@@ -635,6 +638,21 @@ ASDCP::h__Writer::WriteEKLVPacket(const ASDCP::FrameBuffer& FrameBuf, const byte
if ( ASDCP_SUCCESS(result) )
result = m_File.Writev();
+ if (hash) {
+ *hash = m_File.StopHashing();
+ }
+
+ return result;
+}
+
+Result_t
+ASDCP::h__Writer::FakeWriteEKLVPacket(int size)
+{
+ Result_t result = RESULT_OK;
+
+ m_StreamOffset += size;
+ m_File.Seek(size, Kumu::SP_POS);
+
return result;
}