summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Hurst <jhurst@cinecert.com>2021-08-26 20:44:42 -0700
committerGitHub <noreply@github.com>2021-08-26 20:44:42 -0700
commit1f8506fd1076926c1b9c15587b8c7dca707e2c37 (patch)
tree70e8868c8f29a840da8f8620d124d5498f26e251 /src
parentef5881232511e629b1ff18e4d2f5323e3e6c1814 (diff)
parent6b438cfc1d278be1740ac07eff7cc956143e193d (diff)
Merge pull request #8 from DolbyLaboratories/dolby/atmos_storage/asdcplib_integration/add_km_logs
Add KM logs and remove semicolon from pre-processor directive
Diffstat (limited to 'src')
-rwxr-xr-xsrc/Index.cpp13
-rwxr-xr-xsrc/KM_error.h2
-rw-r--r--src/KM_xml.cpp18
3 files changed, 29 insertions, 4 deletions
diff --git a/src/Index.cpp b/src/Index.cpp
index 0815f25..5adc7e2 100755
--- a/src/Index.cpp
+++ b/src/Index.cpp
@@ -30,9 +30,11 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "MXF.h"
-const ui32_t kl_length = ASDCP::SMPTE_UL_LENGTH + ASDCP::MXF_BER_LENGTH;
+#include "KM_log.h"
+const ui32_t kl_length = ASDCP::SMPTE_UL_LENGTH + ASDCP::MXF_BER_LENGTH;
+using Kumu::DefaultLogSink;
//
ASDCP::MXF::IndexTableSegment::IndexTableSegment(const Dictionary* d) :
InterchangeObject(d), RtFileOffset(0), RtEntryOffset(0),
@@ -118,10 +120,15 @@ ASDCP::MXF::IndexTableSegment::InitFromTLVSet(TLVReader& TLVSet)
if ( decoder_item_size < item_size )
{
- TLVSet.SkipOffset(item_size - decoder_item_size);
+ rc = TLVSet.SkipOffset(item_size - decoder_item_size);
}
}
}
+ if (IndexEntryArray.size() != item_count)
+ {
+ DefaultLogSink().Error("Malformed index table segment, could not decode all IndexEntries.\n");
+ return RESULT_KLV_CODING;
+ }
}
}
}
@@ -196,7 +203,7 @@ ASDCP::MXF::IndexTableSegment::Dump(FILE* stream)
}
else
{
- fprintf(stream, " IndexEntryArray: %zu entries\n", IndexEntryArray.size());
+ fprintf(stream, " IndexEntryArray: %lu entries\n", IndexEntryArray.size());
}
}
diff --git a/src/KM_error.h b/src/KM_error.h
index 8270cc0..ad94f6c 100755
--- a/src/KM_error.h
+++ b/src/KM_error.h
@@ -36,7 +36,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <string>
-#define KM_DECLARE_RESULT(sym, i, l) const Result_t RESULT_##sym = Result_t(i, #sym, l);
+#define KM_DECLARE_RESULT(sym, i, l) const Result_t RESULT_##sym = Result_t(i, #sym, l)
namespace Kumu
{
diff --git a/src/KM_xml.cpp b/src/KM_xml.cpp
index 73ff8b5..9c45cde 100644
--- a/src/KM_xml.cpp
+++ b/src/KM_xml.cpp
@@ -613,6 +613,9 @@ Kumu::XMLElement::ParseFirstFromString(const char* document, ui32_t doc_len)
if ( ! XML_Parse(Parser, document, doc_len, 1) )
{
+ DefaultLogSink().Error("XML Parse error on line %d: %s\n",
+ XML_GetCurrentLineNumber(Parser),
+ XML_ErrorString(XML_GetErrorCode(Parser)));
XML_ParserFree(Parser);
return false;
}
@@ -1023,8 +1026,23 @@ Kumu::XMLElement::ParseFirstFromString(const char* document, ui32_t doc_len)
++errorCount;
}
}
+ catch (const XMLException& e)
+ {
+ char* message = XMLString::transcode(e.getMessage());
+ DefaultLogSink().Error("Parser error: %s\n", message);
+ XMLString::release(&message);
+ errorCount++;
+ }
+ catch (const SAXParseException& e)
+ {
+ char* message = XMLString::transcode(e.getMessage());
+ DefaultLogSink().Error("Parser error: %s at line %d\n", message, e.getLineNumber());
+ XMLString::release(&message);
+ errorCount++;
+ }
catch (...)
{
+ DefaultLogSink().Error("Unexpected XML parser error\n");
errorCount++;
}