diff options
| author | jhurst <jhurst@cinecert.com> | 2006-03-26 02:16:21 +0000 |
|---|---|---|
| committer | jhurst <> | 2006-03-26 02:16:21 +0000 |
| commit | fdf31e0105bf8272a6b7fa9c4039941dff37a271 (patch) | |
| tree | e113203687b7df413ecfaf36615de19a803a965e /src/AS_DCP_PCM.cpp | |
| parent | dde89765744dad9a6b9d13126092d9bfc2dbc0d7 (diff) | |
now reads/writes 3-partition files
Diffstat (limited to 'src/AS_DCP_PCM.cpp')
| -rwxr-xr-x | src/AS_DCP_PCM.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/AS_DCP_PCM.cpp b/src/AS_DCP_PCM.cpp index 9063210..8036745 100755 --- a/src/AS_DCP_PCM.cpp +++ b/src/AS_DCP_PCM.cpp @@ -312,10 +312,15 @@ class ASDCP::PCM::MXFWriter::h__Writer : public ASDCP::h__Writer { public: AudioDescriptor m_ADesc; + byte_t m_EssenceUL[SMPTE_UL_LENGTH]; + ASDCP_NO_COPY_CONSTRUCT(h__Writer); - h__Writer(){} + h__Writer(){ + memset(m_EssenceUL, 0, SMPTE_UL_LENGTH); + } + ~h__Writer(){} Result_t OpenWrite(const char*, ui32_t HeaderSize); @@ -379,7 +384,11 @@ ASDCP::PCM::MXFWriter::h__Writer::SetSourceStream(const AudioDescriptor& ADesc) m_ADesc.SampleRate, 24 /* TCFrameRate */, calc_CBR_frame_size(m_Info, m_ADesc)); if ( ASDCP_SUCCESS(result) ) - result = m_State.Goto_READY(); + { + memcpy(m_EssenceUL, Dict::ul(MDD_WAVEssence), SMPTE_UL_LENGTH); + m_EssenceUL[SMPTE_UL_LENGTH-1] = 1; // first (and only) essence container + result = m_State.Goto_READY(); + } return result; } @@ -397,7 +406,7 @@ ASDCP::PCM::MXFWriter::h__Writer::WriteFrame(const FrameBuffer& FrameBuf, AESEnc result = m_State.Goto_RUNNING(); // first time through if ( ASDCP_SUCCESS(result) ) - result = WriteEKLVPacket(FrameBuf, Dict::ul(MDD_WAVEssence), Ctx, HMAC); + result = WriteEKLVPacket(FrameBuf, m_EssenceUL, Ctx, HMAC); if ( ASDCP_SUCCESS(result) ) m_FramesWritten++; |
