X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2FAS_DCP_PCM.cpp;h=e32445ba2462bcdb3929747e912067558b2f033d;hb=a26997a57c206312a334cc59d0d0347da2d1a580;hp=38bf8e478c09781f2a1338cfed0fac3617e5487b;hpb=5e91ca52284adc91a42d6fe389c9cc70a33126a6;p=asdcplib.git diff --git a/src/AS_DCP_PCM.cpp b/src/AS_DCP_PCM.cpp index 38bf8e4..e32445b 100755 --- a/src/AS_DCP_PCM.cpp +++ b/src/AS_DCP_PCM.cpp @@ -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();