/*
-Copyright (c) 2011-2013, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
+Copyright (c) 2011-2016, Robert Scheler, Heiko Sparenberg Fraunhofer IIS,
John Hurst
All rights reserved.
h__AS02Reader(const ASDCP::Dictionary&);
virtual ~h__AS02Reader();
- Result_t OpenMXFRead(const char* filename);
+ Result_t OpenMXFRead(const std::string& filename);
// USE FRAME WRAPPING...
Result_t ReadEKLVFrame(ui32_t FrameNum, ASDCP::FrameBuffer& FrameBuf,
return RESULT_PARAM;
}
- InitHeader();
+ InitHeader(MXFVersion_2011);
AddSourceClip(EditRate, EditRate/*TODO: for a moment*/, TCFrameRate, TrackName, EssenceUL, DataDefinition, PackageLabel);
AddEssenceDescriptor(WrappingUL);
this->m_IndexWriter.SetPrimerLookup(&this->m_HeaderPart.m_Primer);
- this->m_RIP.PairArray.push_back(RIP::Pair(0, 0)); // Header partition RIP entry
+ this->m_RIP.PairArray.push_back(RIP::PartitionPair(0, 0)); // Header partition RIP entry
+ this->m_IndexWriter.MajorVersion = m_HeaderPart.MajorVersion;
+ this->m_IndexWriter.MinorVersion = m_HeaderPart.MinorVersion;
this->m_IndexWriter.OperationalPattern = this->m_HeaderPart.OperationalPattern;
this->m_IndexWriter.EssenceContainers = this->m_HeaderPart.EssenceContainers;
UL body_ul(this->m_Dict->ul(MDD_ClosedCompleteBodyPartition));
Partition body_part(this->m_Dict);
body_part.BodySID = 1;
+ body_part.MajorVersion = this->m_HeaderPart.MajorVersion;
+ body_part.MinorVersion = this->m_HeaderPart.MinorVersion;
body_part.OperationalPattern = this->m_HeaderPart.OperationalPattern;
body_part.EssenceContainers = this->m_HeaderPart.EssenceContainers;
body_part.ThisPartition = this->m_ECStart;
result = body_part.WriteToFile(this->m_File, body_ul);
- this->m_RIP.PairArray.push_back(RIP::Pair(1, body_part.ThisPartition)); // Second RIP Entry
+ this->m_RIP.PairArray.push_back(RIP::PartitionPair(1, body_part.ThisPartition)); // Second RIP Entry
}
return result;
{
this->m_IndexWriter.ThisPartition = this->m_File.Tell();
this->m_IndexWriter.WriteToFile(this->m_File);
- this->m_RIP.PairArray.push_back(RIP::Pair(0, this->m_IndexWriter.ThisPartition));
+ this->m_RIP.PairArray.push_back(RIP::PartitionPair(0, this->m_IndexWriter.ThisPartition));
}
// update all Duration properties
footer_part.PreviousPartition = this->m_RIP.PairArray.back().ByteOffset;
Kumu::fpos_t here = this->m_File.Tell();
- this->m_RIP.PairArray.push_back(RIP::Pair(0, here)); // Last RIP Entry
+ this->m_RIP.PairArray.push_back(RIP::PartitionPair(0, here)); // Last RIP Entry
this->m_HeaderPart.FooterPartition = here;
assert(this->m_Dict);
+ footer_part.MajorVersion = this->m_HeaderPart.MajorVersion;
+ footer_part.MinorVersion = this->m_HeaderPart.MinorVersion;
footer_part.OperationalPattern = this->m_HeaderPart.OperationalPattern;
footer_part.EssenceContainers = this->m_HeaderPart.EssenceContainers;
footer_part.FooterPartition = here;
if ( KM_SUCCESS(result) )
{
- ASDCP::MXF::Array<ASDCP::MXF::RIP::Pair>::const_iterator i = this->m_RIP.PairArray.begin();
+ ASDCP::MXF::RIP::const_pair_iterator i = this->m_RIP.PairArray.begin();
ui64_t header_byte_count = this->m_HeaderPart.HeaderByteCount;
ui64_t previous_partition = 0;
public:
ui64_t m_ECStart; // offset of the first essence element
ui64_t m_ClipStart; // state variable for clip-wrap-in-progress
- // AS_02::MXF::AS02IndexWriterCBR m_IndexWriter;
IndexStrategy_t m_IndexStrategy; // per SMPTE ST 2067-5
h__AS02WriterClip(const Dictionary&);