From: jhurst Date: Wed, 11 Apr 2018 21:49:09 +0000 (+0000) Subject: Implemented extended MCA labing syntax X-Git-Tag: rel_2_10_32~67 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=760639b836ccf4a4a19d81b2a29191113dd4527b;p=asdcplib.git Implemented extended MCA labing syntax --- diff --git a/configure.ac b/configure.ac index 18e6c54..7d5c06a 100644 --- a/configure.ac +++ b/configure.ac @@ -37,7 +37,7 @@ AC_PREREQ([2.59]) # For example, if asdcplib version 1.0.0 were modified to accomodate changes # in file format, and if no changes were made to AS_DCP.h, the new version would be # 1.0.1. If changes were also required in AS_DCP.h, the new version would be 1.1.1. -AC_INIT([asdcplib], [2.8.25], [asdcplib@cinecert.com]) +AC_INIT([asdcplib], [2.8.26], [asdcplib@cinecert.com]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_SRCDIR([src/KM_error.h]) 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(channel_descr)); symbol_buf.clear(); - current_soundfield = 0; } else if ( *i == ',' ) {