diff options
| author | jhurst <jhurst@cinecert.com> | 2013-06-04 05:22:27 +0000 |
|---|---|---|
| committer | jhurst <> | 2013-06-04 05:22:27 +0000 |
| commit | 12051ad32d54a72a1a8682e15af1a185a61f1c61 (patch) | |
| tree | 952a756375d6fd0c53d36d7521d2cc4ec355ddd5 /src/AS_02.h | |
| parent | de10f4a1f35fce05226b267baf6622e67e3d4c83 (diff) | |
working j2c as-02
Diffstat (limited to 'src/AS_02.h')
| -rw-r--r-- | src/AS_02.h | 99 |
1 files changed, 13 insertions, 86 deletions
diff --git a/src/AS_02.h b/src/AS_02.h index dc6fc61..e4be1b8 100644 --- a/src/AS_02.h +++ b/src/AS_02.h @@ -68,107 +68,34 @@ namespace AS_02 using Kumu::Result_t; namespace MXF { -#if 0 // - class OP1aIndexBodyPartion : public ASDCP::MXF::Partition + class AS02IndexReader : public ASDCP::MXF::Partition { - ASDCP::MXF::IndexTableSegment* m_CurrentSegment; - ASDCP::FrameBuffer m_Buffer; - ASDCP::MXF::Rational m_EditRate; - ui32_t klv_fill_size; + Kumu::ByteString m_IndexSegmentData; + ui32_t m_Duration; - ASDCP_NO_COPY_CONSTRUCT(OP1aIndexBodyPartion); + // ui32_t m_BytesPerEditUnit; - public: - const ASDCP::Dictionary*& m_Dict; - Kumu::fpos_t m_ECOffset; - ASDCP::IPrimerLookup* m_Lookup; - - ui32_t m_BytesPerEditUnit; - ui32_t m_FramesWritten; - - OP1aIndexBodyPartion(const ASDCP::Dictionary*&); - virtual ~OP1aIndexBodyPartion(); - virtual Result_t InitFromFile(const Kumu::FileReader& Reader); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToFile(Kumu::FileWriter& Writer, ASDCP::UL& PartitionLabel); - virtual void Dump(FILE* = 0); - - virtual bool Lookup(ui32_t frame_num, ASDCP::MXF::IndexTableSegment::IndexEntry&,ui32_t&) const; - virtual void PushIndexEntry(const ASDCP::MXF::IndexTableSegment::IndexEntry&); - virtual void SetIndexParamsCBR(ASDCP::IPrimerLookup* lookup, ui32_t size, const ASDCP::MXF::Rational& Rate); - virtual void SetIndexParamsVBR(ASDCP::IPrimerLookup* lookup, const ASDCP::MXF::Rational& Rate, Kumu::fpos_t offset); - - //new - virtual ui64_t Duration(); - virtual Result_t FillWriteToFile(Kumu::FileWriter& Writer, ui32_t numberOfIndexEntries); - - //new for PCM - virtual void PCMSetIndexParamsCBR(ui32_t sizeFirst, ui32_t sizeOthers); - virtual void PCMIndexLookup(ui32_t frame_num, ASDCP::MXF::IndexTableSegment::IndexEntry& Entry) const; - - }; - - // - class OP1aIndexFooter : public ASDCP::MXF::Partition - { - ASDCP::MXF::IndexTableSegment* m_CurrentSegment; - ASDCP::FrameBuffer m_Buffer; - ui32_t m_BytesPerEditUnit; - ASDCP::MXF::Rational m_EditRate; - ui32_t m_BodySID; - ASDCP_NO_COPY_CONSTRUCT(OP1aIndexFooter); - OP1aIndexFooter(); - - public: - const ASDCP::Dictionary*& m_Dict; - Kumu::fpos_t m_ECOffset; - ASDCP::IPrimerLookup* m_Lookup; - - OP1aIndexFooter(const ASDCP::Dictionary*&); - virtual ~OP1aIndexFooter(); - virtual Result_t InitFromFile(const Kumu::FileReader& Reader); - virtual Result_t InitFromPartitionBuffer(const byte_t* p, ui32_t l); - virtual Result_t InitFromBuffer(const byte_t* p, ui32_t l); - virtual Result_t WriteToFile(Kumu::FileWriter& Writer, ui64_t duration); - virtual void Dump(FILE* = 0); - - virtual Result_t Lookup(ui32_t frame_num, ASDCP::MXF::IndexTableSegment::IndexEntry&) const; - virtual void PushIndexEntry(const ASDCP::MXF::IndexTableSegment::IndexEntry&); - virtual void SetIndexParamsCBR(ASDCP::IPrimerLookup* lookup, ui32_t size, const ASDCP::MXF::Rational& Rate); - virtual void SetIndexParamsVBR(ASDCP::IPrimerLookup* lookup, const ASDCP::MXF::Rational& Rate, Kumu::fpos_t offset); - }; - -#endif - - // - class AS02IndexReader - { - ASDCP::MXF::IndexTableSegment* m_CurrentSegment; - ASDCP::FrameBuffer m_Buffer; - ui32_t m_BytesPerEditUnit; - ASDCP::Rational m_EditRate; - ui32_t m_BodySID; + Result_t InitFromBuffer(const byte_t* p, ui32_t l); ASDCP_NO_COPY_CONSTRUCT(AS02IndexReader); AS02IndexReader(); public: const ASDCP::Dictionary*& m_Dict; - Kumu::fpos_t m_ECOffset; + Kumu::fpos_t m_ECOffset; ASDCP::IPrimerLookup *m_Lookup; AS02IndexReader(const ASDCP::Dictionary*&); virtual ~AS02IndexReader(); - virtual Result_t InitFromFile(const Kumu::FileReader& Reader); - virtual void Dump(FILE* = 0); - - virtual Result_t GetMDObjectByID(const Kumu::UUID&, ASDCP::MXF::InterchangeObject** = 0); - virtual Result_t GetMDObjectByType(const byte_t*, ASDCP::MXF::InterchangeObject** = 0); - virtual Result_t GetMDObjectsByType(const byte_t* ObjectID, std::list<ASDCP::MXF::InterchangeObject*>& ObjectList); - - virtual Result_t Lookup(ui32_t frame_num, ASDCP::MXF::IndexTableSegment::IndexEntry&) const; + Result_t InitFromFile(const Kumu::FileReader& reader, const ASDCP::MXF::RIP& rip); + ui32_t GetDuration() const; + void Dump(FILE* = 0); + Result_t GetMDObjectByID(const Kumu::UUID&, ASDCP::MXF::InterchangeObject** = 0); + Result_t GetMDObjectByType(const byte_t*, ASDCP::MXF::InterchangeObject** = 0); + Result_t GetMDObjectsByType(const byte_t* ObjectID, std::list<ASDCP::MXF::InterchangeObject*>& ObjectList); + Result_t Lookup(ui32_t frame_num, ASDCP::MXF::IndexTableSegment::IndexEntry&) const; }; } // namespace MXF |
