o Added preliminary support for timed-text wrapping for AS-02. This
[asdcplib.git] / src / AS_DCP_internal.h
index df342bf113cfdda87f0e681c84829e54777a2b32..675f96de93bec1a35bf1782d389921e48329efcc 100755 (executable)
@@ -134,25 +134,15 @@ namespace ASDCP
   Result_t EncryptFrameBuffer(const ASDCP::FrameBuffer&, ASDCP::FrameBuffer&, AESEncContext*);
   Result_t DecryptFrameBuffer(const ASDCP::FrameBuffer&, ASDCP::FrameBuffer&, AESDecContext*);
 
-  Result_t MD_to_JP2K_PDesc(const ASDCP::MXF::RGBAEssenceDescriptor&  EssenceDescriptor,
+  Result_t MD_to_JP2K_PDesc(const ASDCP::MXF::GenericPictureEssenceDescriptor&  EssenceDescriptor,
                            const ASDCP::MXF::JPEG2000PictureSubDescriptor& EssenceSubDescriptor,
                            const ASDCP::Rational& EditRate, const ASDCP::Rational& SampleRate,
                            ASDCP::JP2K::PictureDescriptor& PDesc);
 
   Result_t JP2K_PDesc_to_MD(const JP2K::PictureDescriptor& PDesc,
                            const ASDCP::Dictionary& dict,
-                           ASDCP::MXF::RGBAEssenceDescriptor *EssenceDescriptor,
-                           ASDCP::MXF::JPEG2000PictureSubDescriptor *EssenceSubDescriptor);
-
-  Result_t MD_to_JP2K_PDesc(const ASDCP::MXF::CDCIEssenceDescriptor&  EssenceDescriptor,
-                           const ASDCP::MXF::JPEG2000PictureSubDescriptor& EssenceSubDescriptor,
-                           const ASDCP::Rational& EditRate, const ASDCP::Rational& SampleRate,
-                           ASDCP::JP2K::PictureDescriptor& PDesc);
-
-  Result_t JP2K_PDesc_to_MD(const JP2K::PictureDescriptor& PDesc,
-                           const ASDCP::Dictionary& dict,
-                           ASDCP::MXF::CDCIEssenceDescriptor *EssenceDescriptor,
-                           ASDCP::MXF::JPEG2000PictureSubDescriptor *EssenceSubDescriptor);
+                           ASDCP::MXF::GenericPictureEssenceDescriptor& EssenceDescriptor,
+                           ASDCP::MXF::JPEG2000PictureSubDescriptor& EssenceSubDescriptor);
 
   Result_t PCM_ADesc_to_MD(PCM::AudioDescriptor& ADesc, ASDCP::MXF::WaveAudioDescriptor* ADescObj);
   Result_t MD_to_PCM_ADesc(ASDCP::MXF::WaveAudioDescriptor* ADescObj, PCM::AudioDescriptor& ADesc);
@@ -607,14 +597,14 @@ namespace ASDCP
          TrackSet<TimecodeComponent> MPTCTrack =
            CreateTimecodeTrack<MaterialPackage>(m_HeaderPart, *m_MaterialPackage,
                                                 tc_edit_rate, TCFrameRate, 0, m_Dict);
-         m_DurationUpdateList.push_back(&(MPTCTrack.Sequence->Duration));
-         m_DurationUpdateList.push_back(&(MPTCTrack.Clip->Duration));
+         m_DurationUpdateList.push_back(&(MPTCTrack.Sequence->Duration.get()));
+         m_DurationUpdateList.push_back(&(MPTCTrack.Clip->Duration.get()));
 
          TrackSet<SourceClip> MPTrack =
            CreateTrackAndSequence<MaterialPackage, SourceClip>(m_HeaderPart, *m_MaterialPackage,
                                                                TrackName, clip_edit_rate, DataDefinition,
                                                                2, m_Dict);
-         m_DurationUpdateList.push_back(&(MPTrack.Sequence->Duration));
+         m_DurationUpdateList.push_back(&(MPTrack.Sequence->Duration.get()));
 
          MPTrack.Clip = new SourceClip(m_Dict);
          m_HeaderPart.AddChildObject(MPTrack.Clip);
@@ -622,7 +612,7 @@ namespace ASDCP
          MPTrack.Clip->DataDefinition = DataDefinition;
          MPTrack.Clip->SourcePackageID = SourcePackageUMID;
          MPTrack.Clip->SourceTrackID = 2;
-         m_DurationUpdateList.push_back(&(MPTrack.Clip->Duration));
+         m_DurationUpdateList.push_back(&(MPTrack.Clip->Duration.get()));
 
   
          //
@@ -640,13 +630,13 @@ namespace ASDCP
            CreateTimecodeTrack<SourcePackage>(m_HeaderPart, *m_FilePackage,
                                               tc_edit_rate, TCFrameRate,
                                               ui64_C(3600) * TCFrameRate, m_Dict);
-         m_DurationUpdateList.push_back(&(FPTCTrack.Sequence->Duration));
-         m_DurationUpdateList.push_back(&(FPTCTrack.Clip->Duration));
+         m_DurationUpdateList.push_back(&(FPTCTrack.Sequence->Duration.get()));
+         m_DurationUpdateList.push_back(&(FPTCTrack.Clip->Duration.get()));
          TrackSet<SourceClip> FPTrack =
            CreateTrackAndSequence<SourcePackage, SourceClip>(m_HeaderPart, *m_FilePackage,
                                                              TrackName, clip_edit_rate, DataDefinition,
                                                              2, m_Dict);
-         m_DurationUpdateList.push_back(&(FPTrack.Sequence->Duration));
+         m_DurationUpdateList.push_back(&(FPTrack.Sequence->Duration.get()));
 
          // Consult ST 379:2004 Sec. 6.3, "Element to track relationship" to see where "12" comes from.
          FPTrack.Track->TrackNumber = KM_i32_BE(Kumu::cp2i<ui32_t>((EssenceUL.Value() + 12)));
@@ -659,7 +649,7 @@ namespace ASDCP
          // for now we do not allow setting this value, so all files will be 'original'
          FPTrack.Clip->SourceTrackID = 0;
          FPTrack.Clip->SourcePackageID = NilUMID;
-         m_DurationUpdateList.push_back(&(FPTrack.Clip->Duration));
+         m_DurationUpdateList.push_back(&(FPTrack.Clip->Duration.get()));
 
          m_EssenceDescriptor->LinkedTrackID = FPTrack.Track->TrackID;
        }
@@ -698,14 +688,14 @@ namespace ASDCP
          TrackSet<TimecodeComponent> MPTCTrack =
            CreateTimecodeTrack<MaterialPackage>(m_HeaderPart, *m_MaterialPackage,
                                                 tc_edit_rate, tc_frame_rate, 0, m_Dict);
-         m_DurationUpdateList.push_back(&(MPTCTrack.Sequence->Duration));
-         m_DurationUpdateList.push_back(&(MPTCTrack.Clip->Duration));
+         m_DurationUpdateList.push_back(&(MPTCTrack.Sequence->Duration.get()));
+         m_DurationUpdateList.push_back(&(MPTCTrack.Clip->Duration.get()));
 
          TrackSet<DMSegment> MPTrack =
            CreateTrackAndSequence<MaterialPackage, DMSegment>(m_HeaderPart, *m_MaterialPackage,
                                                               TrackName, clip_edit_rate, DataDefinition,
                                                               2, m_Dict);
-         m_DurationUpdateList.push_back(&(MPTrack.Sequence->Duration));
+         m_DurationUpdateList.push_back(&(MPTrack.Sequence->Duration.get()));
 
          MPTrack.Clip = new DMSegment(m_Dict);
          m_HeaderPart.AddChildObject(MPTrack.Clip);
@@ -731,14 +721,14 @@ namespace ASDCP
            CreateTimecodeTrack<SourcePackage>(m_HeaderPart, *m_FilePackage,
                                               clip_edit_rate, tc_frame_rate,
                                               ui64_C(3600) * tc_frame_rate, m_Dict);
-         m_DurationUpdateList.push_back(&(FPTCTrack.Sequence->Duration));
-         m_DurationUpdateList.push_back(&(FPTCTrack.Clip->Duration));
+         m_DurationUpdateList.push_back(&(FPTCTrack.Sequence->Duration.get()));
+         m_DurationUpdateList.push_back(&(FPTCTrack.Clip->Duration.get()));
 
          TrackSet<DMSegment> FPTrack =
            CreateTrackAndSequence<SourcePackage, DMSegment>(m_HeaderPart, *m_FilePackage,
                                                             TrackName, clip_edit_rate, DataDefinition,
                                                             2, m_Dict);
-         m_DurationUpdateList.push_back(&(FPTrack.Sequence->Duration));
+         m_DurationUpdateList.push_back(&(FPTrack.Sequence->Duration.get()));
 
          FPTrack.Clip = new DMSegment(m_Dict);
          m_HeaderPart.AddChildObject(FPTrack.Clip);