diff options
| author | Wolfgang Ruppel <imftool@t-online.de> | 2019-02-22 20:31:07 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-22 20:31:07 +0100 |
| commit | 9d5360955e77f4cd1028e028d4d748dd84151933 (patch) | |
| tree | f7e99f6587825108142dbb9cd0519af0072e29f3 /src | |
| parent | c22d49a2d1bc4ee13c36484b22de2032015c7830 (diff) | |
| parent | 08e954ce809d49e2e7e886154000077b7fd78196 (diff) | |
Merge pull request #1 from cinecert/master
2.10.32 pre-release
Diffstat (limited to 'src')
| -rw-r--r-- | src/KM_xml.cpp | 22 | ||||
| -rwxr-xr-x | src/Metadata.cpp | 37 | ||||
| -rwxr-xr-x | src/Metadata.h | 6 |
3 files changed, 32 insertions, 33 deletions
diff --git a/src/KM_xml.cpp b/src/KM_xml.cpp index e7250af..68839a1 100644 --- a/src/KM_xml.cpp +++ b/src/KM_xml.cpp @@ -612,9 +612,6 @@ 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; } @@ -1025,28 +1022,15 @@ 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++; } if ( errorCount == 0 ) - m_NamespaceOwner = (void*)docHandler->TakeNamespaceMap(); + { + m_NamespaceOwner = (void*)docHandler->TakeNamespaceMap(); + } delete parser; delete docHandler; diff --git a/src/Metadata.cpp b/src/Metadata.cpp index 8147e31..b21dc23 100755 --- a/src/Metadata.cpp +++ b/src/Metadata.cpp @@ -2538,7 +2538,7 @@ MPEG2VideoDescriptor::WriteToBuffer(ASDCP::FrameBuffer& Buffer) // -DMSegment::DMSegment(const Dictionary*& d) : InterchangeObject(d), m_Dict(d), EventStartPosition(0), Duration(0) +DMSegment::DMSegment(const Dictionary*& d) : InterchangeObject(d), m_Dict(d) { assert(m_Dict); m_UL = m_Dict->ul(MDD_DMSegment); @@ -2559,9 +2559,18 @@ DMSegment::InitFromTLVSet(TLVReader& TLVSet) assert(m_Dict); Result_t result = InterchangeObject::InitFromTLVSet(TLVSet); if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DataDefinition)); - if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, EventStartPosition)); - if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadUi64(OBJ_READ_ARGS(DMSegment, Duration)); - if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, EventComment)); + if ( ASDCP_SUCCESS(result) ) { + result = TLVSet.ReadUi64(OBJ_READ_ARGS_OPT(DMSegment, Duration)); + Duration.set_has_value( result == RESULT_OK ); + } + if ( ASDCP_SUCCESS(result) ) { + result = TLVSet.ReadUi64(OBJ_READ_ARGS_OPT(DMSegment, EventStartPosition)); + EventStartPosition.set_has_value( result == RESULT_OK ); + } + if ( ASDCP_SUCCESS(result) ) { + result = TLVSet.ReadObject(OBJ_READ_ARGS_OPT(DMSegment, EventComment)); + EventComment.set_has_value( result == RESULT_OK ); + } if ( ASDCP_SUCCESS(result) ) result = TLVSet.ReadObject(OBJ_READ_ARGS(DMSegment, DMFramework)); return result; } @@ -2573,9 +2582,9 @@ DMSegment::WriteToTLVSet(TLVWriter& TLVSet) assert(m_Dict); Result_t result = InterchangeObject::WriteToTLVSet(TLVSet); if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DataDefinition)); - if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, EventStartPosition)); - if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS(DMSegment, Duration)); - if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, EventComment)); + if ( ASDCP_SUCCESS(result) && ! Duration.empty() ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS_OPT(DMSegment, Duration)); + if ( ASDCP_SUCCESS(result) && ! EventStartPosition.empty() ) result = TLVSet.WriteUi64(OBJ_WRITE_ARGS_OPT(DMSegment, EventStartPosition)); + if ( ASDCP_SUCCESS(result) && ! EventComment.empty() ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS_OPT(DMSegment, EventComment)); if ( ASDCP_SUCCESS(result) ) result = TLVSet.WriteObject(OBJ_WRITE_ARGS(DMSegment, DMFramework)); return result; } @@ -2586,8 +2595,8 @@ DMSegment::Copy(const DMSegment& rhs) { InterchangeObject::Copy(rhs); DataDefinition = rhs.DataDefinition; - EventStartPosition = rhs.EventStartPosition; Duration = rhs.Duration; + EventStartPosition = rhs.EventStartPosition; EventComment = rhs.EventComment; DMFramework = rhs.DMFramework; } @@ -2604,9 +2613,15 @@ DMSegment::Dump(FILE* stream) InterchangeObject::Dump(stream); fprintf(stream, " %22s = %s\n", "DataDefinition", DataDefinition.EncodeString(identbuf, IdentBufferLen)); - fprintf(stream, " %22s = %s\n", "EventStartPosition", i64sz(EventStartPosition, identbuf)); - fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration, identbuf)); - fprintf(stream, " %22s = %s\n", "EventComment", EventComment.EncodeString(identbuf, IdentBufferLen)); + if ( ! Duration.empty() ) { + fprintf(stream, " %22s = %s\n", "Duration", i64sz(Duration.get(), identbuf)); + } + if ( ! EventStartPosition.empty() ) { + fprintf(stream, " %22s = %s\n", "EventStartPosition", i64sz(EventStartPosition.get(), identbuf)); + } + if ( ! EventComment.empty() ) { + fprintf(stream, " %22s = %s\n", "EventComment", EventComment.get().EncodeString(identbuf, IdentBufferLen)); + } fprintf(stream, " %22s = %s\n", "DMFramework", DMFramework.EncodeString(identbuf, IdentBufferLen)); } diff --git a/src/Metadata.h b/src/Metadata.h index ebdb288..b2466ef 100755 --- a/src/Metadata.h +++ b/src/Metadata.h @@ -658,9 +658,9 @@ namespace ASDCP public: const Dictionary*& m_Dict; UL DataDefinition; - ui64_t EventStartPosition; - ui64_t Duration; - UTF16String EventComment; + optional_property<ui64_t > Duration; + optional_property<ui64_t > EventStartPosition; + optional_property<UTF16String > EventComment; UUID DMFramework; DMSegment(const Dictionary*& d); |
