{
class InterchangeObject;
+ //
+ typedef ASDCP::MXF::InterchangeObject* (*MXFObjectFactory_t)();
+
+ //
+ void SetObjectFactory(UL label, MXFObjectFactory_t factory);
+
+ //
+ InterchangeObject* CreateObject(const byte_t* label);
+
+
// seek an open file handle to the start of the RIP KLV packet
Result_t SeekToRIP(const Kumu::FileReader&);
inline const char* EncodeString(char* str_buf, ui32_t buf_len) const {
Kumu::ui64Printer offset_str(ByteOffset);
- snprintf(str_buf, buf_len, "%-6lu: %s", BodySID, offset_str.c_str());
+ snprintf(str_buf, buf_len, "%-6u: %s", BodySID, offset_str.c_str());
return str_buf;
}
virtual ~RIP() {}
virtual Result_t InitFromFile(const Kumu::FileReader& Reader);
virtual Result_t WriteToFile(Kumu::FileWriter& Writer);
+ virtual Result_t GetPairBySID(ui32_t, Pair&) const;
virtual void Dump(FILE* = 0);
};
virtual void Dump(FILE* stream = 0);
};
- //
- InterchangeObject* CreateObject(const byte_t* label);
-
//
class Preface : public InterchangeObject
{
i8_t KeyFrameOffset;
ui8_t Flags;
ui64_t StreamOffset;
+
+ // if you use these, you will need to change CBRIndexEntriesPerSegment in MXF.cpp
+ // to a more suitable value
// std::list<ui32_t> SliceOffset;
// Array<Rational> PosTable;
//---------------------------------------------------------------------------------
//
- class h__PacketList; // See MXF.cpp
class Identification;
class SourcePackage;
virtual Result_t InitFromFile(const Kumu::FileReader& Reader);
virtual Result_t WriteToFile(Kumu::FileWriter& Writer, ui32_t HeaderLength = 16384);
virtual void Dump(FILE* = 0);
+ virtual Result_t GetMDObjectByID(const UUID&, InterchangeObject** = 0);
virtual Result_t GetMDObjectByType(const byte_t*, InterchangeObject** = 0);
+ virtual Result_t GetMDObjectsByType(const byte_t* ObjectID, std::list<InterchangeObject*>& ObjectList);
Identification* GetIdentification();
SourcePackage* GetSourcePackage();
};
ASDCP_NO_COPY_CONSTRUCT(OPAtomIndexFooter);
public:
- fpos_t m_ECOffset;
+ Kumu::fpos_t m_ECOffset;
IPrimerLookup* m_Lookup;
OPAtomIndexFooter();
virtual Result_t WriteToFile(Kumu::FileWriter& Writer, ui64_t duration);
virtual void Dump(FILE* = 0);
- virtual Result_t Lookup(ui32_t frame_num, IndexTableSegment::IndexEntry&);
+ virtual Result_t Lookup(ui32_t frame_num, IndexTableSegment::IndexEntry&) const;
virtual void PushIndexEntry(const IndexTableSegment::IndexEntry&);
virtual void SetIndexParamsCBR(IPrimerLookup* lookup, ui32_t size, const Rational& Rate);
- virtual void SetIndexParamsVBR(IPrimerLookup* lookup, const Rational& Rate, fpos_t offset);
+ virtual void SetIndexParamsVBR(IPrimerLookup* lookup, const Rational& Rate, Kumu::fpos_t offset);
};
} // namespace MXF