summaryrefslogtreecommitdiff
path: root/src/MXF.cpp
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2015-10-09 23:41:11 +0000
committerjhurst <>2015-10-09 23:41:11 +0000
commitf758bec505d45084d2563f20514ab4a81b27283a (patch)
treec04eca066f94030702476d1a2801e372658bf93c /src/MXF.cpp
parent2bf9e844a7eb0e22e9fc4fe4d152ad9a4818dfcf (diff)
o General review of Batch/Array distinction throughout the project
o Fixed a bug that caused incorrect failure when parsing JPEG 2000 codestreams having fewer than five decomposition levels. o Fixed missing UUID generation in some instances of the MCALinkID property o Added -w option to asdcp-wrap to support use of WTF label with MCA
Diffstat (limited to 'src/MXF.cpp')
-rwxr-xr-xsrc/MXF.cpp36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/MXF.cpp b/src/MXF.cpp
index d0ece08..3053047 100755
--- a/src/MXF.cpp
+++ b/src/MXF.cpp
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2005-2014, John Hurst
+Copyright (c) 2005-2015, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -100,20 +100,20 @@ ASDCP::MXF::SeekToRIP(const Kumu::FileReader& Reader)
}
//
-ASDCP::Result_t
-ASDCP::MXF::RIP::GetPairBySID(ui32_t SID, Pair& outPair) const
+bool
+ASDCP::MXF::RIP::GetPairBySID(ui32_t SID, PartitionPair& outPair) const
{
- Array<Pair>::const_iterator pi = PairArray.begin();
- for ( ; pi != PairArray.end(); pi++ )
+ RIP::const_pair_iterator i;
+ for ( i = PairArray.begin(); i != PairArray.end(); ++i )
{
- if ( (*pi).BodySID == SID )
+ if ( i->BodySID == SID )
{
- outPair = *pi;
- return RESULT_OK;
+ outPair = *i;
+ return true;
}
}
- return RESULT_FAIL;
+ return false;
}
//
@@ -526,7 +526,7 @@ ASDCP::MXF::Primer::InsertTag(const MDDEntry& Entry, ASDCP::TagValue& Tag)
TmpEntry.UL = TestUL;
TmpEntry.Tag = Tag;
- LocalTagEntryBatch.push_back(TmpEntry);
+ LocalTagEntryBatch.insert(TmpEntry);
m_Lookup->insert(std::map<UL, TagValue>::value_type(TmpEntry.UL, TmpEntry.Tag));
}
else
@@ -1511,9 +1511,8 @@ ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& label
}
current_soundfield = new ASDCP::MXF::SoundfieldGroupLabelSubDescriptor(dict);
-
- GenRandomValue(current_soundfield->InstanceUID);
GenRandomValue(current_soundfield->MCALinkID);
+
current_soundfield->MCATagSymbol = (i->second.requires_prefix ? "sg" : "") + i->first;
current_soundfield->MCATagName = i->second.tag_name;
current_soundfield->RFC5646SpokenLanguage = language;
@@ -1543,12 +1542,12 @@ ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& label
return false;
}
+ assert(current_soundfield);
+
ASDCP::MXF::AudioChannelLabelSubDescriptor *channel_descr =
new ASDCP::MXF::AudioChannelLabelSubDescriptor(dict);
-
- GenRandomValue(channel_descr->InstanceUID);
GenRandomValue(channel_descr->MCALinkID);
- assert(current_soundfield);
+
channel_descr->SoundfieldGroupLinkID = current_soundfield->MCALinkID;
channel_descr->MCAChannelID = channel_count++ + 1;
channel_descr->MCATagSymbol = (i->second.requires_prefix ? "ch" : "") + i->first;
@@ -1584,8 +1583,7 @@ ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& label
ASDCP::MXF::AudioChannelLabelSubDescriptor *channel_descr =
new ASDCP::MXF::AudioChannelLabelSubDescriptor(dict);
-
- GenRandomValue(channel_descr->InstanceUID);
+ GenRandomValue(channel_descr->MCALinkID);
if ( current_soundfield != 0 )
{
@@ -1628,8 +1626,6 @@ ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& label
ASDCP::MXF::AudioChannelLabelSubDescriptor *channel_descr =
new ASDCP::MXF::AudioChannelLabelSubDescriptor(dict);
-
- GenRandomValue(channel_descr->InstanceUID);
GenRandomValue(channel_descr->MCALinkID);
if ( current_soundfield != 0 )
@@ -1742,7 +1738,7 @@ ASDCP::MXF::GetEditRateFromFP(ASDCP::MXF::OP1aHeader& header, ASDCP::Rational& e
}
char buf[64];
- MXF::Batch<UUID>::const_iterator i;
+ MXF::Array<UUID>::const_iterator i;
MXF::SourcePackage *source_package = dynamic_cast<MXF::SourcePackage*>(temp_items.front());
assert(source_package);