diff options
| author | jhurst <jhurst@cinecert.com> | 2020-02-14 11:46:52 -0800 |
|---|---|---|
| committer | jhurst <jhurst@cinecert.com> | 2020-02-14 11:46:52 -0800 |
| commit | 610e14eb3cc8d3a7b9223646695e900b0acde132 (patch) | |
| tree | 41f45c54e721285f9dcca4a8065453e208c38e04 | |
| parent | 7f8e4c2f945e5c33ea707b232cc4eb5859b1d8f9 (diff) | |
Die timecode! Die!no_tc_in_as_02
| -rw-r--r-- | src/AS_02_ACES.cpp | 2 | ||||
| -rw-r--r-- | src/AS_02_ISXD.cpp | 2 | ||||
| -rw-r--r-- | src/AS_02_JP2K.cpp | 2 | ||||
| -rw-r--r-- | src/AS_02_PCM.cpp | 2 | ||||
| -rw-r--r-- | src/AS_02_PHDR.cpp | 10 | ||||
| -rw-r--r-- | src/AS_02_TimedText.cpp | 2 | ||||
| -rw-r--r-- | src/AS_02_internal.h | 5 | ||||
| -rwxr-xr-x | src/AS_DCP_internal.h | 40 |
8 files changed, 34 insertions, 31 deletions
diff --git a/src/AS_02_ACES.cpp b/src/AS_02_ACES.cpp index 9a847cc..876af18 100644 --- a/src/AS_02_ACES.cpp +++ b/src/AS_02_ACES.cpp @@ -603,7 +603,7 @@ AS_02::Result_t AS_02::ACES::MXFWriter::h__Writer::SetSourceStream(const std::st { result = WriteAS02Header(label, UL(m_Dict->ul(MDD_MXFGCFrameWrappedACESPictures)), //Essence Container Label per 2065-5 section 8.1 (frame wrapping) PICT_DEF_LABEL, UL(m_EssenceUL), UL(m_Dict->ul(MDD_PictureDataDef)), - edit_rate, derive_timecode_rate_from_edit_rate(edit_rate)); + edit_rate); if(KM_SUCCESS(result)) { diff --git a/src/AS_02_ISXD.cpp b/src/AS_02_ISXD.cpp index 6230c58..a374664 100644 --- a/src/AS_02_ISXD.cpp +++ b/src/AS_02_ISXD.cpp @@ -338,7 +338,7 @@ AS_02::ISXD::MXFWriter::h__Writer::SetSourceStream(const std::string& label, con { result = WriteAS02Header(label, UL(m_Dict->ul(MDD_FrameWrappedISXDContainer)), PICT_DEF_LABEL, UL(m_EssenceUL), UL(m_Dict->ul(MDD_DataDataDef)), - edit_rate, derive_timecode_rate_from_edit_rate(edit_rate)); + edit_rate); if ( KM_SUCCESS(result) ) { diff --git a/src/AS_02_JP2K.cpp b/src/AS_02_JP2K.cpp index 321abfc..ac951e4 100644 --- a/src/AS_02_JP2K.cpp +++ b/src/AS_02_JP2K.cpp @@ -363,7 +363,7 @@ AS_02::JP2K::MXFWriter::h__Writer::SetSourceStream(const std::string& label, con result = WriteAS02Header(label, wrapping_label, PICT_DEF_LABEL, UL(m_EssenceUL), UL(m_Dict->ul(MDD_PictureDataDef)), - edit_rate, derive_timecode_rate_from_edit_rate(edit_rate)); + edit_rate); if ( KM_SUCCESS(result) ) { diff --git a/src/AS_02_PCM.cpp b/src/AS_02_PCM.cpp index 8532887..aa7b2a2 100644 --- a/src/AS_02_PCM.cpp +++ b/src/AS_02_PCM.cpp @@ -423,7 +423,7 @@ AS_02::PCM::MXFWriter::h__Writer::SetSourceStream(const ASDCP::Rational& edit_ra m_BytesPerSample = AS_02::MXF::CalcSampleSize(*m_WaveAudioDescriptor); result = WriteAS02Header(PCM_PACKAGE_LABEL, UL(m_Dict->ul(MDD_WAVWrappingClip)), SOUND_DEF_LABEL, UL(m_EssenceUL), UL(m_Dict->ul(MDD_SoundDataDef)), - m_EssenceDescriptor->SampleRate, derive_timecode_rate_from_edit_rate(edit_rate)); + m_EssenceDescriptor->SampleRate); if ( KM_SUCCESS(result) ) { diff --git a/src/AS_02_PHDR.cpp b/src/AS_02_PHDR.cpp index c08efd0..471d226 100644 --- a/src/AS_02_PHDR.cpp +++ b/src/AS_02_PHDR.cpp @@ -349,8 +349,7 @@ class AS_02::PHDR::MXFWriter::h__Writer : public AS_02::h__AS02WriterFrame Result_t WritePHDRHeader(const std::string& PackageLabel, const ASDCP::UL& WrappingUL, const std::string& TrackName, const ASDCP::UL& EssenceUL, - const ASDCP::UL& DataDefinition, const ASDCP::Rational& EditRate, - const ui32_t& TCFrameRate); + const ASDCP::UL& DataDefinition, const ASDCP::Rational& EditRate); public: byte_t m_EssenceUL[SMPTE_UL_LENGTH]; @@ -436,8 +435,7 @@ AS_02::PHDR::MXFWriter::h__Writer::OpenWrite(const std::string& filename, Result_t AS_02::PHDR::MXFWriter::h__Writer::WritePHDRHeader(const std::string& PackageLabel, const ASDCP::UL& WrappingUL, const std::string& TrackName, const ASDCP::UL& EssenceUL, - const ASDCP::UL& DataDefinition, const ASDCP::Rational& EditRate, - const ui32_t& TCFrameRate) + const ASDCP::UL& DataDefinition, const ASDCP::Rational& EditRate) { if ( EditRate.Numerator == 0 || EditRate.Denominator == 0 ) { @@ -447,7 +445,7 @@ AS_02::PHDR::MXFWriter::h__Writer::WritePHDRHeader(const std::string& PackageLab InitHeader(MXFVersion_2011); - AddSourceClip(EditRate, EditRate/*TODO: for a moment*/, TCFrameRate, TrackName, EssenceUL, DataDefinition, PackageLabel); + AddSourceClip(EditRate, EditRate/*TODO: for a moment*/, 0 /*no timecode track*/, TrackName, EssenceUL, DataDefinition, PackageLabel); // add metadata track TrackSet<SourceClip> metdata_track = @@ -534,7 +532,7 @@ AS_02::PHDR::MXFWriter::h__Writer::SetSourceStream(const std::string& label, con { result = WritePHDRHeader(label, UL(m_Dict->ul(MDD_MXFGCFUFrameWrappedPictureElement)), PICT_DEF_LABEL, UL(m_EssenceUL), UL(m_Dict->ul(MDD_PictureDataDef)), - edit_rate, derive_timecode_rate_from_edit_rate(edit_rate)); + edit_rate); if ( KM_SUCCESS(result) ) { diff --git a/src/AS_02_TimedText.cpp b/src/AS_02_TimedText.cpp index 6868395..09f7103 100644 --- a/src/AS_02_TimedText.cpp +++ b/src/AS_02_TimedText.cpp @@ -496,7 +496,7 @@ AS_02::TimedText::MXFWriter::h__Writer::SetSourceStream(ASDCP::TimedText::TimedT m_EditRate = TDesc.EditRate; result = WriteAS02Header(TIMED_TEXT_PACKAGE_LABEL, UL(m_Dict->ul(MDD_TimedTextWrappingClip)), "Data Track", UL(m_EssenceUL), UL(m_Dict->ul(MDD_DataDataDef)), - TDesc.EditRate, derive_timecode_rate_from_edit_rate(TDesc.EditRate)); + TDesc.EditRate); } return result; diff --git a/src/AS_02_internal.h b/src/AS_02_internal.h index 4be764d..e6038c3 100644 --- a/src/AS_02_internal.h +++ b/src/AS_02_internal.h @@ -164,8 +164,7 @@ namespace AS_02 // all the above for a single source clip Result_t WriteAS02Header(const std::string& PackageLabel, const ASDCP::UL& WrappingUL, const std::string& TrackName, const ASDCP::UL& EssenceUL, - const ASDCP::UL& DataDefinition, const ASDCP::Rational& EditRate, - const ui32_t& TCFrameRate) + const ASDCP::UL& DataDefinition, const ASDCP::Rational& EditRate) { if ( EditRate.Numerator == 0 || EditRate.Denominator == 0 ) { @@ -175,7 +174,7 @@ namespace AS_02 InitHeader(MXFVersion_2011); - AddSourceClip(EditRate, EditRate/*TODO: for a moment*/, TCFrameRate, TrackName, EssenceUL, DataDefinition, PackageLabel); + AddSourceClip(EditRate, EditRate/*TODO: for a moment*/, 0 /*no timecode track*/, TrackName, EssenceUL, DataDefinition, PackageLabel); AddEssenceDescriptor(WrappingUL); this->m_IndexWriter.SetPrimerLookup(&this->m_HeaderPart.m_Primer); diff --git a/src/AS_DCP_internal.h b/src/AS_DCP_internal.h index 57ed006..a684ba5 100755 --- a/src/AS_DCP_internal.h +++ b/src/AS_DCP_internal.h @@ -675,7 +675,7 @@ namespace ASDCP // void AddSourceClip(const MXF::Rational& clip_edit_rate, - const MXF::Rational& tc_edit_rate, ui32_t TCFrameRate, + const MXF::Rational& tc_edit_rate, ui32_t tc_frame_rate, const std::string& TrackName, const UL& EssenceUL, const UL& DataDefinition, const std::string& PackageLabel) { @@ -706,14 +706,17 @@ namespace ASDCP m_HeaderPart.AddChildObject(m_MaterialPackage); m_ContentStorage->Packages.push_back(m_MaterialPackage->InstanceUID); - TrackSet<TimecodeComponent> MPTCTrack = - CreateTimecodeTrack<MaterialPackage>(m_HeaderPart, *m_MaterialPackage, - tc_edit_rate, TCFrameRate, 0, m_Dict); - - MPTCTrack.Sequence->Duration.set_has_value(); - m_DurationUpdateList.push_back(&(MPTCTrack.Sequence->Duration.get())); - MPTCTrack.Clip->Duration.set_has_value(); - m_DurationUpdateList.push_back(&(MPTCTrack.Clip->Duration.get())); + if ( tc_frame_rate ) + { + TrackSet<TimecodeComponent> MPTCTrack = + CreateTimecodeTrack<MaterialPackage>(m_HeaderPart, *m_MaterialPackage, + tc_edit_rate, tc_frame_rate, 0, m_Dict); + + MPTCTrack.Sequence->Duration.set_has_value(); + m_DurationUpdateList.push_back(&(MPTCTrack.Sequence->Duration.get())); + MPTCTrack.Clip->Duration.set_has_value(); + m_DurationUpdateList.push_back(&(MPTCTrack.Clip->Duration.get())); + } TrackSet<SourceClip> MPTrack = CreateTrackAndSequence<MaterialPackage, SourceClip>(m_HeaderPart, *m_MaterialPackage, @@ -744,14 +747,17 @@ namespace ASDCP m_HeaderPart.AddChildObject(m_FilePackage); m_ContentStorage->Packages.push_back(m_FilePackage->InstanceUID); - TrackSet<TimecodeComponent> FPTCTrack = - CreateTimecodeTrack<SourcePackage>(m_HeaderPart, *m_FilePackage, - tc_edit_rate, TCFrameRate, 0, m_Dict); - - FPTCTrack.Sequence->Duration.set_has_value(); - m_DurationUpdateList.push_back(&(FPTCTrack.Sequence->Duration.get())); - FPTCTrack.Clip->Duration.set_has_value(); - m_DurationUpdateList.push_back(&(FPTCTrack.Clip->Duration.get())); + if ( tc_frame_rate ) + { + TrackSet<TimecodeComponent> FPTCTrack = + CreateTimecodeTrack<SourcePackage>(m_HeaderPart, *m_FilePackage, + tc_edit_rate, tc_frame_rate, 0, m_Dict); + + FPTCTrack.Sequence->Duration.set_has_value(); + m_DurationUpdateList.push_back(&(FPTCTrack.Sequence->Duration.get())); + FPTCTrack.Clip->Duration.set_has_value(); + m_DurationUpdateList.push_back(&(FPTCTrack.Clip->Duration.get())); + } TrackSet<SourceClip> FPTrack = CreateTrackAndSequence<SourcePackage, SourceClip>(m_HeaderPart, *m_FilePackage, |
