summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/AS_DCP_PCM.cpp10
-rwxr-xr-xsrc/Metadata.cpp2
2 files changed, 9 insertions, 3 deletions
diff --git a/src/AS_DCP_PCM.cpp b/src/AS_DCP_PCM.cpp
index e7fbff3..de8dbc0 100755
--- a/src/AS_DCP_PCM.cpp
+++ b/src/AS_DCP_PCM.cpp
@@ -51,7 +51,10 @@ ASDCP::PCM_ADesc_to_MD(PCM::AudioDescriptor& ADesc, MXF::WaveAudioDescriptor* AD
ADescObj->QuantizationBits = ADesc.QuantizationBits;
ADescObj->BlockAlign = ADesc.BlockAlign;
ADescObj->AvgBps = ADesc.AvgBps;
- ADescObj->LinkedTrackID = ADesc.LinkedTrackID;
+ if ( ! ADesc.LinkedTrackID.empty() )
+ {
+ ADescObj->LinkedTrackID = ADesc.LinkedTrackID;
+ }
ADescObj->ContainerDuration = ADesc.ContainerDuration;
ADescObj->ChannelAssignment.get().Reset();
@@ -98,7 +101,10 @@ ASDCP::MD_to_PCM_ADesc(MXF::WaveAudioDescriptor* ADescObj, PCM::AudioDescriptor&
ADesc.QuantizationBits = ADescObj->QuantizationBits;
ADesc.BlockAlign = ADescObj->BlockAlign;
ADesc.AvgBps = ADescObj->AvgBps;
- ADesc.LinkedTrackID = ADescObj->LinkedTrackID;
+ if ( ! ADescObj.LinkedTrackID.empty() )
+ {
+ ADesc.LinkedTrackID = ADescObj->LinkedTrackID;
+ }
assert(ADescObj->ContainerDuration <= 0xFFFFFFFFL);
ADesc.ContainerDuration = (ui32_t) ADescObj->ContainerDuration;
diff --git a/src/Metadata.cpp b/src/Metadata.cpp
index adaac11..3eedcac 100755
--- a/src/Metadata.cpp
+++ b/src/Metadata.cpp
@@ -1279,7 +1279,7 @@ FileDescriptor::InitFromTLVSet(TLVReader& TLVSet)
{
assert(m_Dict);
Result_t result = GenericDescriptor::InitFromTLVSet(TLVSet);
- if ( ASDCP_SUCCESS(result) ) {
+ if ( ASDCP_SUCCESS(result) && ( ! LinkedTrackID.empty() ) {
result = TLVSet.ReadUi32(OBJ_READ_ARGS_OPT(FileDescriptor, LinkedTrackID));
LinkedTrackID.set_has_value( result == RESULT_OK );
}