From 5000f665e035e3ced7f190aca715de8d3288a6b2 Mon Sep 17 00:00:00 2001 From: dbullock Date: Fri, 14 Jun 2019 15:30:13 -0700 Subject: [PATCH 1/1] Fix HMAC sequence count on MXF read. This fixes #4. --- src/AS_DCP_internal.h | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h index 83272c0..57ed006 100755 --- a/src/AS_DCP_internal.h +++ b/src/AS_DCP_internal.h @@ -414,17 +414,23 @@ namespace ASDCP // Count the sequence length in because this is the sequence // value needed to complete the HMAC. ASDCP::MXF::RIP::const_pair_iterator i; - for ( i = m_RIP.PairArray.begin(); i != m_RIP.PairArray.end(); ++i, ++sequence ) + for ( i = m_RIP.PairArray.begin(); i != m_RIP.PairArray.end(); ++i) { - if ( sid == i->BodySID ) - { - start_offset = i->ByteOffset; - } - else if ( start_offset != 0 ) - { - end_offset = i->ByteOffset; - break; - } + if ( sid == i->BodySID ) + { + assert( start_offset == 0); + start_offset = i->ByteOffset; + } + else if ( start_offset != 0 ) + { + end_offset = i->ByteOffset; + break; + } + + if ( i->BodySID > 0 ) + { + ++sequence; + } } if ( start_offset == 0 || end_offset == 0 ) -- 2.30.2