oops
authorjhurst <jhurst@cinecert.com>
Thu, 5 Oct 2006 20:31:27 +0000 (20:31 +0000)
committerjhurst <>
Thu, 5 Oct 2006 20:31:27 +0000 (20:31 +0000)
README
src/AS_DCP_JP2K.cpp
src/AS_DCP_internal.h
src/h__Writer.cpp

diff --git a/README b/README
index 4b11857381e679ecb2259f109992c1060b42ac66..2da02907cd88052baa23168c4eb761e17fcf224b 100755 (executable)
--- a/README
+++ b/README
@@ -114,10 +114,13 @@ utilities all respond to -h and there are manual pages in man/.
 
 Change History
 2006.09.28 - Bug fixes v1.1.10
- o Changed RM_RELEASE to RL_RELEASE in MXFTypes.h
- o Cahnged the MXF writer to use RL_RELEASE (was RL_DEVELOPMENT)
- o Really fixed source reference chain
- o Updated JP2K file package label
+ o Changed RM_RELEASE to RL_RELEASE in MXFTypes.h.
+ o Cahnged the MXF writer to use RL_RELEASE (was RL_DEVELOPMENT).
+ o Really fixed source reference chain.
+ o Updated JP2K file package label.
+ o Changed location of JPEG2000PictureSubDescriptor in the
+   header (was erroneously before Preface).
+ o Altered LS_MXF_INTEROP to produce 2-partition files.
 
 
 2006.09.25 - Bug fixes v1.1.9
index 635877964b6b8eb1ac5b46e60f7cbd2f5c00de16..912660ea03cdbd8d43850a5015ea138518e7c4b4 100755 (executable)
@@ -398,7 +398,7 @@ ASDCP::JP2K::MXFWriter::h__Writer::OpenWrite(const char* filename, ui32_t Header
       m_HeaderSize = HeaderSize;
       m_EssenceDescriptor = new RGBAEssenceDescriptor;
       m_EssenceSubDescriptor = new JPEG2000PictureSubDescriptor;
-      m_HeaderPart.AddChildObject(m_EssenceSubDescriptor);
+      m_EssenceSubDescriptorList.push_back((FileDescriptor*)m_EssenceSubDescriptor);
       m_EssenceDescriptor->SubDescriptors.push_back(m_EssenceSubDescriptor->InstanceUID);
       result = m_State.Goto_INIT();
     }
index b59df2cebbcbdebdb85f56eec154d17853163474..177a74da00f6d0291e088923beefa8c8a0e09a4f 100755 (executable)
@@ -178,6 +178,7 @@ namespace ASDCP
       SourceClip*        m_FPClip;                     //! File Package SourceClip for each essence stream 
 
       FileDescriptor*    m_EssenceDescriptor;
+      std::list<FileDescriptor*> m_EssenceSubDescriptorList;
 
       ui32_t             m_FramesWritten;
       ui64_t             m_StreamOffset;
index a3b9457536412045750a93768fbd30da821a6c5b..32568c43ea95e4f730c70fced794a43660011dbc 100755 (executable)
@@ -55,7 +55,6 @@ ASDCP::h__Writer::~h__Writer()
 {
 }
 
-
 //
 // add DMS CryptographicFramework entry to source package
 void
@@ -275,22 +274,24 @@ ASDCP::h__Writer::WriteMXFHeader(const std::string& PackageLabel, const UL& Wrap
 
   m_HeaderPart.m_Preface->EssenceContainers = m_HeaderPart.EssenceContainers;
   m_HeaderPart.AddChildObject(m_EssenceDescriptor);
+
+  std::list<FileDescriptor*>::iterator sdli = m_EssenceSubDescriptorList.begin();
+  for ( ; sdli != m_EssenceSubDescriptorList.end(); sdli++ )
+    m_HeaderPart.AddChildObject(*sdli);
+
   m_FilePackage->Descriptor = m_EssenceDescriptor->InstanceUID;
 
   // Write the header partition
   Result_t result = m_HeaderPart.WriteToFile(m_File, m_HeaderSize);
 
-  if ( ASDCP_SUCCESS(result) )
+  // create a body partition of we're writing proper 429-3/OP-Atom
+  if ( ASDCP_SUCCESS(result) && m_Info.LabelSetType == LS_MXF_SMPTE )
     {
       // Body Partition
       m_BodyPart.EssenceContainers = m_HeaderPart.EssenceContainers;
       m_BodyPart.ThisPartition = m_File.Tell();
       m_BodyPart.BodySID = 1;
       UL OPAtomUL(Dict::ul(MDD_OPAtom));
-
-      if ( m_Info.LabelSetType == LS_MXF_INTEROP )
-       OPAtomUL.Set(Dict::ul(MDD_MXFInterop_OPAtom));
-
       m_BodyPart.OperationalPattern = OPAtomUL;
       m_HeaderPart.m_RIP.PairArray.push_back(RIP::Pair(1, m_BodyPart.ThisPartition)); // Second RIP Entry