more printf format fixes
[asdcplib.git] / src / AS_DCP_PCM.cpp
index ef16f2b64618e354f5e8296c35536e5e5b311fde..38bf8e478c09781f2a1338cfed0fac3617e5487b 100755 (executable)
@@ -78,15 +78,15 @@ ASDCP::PCM::AudioDescriptorDump(const AudioDescriptor& ADesc, FILE* stream)
     stream = stderr;
 
   fprintf(stream, "\
-        SampleRate: %lu/%lu\n\
- AudioSamplingRate: %lu/%lu\n\
-            Locked: %lu\n\
-      ChannelCount: %lu\n\
-  QuantizationBits: %lu\n\
-        BlockAlign: %lu\n\
-            AvgBps: %lu\n\
-     LinkedTrackID: %lu\n\
- ContainerDuration: %lu\n",
+        SampleRate: %d/%d\n\
+ AudioSamplingRate: %d/%d\n\
+            Locked: %u\n\
+      ChannelCount: %u\n\
+  QuantizationBits: %u\n\
+        BlockAlign: %u\n\
+            AvgBps: %u\n\
+     LinkedTrackID: %u\n\
+ ContainerDuration: %u\n",
          ADesc.SampleRate.Numerator ,ADesc.SampleRate.Denominator,
          ADesc.AudioSamplingRate.Numerator ,ADesc.AudioSamplingRate.Denominator,
          ADesc.Locked,
@@ -185,7 +185,7 @@ ASDCP::PCM::MXFReader::h__Reader::OpenRead(const char* filename)
     result = InitMXFIndex();
 
   if( ASDCP_SUCCESS(result) )
-    result = InitInfo(m_Info);
+    result = InitInfo();
 
   // TODO: test file for sane CBR index BytesPerEditUnit
 
@@ -215,11 +215,11 @@ ASDCP::PCM::FrameBuffer::Dump(FILE* stream, ui32_t dump_len) const
   if ( stream == 0 )
     stream = stderr;
 
-  fprintf(stream, "Frame: %06lu, %7lu bytes\n",
+  fprintf(stream, "Frame: %06u, %7u bytes\n",
          m_FrameNumber, m_Size);
 
   if ( dump_len )
-    hexdump(m_Data, dump_len, stream);
+    Kumu::hexdump(m_Data, dump_len, stream);
 }
 
 //------------------------------------------------------------------------------------------
@@ -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);
@@ -358,14 +363,14 @@ ASDCP::PCM::MXFWriter::h__Writer::SetSourceStream(const AudioDescriptor& ADesc)
        && ADesc.SampleRate != EditRate_48
        && ADesc.SampleRate != EditRate_23_98 )
     {
-      DefaultLogSink().Error("AudioDescriptor.SampleRate is not 24/1, 48/1 or 24000/1001: %lu/%lu\n",
+      DefaultLogSink().Error("AudioDescriptor.SampleRate is not 24/1, 48/1 or 24000/1001: %d/%d\n",
                             ADesc.SampleRate.Numerator, ADesc.SampleRate.Denominator);
       return RESULT_RAW_FORMAT;
     }
 
   if ( ADesc.AudioSamplingRate != SampleRate_48k )
     {
-      DefaultLogSink().Error("AudioDescriptor.AudioSamplingRate is not 48000/1: %lu/%lu\n",
+      DefaultLogSink().Error("AudioDescriptor.AudioSamplingRate is not 48000/1: %d/%d\n",
                             ADesc.AudioSamplingRate.Numerator, ADesc.AudioSamplingRate.Denominator);
       return RESULT_RAW_FORMAT;
     }
@@ -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++;