Forgot a fix.
[asdcplib.git] / src / AS_DCP_PCM.cpp
index 38bf8e478c09781f2a1338cfed0fac3617e5487b..e32445ba2462bcdb3929747e912067558b2f033d 100755 (executable)
@@ -67,7 +67,8 @@ MD_to_PCM_ADesc(MXF::WaveAudioDescriptor* ADescObj, PCM::AudioDescriptor& ADesc)
   ADesc.BlockAlign = ADescObj->BlockAlign;
   ADesc.AvgBps = ADescObj->AvgBps;
   ADesc.LinkedTrackID = ADescObj->LinkedTrackID;
-  ADesc.ContainerDuration = ADescObj->ContainerDuration;
+  assert(ADescObj->ContainerDuration <= 0xFFFFFFFFL);
+  ADesc.ContainerDuration = (ui32_t) ADescObj->ContainerDuration;
   return RESULT_OK;
 }
 
@@ -160,7 +161,8 @@ ASDCP::PCM::MXFReader::h__Reader::OpenRead(const char* filename)
     }
 
   // check for sample/frame rate sanity
-  if ( m_ADesc.SampleRate != EditRate_24
+  if ( ASDCP_SUCCESS(result)
+       && m_ADesc.SampleRate != EditRate_24
        && m_ADesc.SampleRate != EditRate_48
        && m_ADesc.SampleRate != EditRate_23_98 )
     {
@@ -202,7 +204,7 @@ ASDCP::PCM::MXFReader::h__Reader::ReadFrame(ui32_t FrameNum, FrameBuffer& FrameB
   if ( ! m_File.IsOpen() )
     return RESULT_INIT;
 
-  return ReadEKLVPacket(FrameNum, FrameBuf, Dict::ul(MDD_WAVEssence), Ctx, HMAC);
+  return ReadEKLVFrame(FrameNum, FrameBuf, Dict::ul(MDD_WAVEssence), Ctx, HMAC);
 }
 
 //------------------------------------------------------------------------------------------
@@ -449,14 +451,12 @@ ASDCP::PCM::MXFWriter::OpenWrite(const char* filename, const WriterInfo& Info,
                                 const AudioDescriptor& ADesc, ui32_t HeaderSize)
 {
   m_Writer = new h__Writer;
+  m_Writer->m_Info = Info;
   
   Result_t result = m_Writer->OpenWrite(filename, HeaderSize);
 
   if ( ASDCP_SUCCESS(result) )
-    {
-      m_Writer->m_Info = Info;
-      result = m_Writer->SetSourceStream(ADesc);
-    }
+    result = m_Writer->SetSourceStream(ADesc);
 
   if ( ASDCP_FAILURE(result) )
     m_Writer.release();