was segfaulting due to incomplete IFileReader impl. Returned to stable FileReader...
authorjhurst <jhurst@cinecert.com>
Thu, 16 Sep 2021 16:24:39 +0000 (09:24 -0700)
committerjhurst <jhurst@cinecert.com>
Thu, 16 Sep 2021 16:24:39 +0000 (09:24 -0700)
src/PCM_Parser.cpp

index 43111fd36379c2d3977e81ec763a585d666baf7e..b8dea71b114e930659c90b1a662c26faf665e824 100755 (executable)
@@ -45,7 +45,7 @@ using namespace ASDCP::RF64;
 //
 class ASDCP::PCM::WAVParser::h__WAVParser
 {
-  Kumu::IFileReader* m_FileReader;
+  Kumu::FileReader   m_FileReader;
   bool               m_EOF;
   ui32_t             m_DataStart;
   ui64_t             m_DataLength;
@@ -81,14 +81,14 @@ public:
 void
 ASDCP::PCM::WAVParser::h__WAVParser::Close()
 {
-  m_FileReader->Close();
+  m_FileReader.Close();
 }
 
 //
 void
 ASDCP::PCM::WAVParser::h__WAVParser::Reset()
 {
-  m_FileReader->Seek(m_DataStart);
+  m_FileReader.Seek(m_DataStart);
   m_FramesRead = 0;
   m_ReadCount = 0;
 }
@@ -97,12 +97,12 @@ ASDCP::PCM::WAVParser::h__WAVParser::Reset()
 ASDCP::Result_t
 ASDCP::PCM::WAVParser::h__WAVParser::OpenRead(const std::string& filename, const Rational& PictureRate)
 {
-  Result_t result = m_FileReader->OpenRead(filename);
+  Result_t result = m_FileReader.OpenRead(filename);
 
   if ( ASDCP_SUCCESS(result) )
     {
       SimpleWaveHeader WavHeader;
-      result = WavHeader.ReadFromFile(*m_FileReader, &m_DataStart);
+      result = WavHeader.ReadFromFile(m_FileReader, &m_DataStart);
   
       if ( ASDCP_SUCCESS(result) )
        {
@@ -116,9 +116,9 @@ ASDCP::PCM::WAVParser::h__WAVParser::OpenRead(const std::string& filename, const
       else
        {
          ASDCP::AIFF::SimpleAIFFHeader AIFFHeader;
-         m_FileReader->Seek(0);
+         m_FileReader.Seek(0);
 
-      result = AIFFHeader.ReadFromFile(*m_FileReader, &m_DataStart);
+      result = AIFFHeader.ReadFromFile(m_FileReader, &m_DataStart);
 
          if ( ASDCP_SUCCESS(result) )
            {
@@ -132,8 +132,8 @@ ASDCP::PCM::WAVParser::h__WAVParser::OpenRead(const std::string& filename, const
          else
            {
              SimpleRF64Header RF64Header;
-             m_FileReader->Seek(0);
-          result = RF64Header.ReadFromFile(*m_FileReader, &m_DataStart);
+             m_FileReader.Seek(0);
+          result = RF64Header.ReadFromFile(m_FileReader, &m_DataStart);
 
              if ( ASDCP_SUCCESS(result) )
                {
@@ -170,7 +170,7 @@ ASDCP::PCM::WAVParser::h__WAVParser::ReadFrame(FrameBuffer& FB)
     }
 
   ui32_t read_count = 0;
-  Result_t result = m_FileReader->Read(FB.Data(), m_FrameBufferSize, &read_count);
+  Result_t result = m_FileReader.Read(FB.Data(), m_FrameBufferSize, &read_count);
 
   if ( result == RESULT_ENDOFFILE )
     {
@@ -202,7 +202,7 @@ ASDCP::Result_t ASDCP::PCM::WAVParser::h__WAVParser::Seek(ui32_t frame_number)
 {
   m_FramesRead = frame_number - 1;
   m_ReadCount = 0;
-  return m_FileReader->Seek(m_DataStart + m_FrameBufferSize * frame_number);
+  return m_FileReader.Seek(m_DataStart + m_FrameBufferSize * frame_number);
 }