summaryrefslogtreecommitdiff
path: root/src/AS_DCP_internal.h
diff options
context:
space:
mode:
authorPierre-Anthony Lemieux <pal@palemieux.com>2020-04-12 13:28:38 -0700
committerPierre-Anthony Lemieux <pal@palemieux.com>2020-04-15 14:35:46 -0700
commitb15f21a0c760bc8b8b28cd2a04491f4963ac0549 (patch)
treedb7a09f5c0cbee7f6d7f38ee7b42d0205072bbc7 /src/AS_DCP_internal.h
parentc13564dfa143310edd7c160a75898af86def24be (diff)
Add support for IAB Track File reading and writing
Diffstat (limited to 'src/AS_DCP_internal.h')
-rwxr-xr-xsrc/AS_DCP_internal.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h
index 57ed006..b7712b1 100755
--- a/src/AS_DCP_internal.h
+++ b/src/AS_DCP_internal.h
@@ -624,7 +624,7 @@ namespace ASDCP
const MXF::RIP& GetRIP() const { return m_RIP; }
- void InitHeader(const MXFVersion& mxf_ver)
+ void InitHeader(const MXFVersion& mxf_ver, const std::vector<ASDCP::UL>* conformsToSpecifications = NULL)
{
assert(m_Dict);
assert(m_EssenceDescriptor);
@@ -633,6 +633,16 @@ namespace ASDCP
m_HeaderPart.m_Preface = new Preface(m_Dict);
m_HeaderPart.AddChildObject(m_HeaderPart.m_Preface);
+ // add conformsToSpecifications, if it exists
+
+ if (conformsToSpecifications && conformsToSpecifications->size() > 0) {
+
+ m_HeaderPart.m_Preface->ConformsToSpecifications.get().insert(
+ conformsToSpecifications->begin(),
+ conformsToSpecifications->end()
+ );
+ }
+
// Set the Operational Pattern label -- we're just starting and have no RIP or index,
// so we tell the world by using OP1a
m_HeaderPart.m_Preface->OperationalPattern = UL(m_Dict->ul(MDD_OP1a));
@@ -875,6 +885,13 @@ namespace ASDCP
//------------------------------------------------------------------------------------------
//
+// state machine for mxf reader
+ enum ReaderState_t {
+ ST_BEGIN, // waiting for Open()
+ ST_READY, // ready to read frames
+ ST_RUNNING, // one or more frames read
+ };
+
//
class h__ASDCPReader : public MXF::TrackFileReader<OP1aHeader, OPAtomIndexFooter>
{