From 0736102a4f1eaa29b6b0b4aaabc1e360922e9385 Mon Sep 17 00:00:00 2001 From: jhurst Date: Tue, 20 Aug 2013 21:21:06 +0000 Subject: fixed duplicate entries in TT wrapping --- src/TimedText_Parser.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/TimedText_Parser.cpp') diff --git a/src/TimedText_Parser.cpp b/src/TimedText_Parser.cpp index 191a353..bc3023b 100644 --- a/src/TimedText_Parser.cpp +++ b/src/TimedText_Parser.cpp @@ -269,6 +269,7 @@ ASDCP::TimedText::DCSubtitleParser::h__SubtitleParser::OpenRead() // list of images ElementList ImageList; m_Root.GetChildrenWithName("Image", ImageList); + std::set visited_items; for ( Elem_i i = ImageList.begin(); i != ImageList.end(); i++ ) { @@ -279,11 +280,15 @@ ASDCP::TimedText::DCSubtitleParser::h__SubtitleParser::OpenRead() return RESULT_FORMAT; } - TimedTextResourceDescriptor TmpResource; - memcpy(TmpResource.ResourceID, AssetID.Value(), UUIDlen); - TmpResource.Type = MT_PNG; - m_TDesc.ResourceList.push_back(TmpResource); - m_ResourceTypes.insert(ResourceTypeMap_t::value_type(UUID(TmpResource.ResourceID), MT_PNG)); + if ( visited_items.find(AssetID) == visited_items.end() ) + { + TimedTextResourceDescriptor TmpResource; + memcpy(TmpResource.ResourceID, AssetID.Value(), UUIDlen); + TmpResource.Type = MT_PNG; + m_TDesc.ResourceList.push_back(TmpResource); + m_ResourceTypes.insert(ResourceTypeMap_t::value_type(UUID(TmpResource.ResourceID), MT_PNG)); + visited_items.insert(AssetID); + } } // Calculate the timeline duration. -- cgit v1.2.3