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
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();
}
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;
{
}
-
//
// add DMS CryptographicFramework entry to source package
void
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