diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-09-17 22:31:09 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-09-17 22:31:09 +0200 |
| commit | 0f9f004c50a8bea6b87d5a1636f95f67066e5187 (patch) | |
| tree | 3c6c0f851b492704a580c2a87b8f3738bdd724cc /src/lib/dcp_examiner.cc | |
| parent | dba3b79e848c70e405e41744c40b416014e86eb8 (diff) | |
Give a better error if a specified CPL does not exist.
Diffstat (limited to 'src/lib/dcp_examiner.cc')
| -rw-r--r-- | src/lib/dcp_examiner.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/dcp_examiner.cc b/src/lib/dcp_examiner.cc index 8fa41a8a5..5de8c8905 100644 --- a/src/lib/dcp_examiner.cc +++ b/src/lib/dcp_examiner.cc @@ -72,12 +72,12 @@ DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content, bool tolerant) auto cpls = dcp::find_and_resolve_cpls (content->directories(), tolerant); if (content->cpl ()) { - /* Use the CPL that the content was using before */ - for (auto i: cpls) { - if (i->id() == content->cpl().get()) { - cpl = i; - } + /* Use the CPL that was specified, or that the content was using before */ + auto iter = std::find_if(cpls.begin(), cpls.end(), [content](shared_ptr<dcp::CPL> cpl) { return cpl->id() == content->cpl().get(); }); + if (iter == cpls.end()) { + throw CPLNotFoundError(content->cpl().get()); } + cpl = *iter; } else { /* Choose the CPL with the fewest unsatisfied references */ |
