From 252740d6f7d8924c6af30e55d2da487356a0acdc Mon Sep 17 00:00:00 2001 From: mikey Date: Fri, 12 Apr 2013 23:39:31 +0000 Subject: Added atmos support and new ULs per SMPTE 429-2:2013 - see README for deets. --- src/h__Reader.cpp | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'src/h__Reader.cpp') diff --git a/src/h__Reader.cpp b/src/h__Reader.cpp index da2aca2..77d732f 100755 --- a/src/h__Reader.cpp +++ b/src/h__Reader.cpp @@ -75,19 +75,26 @@ ASDCP::h__ASDCPReader::OpenMXFRead(const char* filename) if ( KM_SUCCESS(result) ) { - // if this is a three partition file, go to the body - // partition and read the partition pack - if ( m_HeaderPart.m_RIP.PairArray.size() > 2 ) - { - Array::iterator r_i = m_HeaderPart.m_RIP.PairArray.begin(); - r_i++; - m_File.Seek((*r_i).ByteOffset); - result = m_BodyPart.InitFromFile(m_File); - } + // if this is a three partition file, go to the body + // partition and read the partition pack + if ( m_HeaderPart.m_RIP.PairArray.size() > 2 ) + { + Array::iterator r_i = m_HeaderPart.m_RIP.PairArray.begin(); + r_i++; + m_File.Seek((*r_i).ByteOffset); + result = m_BodyPart.InitFromFile(m_File); + if( !ASDCP_SUCCESS(result) ) + { + DefaultLogSink().Error("ASDCP::h__Reader::OpenMXFRead, m_BodyPart.InitFromFile failed\n"); + } + } } + else + DefaultLogSink().Error("ASDCP::h__Reader::OpenMXFRead, TrackFileReader::OpenMXFRead failed\n"); + if ( KM_SUCCESS(result) ) - m_HeaderPart.BodyOffset = m_File.Tell(); + m_HeaderPart.BodyOffset = m_File.Tell(); return result; } @@ -148,6 +155,14 @@ ASDCP::h__ASDCPReader::ReadEKLVFrame(ui32_t FrameNum, ASDCP::FrameBuffer& FrameB EssenceUL, Ctx, HMAC); } +Result_t +ASDCP::h__ASDCPReader::LocateFrame(ui32_t FrameNum, Kumu::fpos_t& streamOffset, + i8_t& temporalOffset, i8_t& keyFrameOffset) +{ + return ASDCP::MXF::TrackFileReader::LocateFrame(m_HeaderPart, FrameNum, + streamOffset, temporalOffset, keyFrameOffset); +} + //------------------------------------------------------------------------------------------ // -- cgit v1.2.3