summaryrefslogtreecommitdiff
path: root/src/TimedText_Parser.cpp
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2013-08-20 21:21:06 +0000
committerjhurst <>2013-08-20 21:21:06 +0000
commit0736102a4f1eaa29b6b0b4aaabc1e360922e9385 (patch)
tree992477a801ee4e96bba1227932bbfb3cb42b5294 /src/TimedText_Parser.cpp
parent9cfe7e058499f0de149f47516f983f3619f89527 (diff)
fixed duplicate entries in TT wrapping
Diffstat (limited to 'src/TimedText_Parser.cpp')
-rw-r--r--src/TimedText_Parser.cpp15
1 files changed, 10 insertions, 5 deletions
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<Kumu::UUID> 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.