diff options
| author | jhurst <jhurst@cinecert.com> | 2018-08-07 17:15:16 +0000 |
|---|---|---|
| committer | jhurst <> | 2018-08-07 17:15:16 +0000 |
| commit | 34769789ae8e6450bc63488d4d032ab2acd17805 (patch) | |
| tree | 8fc40c856c4454ac3299e8cf7d8046ce3be8236a /src | |
| parent | bbfb1d262eedd04b1096bec54c848488ac233837 (diff) | |
added property GenericSoundEssenceDescriptor.ReferenceImageEditRate
Diffstat (limited to 'src')
| -rw-r--r-- | src/MDD.cpp | 7 | ||||
| -rwxr-xr-x | src/MDD.h | 1 | ||||
| -rwxr-xr-x | src/Metadata.cpp | 4 | ||||
| -rwxr-xr-x | src/Metadata.h | 1 | ||||
| -rwxr-xr-x | src/h__Writer.cpp | 8 |
5 files changed, 16 insertions, 5 deletions
diff --git a/src/MDD.cpp b/src/MDD.cpp index bae0f2b..9047ef4 100644 --- a/src/MDD.cpp +++ b/src/MDD.cpp @@ -643,7 +643,7 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { {0x3d, 0x03}, false, "GenericSoundEssenceDescriptor_AudioSamplingRate" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x04, // 202 0x04, 0x02, 0x03, 0x01, 0x04, 0x00, 0x00, 0x00 }, - {0x3d, 0x02}, false, "GenericSoundEssenceDescriptor_Locked" }, + {0x3d, 0x02}, true, "GenericSoundEssenceDescriptor_Locked" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x01, // 203 0x04, 0x02, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00 }, {0x3d, 0x04}, true, "GenericSoundEssenceDescriptor_AudioRefLevel" }, @@ -661,7 +661,7 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { {0x3d, 0x0c}, true, "GenericSoundEssenceDescriptor_DialNorm" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x02, // 208 0x04, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00 }, - {0x3d, 0x06}, false, "GenericSoundEssenceDescriptor_SoundEssenceCoding" }, + {0x3d, 0x06}, true, "GenericSoundEssenceDescriptor_SoundEssenceCoding" }, { { 0x06, 0x0e, 0x2b, 0x34, 0x02, 0x53, 0x01, 0x01, // 209 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x43, 0x00 }, {0}, false, "GenericDataEssenceDescriptor" }, @@ -1588,6 +1588,9 @@ static const ASDCP::MDDEntry s_MDD_Table[] = { { { 0x06, 0x0e, 0x2b, 0x34, 0x04, 0x01, 0x01, 0x0c, // 511 0x0d, 0x01, 0x04, 0x01, 0x04, 0x01, 0x01, 0x00 }, {0}, false, "MXFTextBasedFramework" }, + { { 0x06, 0x0e, 0x2b, 0x34, 0x01, 0x01, 0x01, 0x0e, // 512 + 0x04, 0x02, 0x01, 0x01, 0x06, 0x00, 0x00, 0x00 }, + {0}, true, "GenericSoundEssenceDescriptor_ReferenceImageEditRate" }, { {0}, {0}, false, 0 } }; @@ -547,6 +547,7 @@ namespace ASDCP { MDD_Preface_ApplicationSchemes, // 509 MDD_Preface_ConformsToSpecifications, // 510 MDD_MXFTextBasedFramework, // 511 + MDD_GenericSoundEssenceDescriptor_ReferenceImageEditRate, // 512 MDD_Max }; // enum MDD_t diff --git a/src/Metadata.cpp b/src/Metadata.cpp index a7fdd2e..fe19451 100755 --- a/src/Metadata.cpp +++ b/src/Metadata.cpp @@ -1402,6 +1402,7 @@ GenericSoundEssenceDescriptor::InitFromTLVSet(TLVReader& TLVSet) DialNorm.set_has_value( result == RESULT_OK ); } if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, SoundEssenceCoding)); + if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(GenericSoundEssenceDescriptor, ReferenceImageEditRate)); return result; } @@ -1419,6 +1420,7 @@ GenericSoundEssenceDescriptor::WriteToTLVSet(TLVWriter& TLVSet) if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi32(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, QuantizationBits)); if ( ASDCP_SUCCESS(result) && ! DialNorm.empty() ) result = TLVSet.WriteUi8(OBJ_WRITE_ARGS_OPT(GenericSoundEssenceDescriptor, DialNorm)); if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, SoundEssenceCoding)); + if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(GenericSoundEssenceDescriptor, ReferenceImageEditRate)); return result; } @@ -1435,6 +1437,7 @@ GenericSoundEssenceDescriptor::Copy(const GenericSoundEssenceDescriptor& rhs) QuantizationBits = rhs.QuantizationBits; DialNorm = rhs.DialNorm; SoundEssenceCoding = rhs.SoundEssenceCoding; + ReferenceImageEditRate = rhs.ReferenceImageEditRate; } // @@ -1462,6 +1465,7 @@ GenericSoundEssenceDescriptor::Dump(FILE* stream) fprintf(stream, " %22s = %d\n", "DialNorm", DialNorm.get()); } fprintf(stream, " %22s = %s\n", "SoundEssenceCoding", SoundEssenceCoding.EncodeString(identbuf, IdentBufferLen)); + fprintf(stream, " %22s = %s\n", "ReferenceImageEditRate", ReferenceImageEditRate.EncodeString(identbuf, IdentBufferLen)); } // diff --git a/src/Metadata.h b/src/Metadata.h index cc26c70..9f3e0be 100755 --- a/src/Metadata.h +++ b/src/Metadata.h @@ -422,6 +422,7 @@ namespace ASDCP ui32_t QuantizationBits; optional_property<ui8_t > DialNorm; UL SoundEssenceCoding; + Rational ReferenceImageEditRate; GenericSoundEssenceDescriptor(const Dictionary*& d); GenericSoundEssenceDescriptor(const GenericSoundEssenceDescriptor& rhs); diff --git a/src/h__Writer.cpp b/src/h__Writer.cpp index 4d11786..97c6fc2 100755 --- a/src/h__Writer.cpp +++ b/src/h__Writer.cpp @@ -133,6 +133,7 @@ ASDCP::AddDmsTrackGenericPartUtf8Text(Kumu::FileWriter& file_writer, MXF::OP1aHe StaticTrack_obj = 0; } + // find the Sequence associated with this Track if ( StaticTrack_obj ) { object_list.clear(); @@ -151,6 +152,7 @@ ASDCP::AddDmsTrackGenericPartUtf8Text(Kumu::FileWriter& file_writer, MXF::OP1aHe if ( Sequence_obj == 0 ) { + // this is the first insertion, create the static track assert(Dict); StaticTrack* static_track = new StaticTrack(Dict); header_part.AddChildObject(static_track); @@ -166,7 +168,7 @@ ASDCP::AddDmsTrackGenericPartUtf8Text(Kumu::FileWriter& file_writer, MXF::OP1aHe } assert(Sequence_obj); - // + // Create the DM segment and framework packs DMSegment* Segment = new DMSegment(Dict); header_part.AddChildObject(Segment); Sequence_obj->StructuralComponents.push_back(Segment->InstanceUID); @@ -180,8 +182,7 @@ ASDCP::AddDmsTrackGenericPartUtf8Text(Kumu::FileWriter& file_writer, MXF::OP1aHe Segment->DMFramework = dmf_obj->InstanceUID; GenRandomValue(dmf_obj->ObjectRef); - - // Create new SID in DMF + // Create a new SID on the RIP, located at the current file position ui32_t max_sid = 0; ASDCP::MXF::RIP::pair_iterator i; for ( i = rip.PairArray.begin(); i != rip.PairArray.end(); ++i ) @@ -192,6 +193,7 @@ ASDCP::AddDmsTrackGenericPartUtf8Text(Kumu::FileWriter& file_writer, MXF::OP1aHe } } + assert(max_sid>1); rip.PairArray.push_back(RIP::PartitionPair(max_sid + 1, file_writer.Tell())); // Add new GSTBS linked to DMF |
