diff options
| author | jhurst <jhurst@cinecert.com> | 2013-05-28 18:13:12 +0000 |
|---|---|---|
| committer | jhurst <> | 2013-05-28 18:13:12 +0000 |
| commit | dc0a23dd428b933040c9ff1602f5d35a27cbc8cb (patch) | |
| tree | b69ecec63b08464545adfb741e059b7c34f125ef /src | |
| parent | 252740d6f7d8924c6af30e55d2da487356a0acdc (diff) | |
patches
Diffstat (limited to 'src')
| -rw-r--r-- | src/KM_platform.h | 2 | ||||
| -rwxr-xr-x | src/KM_util.h | 2 | ||||
| -rwxr-xr-x | src/Wav.cpp | 8 | ||||
| -rwxr-xr-x | src/Wav.h | 5 |
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); @@ -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); |
