From 4d795ebc688f711e8ff3e475537a85e941326cca Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 24 Aug 2023 23:50:18 +0200 Subject: Handle fonts/subdirs correctly for CCAPs with _map (#2584). --- src/lib/map_cli.cc | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'src/lib/map_cli.cc') diff --git a/src/lib/map_cli.cc b/src/lib/map_cli.cc index c7f21be4a..31adf3a51 100644 --- a/src/lib/map_cli.cc +++ b/src/lib/map_cli.cc @@ -267,25 +267,31 @@ map_cli(int argc, char* argv[], std::function out) } }; + auto maybe_copy_font = [&maybe_copy](shared_ptr asset, bool rename, bool hard_link, bool soft_link) { + auto interop = dynamic_pointer_cast(asset); + boost::optional extra; + if (interop) { + extra = interop->id(); + for (auto font_asset: interop->font_assets()) { + maybe_copy(font_asset->id(), rename, hard_link, soft_link, extra); + } + } + return extra; + }; + /* Copy assets that the CPLs need */ try { for (auto cpl: cpls) { for (auto reel: cpl->reels()) { maybe_copy_from_reel(reel->main_picture(), rename, hard_link, soft_link); maybe_copy_from_reel(reel->main_sound(), rename, hard_link, soft_link); - boost::optional extra; if (reel->main_subtitle()) { - auto interop = dynamic_pointer_cast(reel->main_subtitle()->asset()); - if (interop) { - extra = interop->id(); - for (auto font_asset: interop->font_assets()) { - maybe_copy(font_asset->id(), rename, hard_link, soft_link, extra); - } - } + auto extra = maybe_copy_font(reel->main_subtitle()->asset(), rename, hard_link, soft_link); + maybe_copy_from_reel(reel->main_subtitle(), rename, hard_link, soft_link, extra); } - maybe_copy_from_reel(reel->main_subtitle(), rename, hard_link, soft_link, extra); for (auto ccap: reel->closed_captions()) { - maybe_copy_from_reel(ccap, rename, hard_link, soft_link); + auto extra = maybe_copy_font(ccap->asset(), rename, hard_link, soft_link); + maybe_copy_from_reel(ccap, rename, hard_link, soft_link, extra); } maybe_copy_from_reel(reel->atmos(), rename, hard_link, soft_link); } -- cgit v1.2.3