diff options
| author | jhurst <jhurst@cinecert.com> | 2018-04-11 21:49:09 +0000 |
|---|---|---|
| committer | jhurst <> | 2018-04-11 21:49:09 +0000 |
| commit | 760639b836ccf4a4a19d81b2a29191113dd4527b (patch) | |
| tree | 810d7ea711f22dda6a839c8d628c10f38da5bc77 /src/MXF.cpp | |
| parent | 6a98c7ff80a4ec278dfcf8d1639cdc42fbb67ae7 (diff) | |
Implemented extended MCA labing syntax
Diffstat (limited to 'src/MXF.cpp')
| -rwxr-xr-x | src/MXF.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/MXF.cpp b/src/MXF.cpp index cd7dfb1..049953c 100755 --- a/src/MXF.cpp +++ b/src/MXF.cpp @@ -1500,13 +1500,17 @@ ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& label { if ( *i == '(' ) { - if ( current_soundfield != 0 ) + if ( current_soundfield != 0 && symbol_buf.empty() ) + { + // appending to the existing soundfield group + continue; + } + else if ( current_soundfield != 0 ) { DefaultLogSink().Error("Encountered '(', already processing a soundfield group.\n"); return false; } - - if ( symbol_buf.empty() ) + else if ( symbol_buf.empty() ) { DefaultLogSink().Error("Encountered '(', without leading soundfield group symbol.\n"); return false; @@ -1572,7 +1576,6 @@ ASDCP::MXF::decode_mca_string(const std::string& s, const mca_label_map_t& label channel_descr->MCALabelDictionaryID = i->second.ul; descriptor_list.push_back(reinterpret_cast<ASDCP::MXF::InterchangeObject*>(channel_descr)); symbol_buf.clear(); - current_soundfield = 0; } else if ( *i == ',' ) { |
