summaryrefslogtreecommitdiff
path: root/src/PCM_Parser.cpp
diff options
context:
space:
mode:
authormikey <mikey@cinecert.com>2013-04-12 23:39:31 +0000
committermikey <>2013-04-12 23:39:31 +0000
commit252740d6f7d8924c6af30e55d2da487356a0acdc (patch)
treeba01aa630cf6cd11e7c286a60380aa35be916616 /src/PCM_Parser.cpp
parentc9e20228d6c328a0b446c1417e0082389ff045ff (diff)
Added atmos support and new ULs per SMPTE 429-2:2013 - see README for deets.
Diffstat (limited to 'src/PCM_Parser.cpp')
-rwxr-xr-xsrc/PCM_Parser.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/PCM_Parser.cpp b/src/PCM_Parser.cpp
index 3fa6d7d..e3b693d 100755
--- a/src/PCM_Parser.cpp
+++ b/src/PCM_Parser.cpp
@@ -37,6 +37,7 @@ using Kumu::DefaultLogSink;
using namespace ASDCP;
using namespace ASDCP::PCM;
using namespace ASDCP::Wav;
+using namespace ASDCP::RF64;
//------------------------------------------------------------------------------------------
@@ -47,8 +48,8 @@ class ASDCP::PCM::WAVParser::h__WAVParser
Kumu::FileReader m_FileReader;
bool m_EOF;
ui32_t m_DataStart;
- ui32_t m_DataLength;
- ui32_t m_ReadCount;
+ ui64_t m_DataLength;
+ ui64_t m_ReadCount;
ui32_t m_FrameBufferSize;
ui32_t m_FramesRead;
Rational m_PictureRate;
@@ -129,6 +130,22 @@ ASDCP::PCM::WAVParser::h__WAVParser::OpenRead(const char* filename, const Ration
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();
+ }
+ }
}
}