From f285ea055151fae2e13d71c2d0282201197a9143 Mon Sep 17 00:00:00 2001 From: jhurst Date: Mon, 3 Jun 2013 00:12:31 +0000 Subject: the big-pre-as-02-refactor --- src/klvwalk.cpp | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'src/klvwalk.cpp') diff --git a/src/klvwalk.cpp b/src/klvwalk.cpp index 92e7a3f..f87d2c5 100755 --- a/src/klvwalk.cpp +++ b/src/klvwalk.cpp @@ -194,21 +194,47 @@ main(int argc, const char** argv) { Kumu::FileReader Reader; const Dictionary* Dict = &DefaultCompositeDict(); - ASDCP::MXF::OPAtomHeader Header(Dict); + ASDCP::MXF::OP1aHeader Header(Dict); + ASDCP::MXF::RIP RIP(Dict); result = Reader.OpenRead((*fi).c_str()); + if ( ASDCP_SUCCESS(result) ) + result = MXF::SeekToRIP(Reader); + + if ( ASDCP_SUCCESS(result) ) + { + result = RIP.InitFromFile(Reader); + ui32_t test_s = RIP.PairArray.size(); + + if ( ASDCP_FAILURE(result) ) + { + DefaultLogSink().Error("File contains no RIP\n"); + result = RESULT_OK; + } + else if ( RIP.PairArray.empty() ) + { + DefaultLogSink().Error("RIP contains no Pairs.\n"); + } + + Reader.Seek(0); + } + else + { + DefaultLogSink().Error("ASDCP::h__Reader::OpenMXFRead, SeekToRIP failed\n"); + } + if ( ASDCP_SUCCESS(result) ) result = Header.InitFromFile(Reader); if ( ASDCP_SUCCESS(result) ) Header.Dump(stdout); - if ( ASDCP_SUCCESS(result) && Header.m_RIP.PairArray.size() > 2 ) + if ( ASDCP_SUCCESS(result) && RIP.PairArray.size() > 2 ) { - MXF::Array::const_iterator pi = Header.m_RIP.PairArray.begin(); + MXF::Array::const_iterator pi = RIP.PairArray.begin(); - for ( pi++; pi != Header.m_RIP.PairArray.end() && ASDCP_SUCCESS(result); pi++ ) + for ( pi++; pi != RIP.PairArray.end() && ASDCP_SUCCESS(result); pi++ ) { result = Reader.Seek((*pi).ByteOffset); @@ -239,7 +265,7 @@ main(int argc, const char** argv) } if ( ASDCP_SUCCESS(result) ) - Header.m_RIP.Dump(stdout); + RIP.Dump(stdout); } else // dump klv { -- cgit v1.2.3