compatibility fixes (and a stupidbug)
authorjhurst <jhurst@cinecert.com>
Wed, 5 Apr 2006 23:48:39 +0000 (23:48 +0000)
committerjhurst <>
Wed, 5 Apr 2006 23:48:39 +0000 (23:48 +0000)
src/AS_DCP_internal.h
src/MXF.h
src/MXFTypes.cpp
src/h__Writer.cpp

index 4a00ba02896f2d68b71cf4f75b2616d59c88e931..b59df2cebbcbdebdb85f56eec154d17853163474 100755 (executable)
@@ -103,7 +103,7 @@ namespace ASDCP
       ui64_t             m_EssenceStart;
       WriterInfo         m_Info;
       ASDCP::FrameBuffer m_CtFrameBuf;
-      fpos_t             m_LastPosition;
+      Kumu::fpos_t       m_LastPosition;
 
       h__Reader();
       virtual ~h__Reader();
index da7b92f2d570204b8fa5230fa5d6ccecca47c77f..da9c4981ec9790a50557e0c2da1fc65ad5059bf1 100755 (executable)
--- a/src/MXF.h
+++ b/src/MXF.h
@@ -327,7 +327,7 @@ namespace ASDCP
          ASDCP_NO_COPY_CONSTRUCT(OPAtomIndexFooter);
 
        public:
-         fpos_t              m_ECOffset;
+         Kumu::fpos_t        m_ECOffset;
          IPrimerLookup*      m_Lookup;
         
          OPAtomIndexFooter();
@@ -339,7 +339,7 @@ namespace ASDCP
          virtual Result_t Lookup(ui32_t frame_num, IndexTableSegment::IndexEntry&);
          virtual void     PushIndexEntry(const IndexTableSegment::IndexEntry&);
          virtual void     SetIndexParamsCBR(IPrimerLookup* lookup, ui32_t size, const Rational& Rate);
-         virtual void     SetIndexParamsVBR(IPrimerLookup* lookup, const Rational& Rate, fpos_t offset);
+         virtual void     SetIndexParamsVBR(IPrimerLookup* lookup, const Rational& Rate, Kumu::fpos_t offset);
        };
 
     } // namespace MXF
index c2352fd811a287777b240193a529dbad13168e50..ba9d7eae600faf22fac20df44960a5948e44703a 100755 (executable)
@@ -606,15 +606,19 @@ ASDCP::MXF::TLVWriter::WriteObject(const MDDEntry& Entry, Kumu::IArchive* Object
 
   Result_t result = WriteTag(Entry);
 
-  // write a temp length
-  byte_t* l_p = CurrentData();
+  if ( ASDCP_SUCCESS(result) )
+    {
+      // write a temp length
+      byte_t* l_p = CurrentData();
 
-  if ( ! MemIOWriter::WriteUi16BE(0) ) return RESULT_KLV_CODING;
+      if ( ! MemIOWriter::WriteUi16BE(0) ) return RESULT_KLV_CODING;
 
-  ui32_t before = Length();
-  if ( ! Object->Archive(this) ) return RESULT_KLV_CODING;
-  Kumu::i2p<ui16_t>(KM_i16_BE( Length() - before), l_p);
-  return RESULT_OK;
+      ui32_t before = Length();
+      if ( ! Object->Archive(this) ) return RESULT_KLV_CODING;
+      Kumu::i2p<ui16_t>(KM_i16_BE( Length() - before), l_p);
+    }
+
+  return result;
 }
 
 //
index 7d874c029d9d13ab24d578d3846ab9834ace3505..297c74184b284db2401b49dd3059547e59e24da0 100755 (executable)
@@ -296,7 +296,7 @@ ASDCP::h__Writer::WriteMXFHeader(const std::string& PackageLabel, const UL& Wrap
   if ( ASDCP_SUCCESS(result) )
     {
       // Index setup
-      fpos_t ECoffset = m_File.Tell();
+      Kumu::fpos_t ECoffset = m_File.Tell();
 
       if ( BytesPerEditUnit == 0 )
        m_FooterPart.SetIndexParamsVBR(&m_HeaderPart.m_Primer, EditRate, ECoffset);
@@ -434,7 +434,7 @@ ASDCP::h__Writer::WriteMXFFooter()
     m_FPTCSequence->Duration = m_FPTimecode->Duration = m_FPClSequence->Duration = m_FPClip->Duration = 
     m_EssenceDescriptor->ContainerDuration = m_FramesWritten;
 
-  fpos_t here = m_File.Tell();
+  Kumu::fpos_t here = m_File.Tell();
   m_HeaderPart.m_RIP.PairArray.push_back(RIP::Pair(0, here)); // Third RIP Entry
   m_HeaderPart.FooterPartition = here;