summaryrefslogtreecommitdiff
path: root/src/dcp.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/dcp.cc')
-rw-r--r--src/dcp.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/dcp.cc b/src/dcp.cc
index b7a0da8b..bf8366f3 100644
--- a/src/dcp.cc
+++ b/src/dcp.cc
@@ -507,12 +507,23 @@ DCP::assets (bool ignore_unresolved) const
if (ignore_unresolved && !j->asset_ref().resolved()) {
continue;
}
- shared_ptr<Asset> o = j->asset_ref().asset ();
- assets.push_back (o);
- /* More Interop special-casing */
- shared_ptr<InteropSubtitleAsset> sub = dynamic_pointer_cast<InteropSubtitleAsset> (o);
- if (sub) {
- sub->add_font_assets (assets);
+
+ string const id = j->asset_ref().id();
+ bool already_got = false;
+ BOOST_FOREACH (shared_ptr<Asset> k, assets) {
+ if (k->id() == id) {
+ already_got = true;
+ }
+ }
+
+ if (!already_got) {
+ shared_ptr<Asset> o = j->asset_ref().asset();
+ assets.push_back (o);
+ /* More Interop special-casing */
+ shared_ptr<InteropSubtitleAsset> sub = dynamic_pointer_cast<InteropSubtitleAsset> (o);
+ if (sub) {
+ sub->add_font_assets (assets);
+ }
}
}
}