Implemented extended MCA labing syntax
authorjhurst <jhurst@cinecert.com>
Wed, 11 Apr 2018 21:49:09 +0000 (21:49 +0000)
committerjhurst <>
Wed, 11 Apr 2018 21:49:09 +0000 (21:49 +0000)
configure.ac
src/MXF.cpp

index 18e6c54b6e0804af3a71f1b065995ec0a4a72a90..7d5c06a0f6b945022505c4969d6db9361c824c5a 100644 (file)
@@ -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])
index cd7dfb1cb91c98b33be883aca80500610100bf04..049953cd2ea7feb410f631c65c32603070aaf00f 100755 (executable)
@@ -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 == ',' )
        {