summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2018-08-07 17:15:16 +0000
committerjhurst <>2018-08-07 17:15:16 +0000
commit34769789ae8e6450bc63488d4d032ab2acd17805 (patch)
tree8fc40c856c4454ac3299e8cf7d8046ce3be8236a /src
parentbbfb1d262eedd04b1096bec54c848488ac233837 (diff)
added property GenericSoundEssenceDescriptor.ReferenceImageEditRate
Diffstat (limited to 'src')
-rw-r--r--src/MDD.cpp7
-rwxr-xr-xsrc/MDD.h1
-rwxr-xr-xsrc/Metadata.cpp4
-rwxr-xr-xsrc/Metadata.h1
-rwxr-xr-xsrc/h__Writer.cpp8
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 }
};
diff --git a/src/MDD.h b/src/MDD.h
index 7794336..c348e77 100755
--- a/src/MDD.h
+++ b/src/MDD.h
@@ -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