diff options
| author | mschroffel <mschroffel@cinecert.com> | 2015-02-19 22:42:18 +0000 |
|---|---|---|
| committer | mschroffel <> | 2015-02-19 22:42:18 +0000 |
| commit | 528cacb6122b33f73a805fbb47b4ae83a46db418 (patch) | |
| tree | ad68a5c66b827dba27ed0d84c54735aa5dee0569 /src/PCM_Parser.cpp | |
| parent | 665b2e2e5dcf2266e636d29bcf4ef281da65117f (diff) | |
banner updates to 2015
Diffstat (limited to 'src/PCM_Parser.cpp')
| -rwxr-xr-x | src/PCM_Parser.cpp | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/src/PCM_Parser.cpp b/src/PCM_Parser.cpp index 30e5d28..2700aa4 100755 --- a/src/PCM_Parser.cpp +++ b/src/PCM_Parser.cpp @@ -128,22 +128,22 @@ ASDCP::PCM::WAVParser::h__WAVParser::OpenRead(const std::string& filename, const m_ADesc.ChannelFormat = PCM::CF_NONE; Reset(); } - else - { - SimpleRF64Header RF64Header; - m_FileReader.Seek(0); - result = RF64Header.ReadFromFile(m_FileReader, &m_DataStart); - - if ( ASDCP_SUCCESS(result) ) - { - RF64Header.FillADesc(m_ADesc, PictureRate); - m_FrameBufferSize = ASDCP::PCM::CalcFrameBufferSize(m_ADesc); - m_DataLength = RF64Header.data_len; - m_ADesc.ContainerDuration = m_DataLength / m_FrameBufferSize; - m_ADesc.ChannelFormat = PCM::CF_NONE; - Reset(); - } - } + else + { + SimpleRF64Header RF64Header; + m_FileReader.Seek(0); + result = RF64Header.ReadFromFile(m_FileReader, &m_DataStart); + + if ( ASDCP_SUCCESS(result) ) + { + RF64Header.FillADesc(m_ADesc, PictureRate); + m_FrameBufferSize = ASDCP::PCM::CalcFrameBufferSize(m_ADesc); + m_DataLength = RF64Header.data_len; + m_ADesc.ContainerDuration = m_DataLength / m_FrameBufferSize; + m_ADesc.ChannelFormat = PCM::CF_NONE; + Reset(); + } + } } } @@ -156,8 +156,10 @@ ASDCP::PCM::WAVParser::h__WAVParser::ReadFrame(FrameBuffer& FB) { FB.Size(0); - if ( m_EOF || m_ReadCount >= m_DataLength ) - return RESULT_ENDOFFILE; + if ( m_EOF ) + { + return RESULT_ENDOFFILE; + } if ( FB.Capacity() < m_FrameBufferSize ) { @@ -174,7 +176,9 @@ ASDCP::PCM::WAVParser::h__WAVParser::ReadFrame(FrameBuffer& FB) m_EOF = true; if ( read_count > 0 ) - result = RESULT_OK; + { + result = RESULT_OK; + } } if ( ASDCP_SUCCESS(result) ) @@ -182,6 +186,11 @@ ASDCP::PCM::WAVParser::h__WAVParser::ReadFrame(FrameBuffer& FB) m_ReadCount += read_count; FB.Size(read_count); FB.FrameNumber(m_FramesRead++); + + if ( read_count < FB.Capacity() ) + { + memset(FB.Data() + FB.Size(), 0, FB.Capacity() - FB.Size()); + } } return result; |
