summaryrefslogtreecommitdiff
path: root/src/AS_02_ACES.cpp
diff options
context:
space:
mode:
authormilla <marc.illa@dolby.com>2021-05-26 13:32:55 +0200
committermilla <marc.illa@dolby.com>2021-06-03 13:50:11 +0200
commitfacf4f4c7a8ed65d59baed9020d5fa061b952874 (patch)
tree8c718f4b7690db47315ebf70b6443f3fba540cf7 /src/AS_02_ACES.cpp
parent7a085ad0d445ffc63ec42a2faa69a82138931575 (diff)
FileReader pluggable at runtime
Diffstat (limited to 'src/AS_02_ACES.cpp')
-rw-r--r--src/AS_02_ACES.cpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/AS_02_ACES.cpp b/src/AS_02_ACES.cpp
index 0d3105a..1eda2d0 100644
--- a/src/AS_02_ACES.cpp
+++ b/src/AS_02_ACES.cpp
@@ -290,8 +290,8 @@ class AS_02::ACES::MXFReader::h__Reader : public AS_02::h__AS02Reader
ASDCP::MXF::RGBAEssenceDescriptor *m_EssenceDescriptor;
public:
- h__Reader(const Dictionary *d) :
- AS_02::h__AS02Reader(d), m_EssenceDescriptor(NULL) {}
+ h__Reader(const Dictionary *d, const Kumu::IFileReaderFactory& fileReaderFactory) :
+ AS_02::h__AS02Reader(d, fileReaderFactory), m_EssenceDescriptor(NULL) {}
AS_02::ACES::ResourceList_t m_Anc_Resources;
@@ -343,7 +343,7 @@ Result_t AS_02::ACES::MXFReader::h__Reader::OpenRead(const std::string& filename
Result_t AS_02::ACES::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, AS_02::ACES::FrameBuffer& FrameBuf, ASDCP::AESDecContext* Ctx, ASDCP::HMACContext* HMAC)
{
- if(!m_File.IsOpen()) return RESULT_INIT;
+ if(!m_File->IsOpen()) return RESULT_INIT;
assert(m_Dict);
return ReadEKLVFrame(FrameNum, FrameBuf, m_Dict->ul(MDD_ACESFrameWrappedEssence), Ctx, HMAC); //PB:new UL
@@ -395,12 +395,12 @@ AS_02::Result_t AS_02::ACES::MXFReader::h__Reader::ReadAncillaryResource(const K
if((Kumu::fpos_t)TmpPair.ByteOffset != m_LastPosition)
{
m_LastPosition = TmpPair.ByteOffset;
- result = m_File.Seek(TmpPair.ByteOffset);
+ result = m_File->Seek(TmpPair.ByteOffset);
}
// read the partition header
ASDCP::MXF::Partition GSPart(m_Dict);
- result = GSPart.InitFromFile(m_File);
+ result = GSPart.InitFromFile(*m_File);
if(ASDCP_SUCCESS(result))
{
@@ -473,7 +473,7 @@ AS_02::Result_t AS_02::ACES::MXFReader::h__Reader::FillAncillaryResourceDescript
void
AS_02::ACES::MXFReader::DumpHeaderMetadata(FILE* stream) const
{
- if ( m_Reader && m_Reader->m_File.IsOpen() )
+ if ( m_Reader && m_Reader->m_File->IsOpen() )
{
m_Reader->m_HeaderPart.Dump(stream);
}
@@ -484,7 +484,7 @@ AS_02::ACES::MXFReader::DumpHeaderMetadata(FILE* stream) const
void
AS_02::ACES::MXFReader::DumpIndex(FILE* stream) const
{
- if ( m_Reader && m_Reader->m_File.IsOpen() )
+ if ( m_Reader && m_Reader->m_File->IsOpen() )
{
m_Reader->m_IndexAccess.Dump(stream);
}
@@ -672,7 +672,7 @@ AS_02::Result_t AS_02::ACES::MXFWriter::h__Writer::WriteAncillaryResource(const
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
@@ -782,10 +782,9 @@ AS_02::Result_t AS_02::ACES::MXFWriter::WriteAncillaryResource(const AS_02::ACES
}
-AS_02::ACES::MXFReader::MXFReader()
+AS_02::ACES::MXFReader::MXFReader(const Kumu::IFileReaderFactory& fileReaderFactory)
{
-
- m_Reader = new h__Reader(&DefaultCompositeDict());
+ m_Reader = new h__Reader(&DefaultCompositeDict(), fileReaderFactory);
}
AS_02::ACES::MXFReader::~MXFReader()
@@ -841,7 +840,7 @@ AS_02::Result_t AS_02::ACES::MXFReader::OpenRead(const std::string& filename) co
AS_02::Result_t AS_02::ACES::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;
@@ -852,7 +851,7 @@ AS_02::Result_t AS_02::ACES::MXFReader::Close() const
AS_02::Result_t AS_02::ACES::MXFReader::FillWriterInfo(ASDCP::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;
@@ -863,7 +862,7 @@ AS_02::Result_t AS_02::ACES::MXFReader::FillWriterInfo(ASDCP::WriterInfo& Info)
AS_02::Result_t AS_02::ACES::MXFReader::ReadFrame(ui32_t FrameNum, AS_02::ACES::FrameBuffer &FrameBuf, ASDCP::AESDecContext *Ctx /*= 0*/, ASDCP::HMACContext *HMAC /*= 0*/) const
{
- if(m_Reader && m_Reader->m_File.IsOpen())
+ if(m_Reader && m_Reader->m_File->IsOpen())
return m_Reader->ReadFrame(FrameNum, FrameBuf, Ctx, HMAC);
return RESULT_INIT;
@@ -872,7 +871,7 @@ AS_02::Result_t AS_02::ACES::MXFReader::ReadFrame(ui32_t FrameNum, AS_02::ACES::
AS_02::Result_t AS_02::ACES::MXFReader::ReadAncillaryResource(const Kumu::UUID &uuid, AS_02::ACES::FrameBuffer &FrameBuf, ASDCP::AESDecContext *Ctx , ASDCP::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;
@@ -881,7 +880,7 @@ AS_02::Result_t AS_02::ACES::MXFReader::ReadAncillaryResource(const Kumu::UUID &
AS_02::Result_t AS_02::ACES::MXFReader::FillAncillaryResourceList(AS_02::ACES::ResourceList_t &ancillary_resources) const
{
- if(m_Reader && m_Reader->m_File.IsOpen())
+ if(m_Reader && m_Reader->m_File->IsOpen())
{
ancillary_resources = m_Reader->m_Anc_Resources;
return RESULT_OK;