summaryrefslogtreecommitdiff
path: root/src/PCM_Parser.cpp
diff options
context:
space:
mode:
authormschroffel <mschroffel@cinecert.com>2015-02-19 22:42:18 +0000
committermschroffel <>2015-02-19 22:42:18 +0000
commit528cacb6122b33f73a805fbb47b4ae83a46db418 (patch)
treead68a5c66b827dba27ed0d84c54735aa5dee0569 /src/PCM_Parser.cpp
parent665b2e2e5dcf2266e636d29bcf4ef281da65117f (diff)
banner updates to 2015
Diffstat (limited to 'src/PCM_Parser.cpp')
-rwxr-xr-xsrc/PCM_Parser.cpp47
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;