summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2020-02-14 11:46:52 -0800
committerjhurst <jhurst@cinecert.com>2020-02-14 11:46:52 -0800
commit610e14eb3cc8d3a7b9223646695e900b0acde132 (patch)
tree41f45c54e721285f9dcca4a8065453e208c38e04
parent7f8e4c2f945e5c33ea707b232cc4eb5859b1d8f9 (diff)
Die timecode! Die!no_tc_in_as_02
-rw-r--r--src/AS_02_ACES.cpp2
-rw-r--r--src/AS_02_ISXD.cpp2
-rw-r--r--src/AS_02_JP2K.cpp2
-rw-r--r--src/AS_02_PCM.cpp2
-rw-r--r--src/AS_02_PHDR.cpp10
-rw-r--r--src/AS_02_TimedText.cpp2
-rw-r--r--src/AS_02_internal.h5
-rwxr-xr-xsrc/AS_DCP_internal.h40
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,