summaryrefslogtreecommitdiff
path: root/src/AS_DCP_internal.h
diff options
context:
space:
mode:
authormschroffel <mschroffel@cinecert.com>2014-08-07 19:14:00 +0000
committermschroffel <>2014-08-07 19:14:00 +0000
commit8d24b6effb0377fc3041c2e024e7c5593caecc52 (patch)
tree7d07981e634d09698933c680a1d55b5bbc2db8b0 /src/AS_DCP_internal.h
parent7f3035721a09a68106454a53be4fe7f967543195 (diff)
version bump
Diffstat (limited to 'src/AS_DCP_internal.h')
-rwxr-xr-xsrc/AS_DCP_internal.h40
1 files changed, 23 insertions, 17 deletions
diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h
index a37c731..7875a4f 100755
--- a/src/AS_DCP_internal.h
+++ b/src/AS_DCP_internal.h
@@ -500,6 +500,7 @@ namespace ASDCP
MaterialPackage* m_MaterialPackage;
SourcePackage* m_FilePackage;
+ ContentStorage* m_ContentStorage;
FileDescriptor* m_EssenceDescriptor;
std::list<InterchangeObject*> m_EssenceSubDescriptorList;
@@ -514,9 +515,9 @@ namespace ASDCP
DurationElementList_t m_DurationUpdateList;
TrackFileWriter(const Dictionary& d) :
- m_Dict(&d), m_HeaderPart(m_Dict), m_RIP(m_Dict),
- m_HeaderSize(0), m_EssenceDescriptor(0),
- m_FramesWritten(0), m_StreamOffset(0)
+ m_Dict(&d), m_HeaderSize(0), m_HeaderPart(m_Dict), m_RIP(m_Dict),
+ m_MaterialPackage(0), m_FilePackage(0), m_ContentStorage(0),
+ m_EssenceDescriptor(0), m_FramesWritten(0), m_StreamOffset(0)
{
default_md_object_init();
}
@@ -568,14 +569,16 @@ namespace ASDCP
const std::string& TrackName, const UL& EssenceUL,
const UL& DataDefinition, const std::string& PackageLabel)
{
- //
- ContentStorage* Storage = new ContentStorage(m_Dict);
- m_HeaderPart.AddChildObject(Storage);
- m_HeaderPart.m_Preface->ContentStorage = Storage->InstanceUID;
+ if ( m_ContentStorage == 0 )
+ {
+ m_ContentStorage = new ContentStorage(m_Dict);
+ m_HeaderPart.AddChildObject(m_ContentStorage);
+ m_HeaderPart.m_Preface->ContentStorage = m_ContentStorage->InstanceUID;
+ }
EssenceContainerData* ECD = new EssenceContainerData(m_Dict);
m_HeaderPart.AddChildObject(ECD);
- Storage->EssenceContainerData.push_back(ECD->InstanceUID);
+ m_ContentStorage->EssenceContainerData.push_back(ECD->InstanceUID);
ECD->IndexSID = 129;
ECD->BodySID = 1;
@@ -591,7 +594,7 @@ namespace ASDCP
m_MaterialPackage->Name = "AS-DCP Material Package";
m_MaterialPackage->PackageUID = MaterialPackageUMID;
m_HeaderPart.AddChildObject(m_MaterialPackage);
- Storage->Packages.push_back(m_MaterialPackage->InstanceUID);
+ m_ContentStorage->Packages.push_back(m_MaterialPackage->InstanceUID);
TrackSet<TimecodeComponent> MPTCTrack =
CreateTimecodeTrack<MaterialPackage>(m_HeaderPart, *m_MaterialPackage,
@@ -629,7 +632,7 @@ namespace ASDCP
ECD->LinkedPackageUID = SourcePackageUMID;
m_HeaderPart.AddChildObject(m_FilePackage);
- Storage->Packages.push_back(m_FilePackage->InstanceUID);
+ m_ContentStorage->Packages.push_back(m_FilePackage->InstanceUID);
TrackSet<TimecodeComponent> FPTCTrack =
CreateTimecodeTrack<SourcePackage>(m_HeaderPart, *m_FilePackage,
@@ -673,14 +676,16 @@ namespace ASDCP
const std::string& TrackName, const UL& DataDefinition,
const std::string& PackageLabel)
{
- //
- ContentStorage* Storage = new ContentStorage(m_Dict);
- m_HeaderPart.AddChildObject(Storage);
- m_HeaderPart.m_Preface->ContentStorage = Storage->InstanceUID;
+ if ( m_ContentStorage == 0 )
+ {
+ m_ContentStorage = new ContentStorage(m_Dict);
+ m_HeaderPart.AddChildObject(m_ContentStorage);
+ m_HeaderPart.m_Preface->ContentStorage = m_ContentStorage->InstanceUID;
+ }
EssenceContainerData* ECD = new EssenceContainerData(m_Dict);
m_HeaderPart.AddChildObject(ECD);
- Storage->EssenceContainerData.push_back(ECD->InstanceUID);
+ m_ContentStorage->EssenceContainerData.push_back(ECD->InstanceUID);
ECD->IndexSID = 129;
ECD->BodySID = 1;
@@ -696,7 +701,7 @@ namespace ASDCP
m_MaterialPackage->Name = "AS-DCP Material Package";
m_MaterialPackage->PackageUID = MaterialPackageUMID;
m_HeaderPart.AddChildObject(m_MaterialPackage);
- Storage->Packages.push_back(m_MaterialPackage->InstanceUID);
+ m_ContentStorage->Packages.push_back(m_MaterialPackage->InstanceUID);
TrackSet<TimecodeComponent> MPTCTrack =
CreateTimecodeTrack<MaterialPackage>(m_HeaderPart, *m_MaterialPackage,
@@ -733,7 +738,7 @@ namespace ASDCP
ECD->LinkedPackageUID = SourcePackageUMID;
m_HeaderPart.AddChildObject(m_FilePackage);
- Storage->Packages.push_back(m_FilePackage->InstanceUID);
+ m_ContentStorage->Packages.push_back(m_FilePackage->InstanceUID);
TrackSet<TimecodeComponent> FPTCTrack =
CreateTimecodeTrack<SourcePackage>(m_HeaderPart, *m_FilePackage,
@@ -786,6 +791,7 @@ namespace ASDCP
m_HeaderPart.EssenceContainers.push_back(CryptEssenceUL);
m_HeaderPart.m_Preface->DMSchemes.push_back(UL(m_Dict->ul(MDD_CryptographicFrameworkLabel)));
AddDMScrypt(m_HeaderPart, *m_FilePackage, m_Info, WrappingUL, m_Dict);
+ //// TODO: fix DMSegment Duration value
}
else
{