diff options
| author | milla <marc.illa@dolby.com> | 2021-05-26 13:32:55 +0200 |
|---|---|---|
| committer | milla <marc.illa@dolby.com> | 2021-06-03 13:50:11 +0200 |
| commit | facf4f4c7a8ed65d59baed9020d5fa061b952874 (patch) | |
| tree | 8c718f4b7690db47315ebf70b6443f3fba540cf7 /src/AS_02_TimedText.cpp | |
| parent | 7a085ad0d445ffc63ec42a2faa69a82138931575 (diff) | |
FileReader pluggable at runtime
Diffstat (limited to 'src/AS_02_TimedText.cpp')
| -rw-r--r-- | src/AS_02_TimedText.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/AS_02_TimedText.cpp b/src/AS_02_TimedText.cpp index aa593a1..e64547e 100644 --- a/src/AS_02_TimedText.cpp +++ b/src/AS_02_TimedText.cpp @@ -32,6 +32,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "AS_02_internal.h" #include "KM_xml.h" +#include "KM_fileio.h" #include <iostream> #include <iomanip> @@ -67,9 +68,9 @@ class AS_02::TimedText::MXFReader::h__Reader : public AS_02::h__AS02Reader ASDCP_NO_COPY_CONSTRUCT(h__Reader); public: - TimedTextDescriptor m_TDesc; + TimedTextDescriptor m_TDesc; - h__Reader(const Dictionary *d) : AS_02::h__AS02Reader(d), m_EssenceDescriptor(0) { + h__Reader(const Dictionary* d, const Kumu::IFileReaderFactory& fileReaderFactory) : AS_02::h__AS02Reader(d, fileReaderFactory), m_EssenceDescriptor(0) { memset(&m_TDesc.AssetID, 0, UUIDlen); } @@ -169,7 +170,7 @@ ASDCP::Result_t AS_02::TimedText::MXFReader::h__Reader::ReadTimedTextResource(ASDCP::TimedText::FrameBuffer& FrameBuf, AESDecContext* Ctx, HMACContext* HMAC) { - if ( ! m_File.IsOpen() ) + if ( ! m_File->IsOpen() ) { return RESULT_INIT; } @@ -223,9 +224,9 @@ AS_02::TimedText::MXFReader::h__Reader::ReadAncillaryResource(const Kumu::UUID& //------------------------------------------------------------------------------------------ -AS_02::TimedText::MXFReader::MXFReader() +AS_02::TimedText::MXFReader::MXFReader(const Kumu::IFileReaderFactory& fileReaderFactory) { - m_Reader = new h__Reader(&DefaultSMPTEDict()); + m_Reader = new h__Reader(&DefaultSMPTEDict(), fileReaderFactory); } @@ -291,7 +292,7 @@ AS_02::TimedText::MXFReader::OpenRead(const std::string& filename) const ASDCP::Result_t AS_02::TimedText::MXFReader::FillTimedTextDescriptor(TimedText::TimedTextDescriptor& TDesc) const { - if ( m_Reader && m_Reader->m_File.IsOpen() ) + if ( m_Reader && m_Reader->m_File->IsOpen() ) { TDesc = m_Reader->m_TDesc; return RESULT_OK; @@ -305,7 +306,7 @@ AS_02::TimedText::MXFReader::FillTimedTextDescriptor(TimedText::TimedTextDescrip ASDCP::Result_t AS_02::TimedText::MXFReader::FillWriterInfo(WriterInfo& Info) const { - if ( m_Reader && m_Reader->m_File.IsOpen() ) + if ( m_Reader && m_Reader->m_File->IsOpen() ) { Info = m_Reader->m_Info; return RESULT_OK; @@ -333,7 +334,7 @@ ASDCP::Result_t AS_02::TimedText::MXFReader::ReadTimedTextResource(ASDCP::TimedText::FrameBuffer& FrameBuf, AESDecContext* Ctx, HMACContext* HMAC) const { - if ( m_Reader && m_Reader->m_File.IsOpen() ) + if ( m_Reader && m_Reader->m_File->IsOpen() ) return m_Reader->ReadTimedTextResource(FrameBuf, Ctx, HMAC); return RESULT_INIT; @@ -344,7 +345,7 @@ ASDCP::Result_t AS_02::TimedText::MXFReader::ReadAncillaryResource(const Kumu::UUID& uuid, ASDCP::TimedText::FrameBuffer& FrameBuf, AESDecContext* Ctx, HMACContext* HMAC) const { - if ( m_Reader && m_Reader->m_File.IsOpen() ) + if ( m_Reader && m_Reader->m_File->IsOpen() ) return m_Reader->ReadAncillaryResource(uuid, FrameBuf, Ctx, HMAC); return RESULT_INIT; @@ -355,7 +356,7 @@ AS_02::TimedText::MXFReader::ReadAncillaryResource(const Kumu::UUID& uuid, ASDCP void AS_02::TimedText::MXFReader::DumpHeaderMetadata(FILE* stream) const { - if ( m_Reader->m_File.IsOpen() ) + if ( m_Reader->m_File->IsOpen() ) m_Reader->m_HeaderPart.Dump(stream); } @@ -364,7 +365,7 @@ AS_02::TimedText::MXFReader::DumpHeaderMetadata(FILE* stream) const void AS_02::TimedText::MXFReader::DumpIndex(FILE* stream) const { - if ( m_Reader->m_File.IsOpen() ) + if ( m_Reader->m_File->IsOpen() ) m_Reader->m_IndexAccess.Dump(stream); } @@ -372,7 +373,7 @@ AS_02::TimedText::MXFReader::DumpIndex(FILE* stream) const ASDCP::Result_t AS_02::TimedText::MXFReader::Close() const { - if ( m_Reader && m_Reader->m_File.IsOpen() ) + if ( m_Reader && m_Reader->m_File->IsOpen() ) { m_Reader->Close(); return RESULT_OK; @@ -554,7 +555,7 @@ AS_02::TimedText::MXFWriter::h__Writer::WriteTimedTextResource(const std::string if ( KM_SUCCESS(result) ) { // create an index partition header - Kumu::fpos_t here = m_File.Tell(); + Kumu::fpos_t here = m_File.TellPosition(); assert(m_Dict); ASDCP::MXF::Partition partition(m_Dict); @@ -601,7 +602,7 @@ AS_02::TimedText::MXFWriter::h__Writer::WriteAncillaryResource(const ASDCP::Time return RESULT_STATE; } - Kumu::fpos_t here = m_File.Tell(); + Kumu::fpos_t here = m_File.TellPosition(); assert(m_Dict); // create generic stream partition header |
