+ notes.push_back (VerificationNote (VerificationNote::VERIFY_ERROR, e.what ()));
+ }
+
+ BOOST_FOREACH (shared_ptr<CPL> cpl, dcp->cpls()) {
+ stage ("Checking CPL", cpl->file());
+ BOOST_FOREACH (shared_ptr<Reel> reel, cpl->reels()) {
+ stage ("Checking reel", optional<boost::filesystem::path>());
+ if (reel->main_picture()) {
+ stage ("Checking picture asset hash", reel->main_picture()->asset()->file());
+ Result const r = verify_asset (dcp, reel->main_picture(), progress);
+ switch (r) {
+ case RESULT_BAD:
+ notes.push_back (VerificationNote (VerificationNote::VERIFY_ERROR, "Picture asset hash is incorrect."));
+ break;
+ case RESULT_CPL_PKL_DIFFER:
+ notes.push_back (VerificationNote (VerificationNote::VERIFY_ERROR, "PKL and CPL hashes differ for picture asset."));
+ break;
+ default:
+ break;
+ }
+ }
+ if (reel->main_sound()) {
+ stage ("Checking sound asset hash", reel->main_sound()->asset()->file());
+ Result const r = verify_asset (dcp, reel->main_sound(), progress);
+ switch (r) {
+ case RESULT_BAD:
+ notes.push_back (VerificationNote (VerificationNote::VERIFY_ERROR, "Sound asset hash is incorrect."));
+ break;
+ case RESULT_CPL_PKL_DIFFER:
+ notes.push_back (VerificationNote (VerificationNote::VERIFY_ERROR, "PKL and CPL hashes differ for sound asset."));
+ break;
+ default:
+ break;
+ }
+ }
+ }