summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2013-05-28 18:13:12 +0000
committerjhurst <>2013-05-28 18:13:12 +0000
commitdc0a23dd428b933040c9ff1602f5d35a27cbc8cb (patch)
treeb69ecec63b08464545adfb741e059b7c34f125ef /src
parent252740d6f7d8924c6af30e55d2da487356a0acdc (diff)
patches
Diffstat (limited to 'src')
-rw-r--r--src/KM_platform.h2
-rwxr-xr-xsrc/KM_util.h2
-rwxr-xr-xsrc/Wav.cpp8
-rwxr-xr-xsrc/Wav.h5
4 files changed, 11 insertions, 6 deletions
diff --git a/src/KM_platform.h b/src/KM_platform.h
index c040261..578f545 100644
--- a/src/KM_platform.h
+++ b/src/KM_platform.h
@@ -166,7 +166,7 @@ namespace Kumu
~mem_ptr() { delete m_p; }
inline T& operator*() const { return *m_p; }
- inline T* operator->() const { return m_p; }
+ inline T* operator->() const { assert(m_p!=0); return m_p; }
inline operator T*()const { return m_p; }
inline const mem_ptr<T>& operator=(T* p) { this->set(p); return *this; }
inline T* set(T* p) { delete m_p; m_p = p; return m_p; }
diff --git a/src/KM_util.h b/src/KM_util.h
index a7667fc..1c54860 100755
--- a/src/KM_util.h
+++ b/src/KM_util.h
@@ -244,7 +244,7 @@ namespace Kumu
virtual ~ArchivableString() {}
bool HasValue() const { return ! this->empty(); }
- ui32_t ArchiveLength() const { sizeof(ui32_t) + static_cast<ui32_t>(this->size()); }
+ ui32_t ArchiveLength() const { return sizeof(ui32_t) + static_cast<ui32_t>(this->size()); }
bool Archive(MemIOWriter* Writer) const {
if ( Writer == 0 ) return false;
diff --git a/src/Wav.cpp b/src/Wav.cpp
index 0f14850..0ba3fe8 100755
--- a/src/Wav.cpp
+++ b/src/Wav.cpp
@@ -371,7 +371,8 @@ ASDCP::RF64::SimpleRF64Header::SimpleRF64Header(ASDCP::PCM::AudioDescriptor& ADe
samplespersec = (ui32_t)ceil(ADesc.AudioSamplingRate.Quotient());
blockalign = nchannels * ((bitspersample + 7) / 8);
avgbps = samplespersec * blockalign;
- data_len = ASDCP::PCM::CalcFrameBufferSize(ADesc) * ADesc.ContainerDuration;
+ cbsize = 0;
+ data_len = static_cast<ui64_t>(ASDCP::PCM::CalcFrameBufferSize(ADesc)) * ADesc.ContainerDuration;
}
//
@@ -402,7 +403,8 @@ ASDCP::RF64::SimpleRF64Header::WriteToFile(Kumu::FileWriter& OutFile) const
+ sizeof(samplespersec)
+ sizeof(avgbps)
+ sizeof(blockalign)
- + sizeof(bitspersample);
+ + sizeof(bitspersample)
+ + sizeof(cbsize);
ui32_t write_count = 0;
ui64_t RIFF_len = data_len + SimpleWavHeaderLength - 8;
@@ -441,6 +443,7 @@ ASDCP::RF64::SimpleRF64Header::WriteToFile(Kumu::FileWriter& OutFile) const
*((ui32_t*)p) = KM_i32_LE(avgbps); p += 4;
*((ui16_t*)p) = KM_i16_LE(blockalign); p += 2;
*((ui16_t*)p) = KM_i16_LE(bitspersample); p += 2;
+ *((ui16_t*)p) = KM_i16_LE(cbsize); p += 2;
memcpy(p, &Wav::FCC_data, sizeof(fourcc)); p += 4;
*((ui32_t*)p) = KM_i32_LE(data32_len); p += 4;
write_count = (p - tmp_header);
@@ -462,6 +465,7 @@ ASDCP::RF64::SimpleRF64Header::WriteToFile(Kumu::FileWriter& OutFile) const
*((ui32_t*)p) = KM_i32_LE(avgbps); p += 4;
*((ui16_t*)p) = KM_i16_LE(blockalign); p += 2;
*((ui16_t*)p) = KM_i16_LE(bitspersample); p += 2;
+ *((ui16_t*)p) = KM_i16_LE(cbsize); p += 2;
memcpy(p, &Wav::FCC_data, sizeof(fourcc)); p += 4;
*((ui32_t*)p) = KM_i32_LE(data_len); p += 4;
write_count = (p - tmp_header);
diff --git a/src/Wav.h b/src/Wav.h
index d2a9789..6832073 100755
--- a/src/Wav.h
+++ b/src/Wav.h
@@ -127,7 +127,7 @@ namespace ASDCP
static const ui32_t MAX_RIFF_LEN = 0xFFFFFFFF;
static const ui32_t DS64_HEADER_LEN = 28;
- static const ui32_t SIMPLE_RF64_HEADER_LEN = 80;
+ static const ui32_t SIMPLE_RF64_HEADER_LEN = 82;
//
class SimpleRF64Header
{
@@ -138,11 +138,12 @@ namespace ASDCP
ui32_t avgbps;
ui16_t blockalign;
ui16_t bitspersample;
+ ui16_t cbsize;
ui64_t data_len;
SimpleRF64Header() :
format(0), nchannels(0), samplespersec(0), avgbps(0),
- blockalign(0), bitspersample(0), data_len(0) {}
+ blockalign(0), bitspersample(0), cbsize(0), data_len(0) {}
SimpleRF64Header(ASDCP::PCM::AudioDescriptor& ADesc);