summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2018-04-11 21:49:09 +0000
committerjhurst <>2018-04-11 21:49:09 +0000
commit760639b836ccf4a4a19d81b2a29191113dd4527b (patch)
tree810d7ea711f22dda6a839c8d628c10f38da5bc77
parent6a98c7ff80a4ec278dfcf8d1639cdc42fbb67ae7 (diff)
Implemented extended MCA labing syntax
-rw-r--r--configure.ac2
-rwxr-xr-xsrc/MXF.cpp11
2 files changed, 8 insertions, 5 deletions
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<ASDCP::MXF::InterchangeObject*>(channel_descr));
symbol_buf.clear();
- current_soundfield = 0;
}
else if ( *i == ',' )
{