X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fverify_dcp_dialog.cc;h=07e3589e52bc4f0dfa2577b502ea3f8e831a0009;hb=db491c0c497be98c0d5c73822b22f0c65ba9590e;hp=44b2ed134735821b8ab89af7088aa6471f4ad70d;hpb=436a02462f5aa2a5b8fdcaa1c5da79f48d167244;p=dcpomatic.git diff --git a/src/wx/verify_dcp_dialog.cc b/src/wx/verify_dcp_dialog.cc index 44b2ed134..07e3589e5 100644 --- a/src/wx/verify_dcp_dialog.cc +++ b/src/wx/verify_dcp_dialog.cc @@ -18,21 +18,26 @@ */ + #include "verify_dcp_dialog.h" #include "wx_util.h" #include "lib/verify_dcp_job.h" -#include "lib/warnings.h" -#include #include -DCPOMATIC_DISABLE_WARNINGS +#include +#include +LIBDCP_DISABLE_WARNINGS #include #include -DCPOMATIC_ENABLE_WARNINGS +LIBDCP_ENABLE_WARNINGS +#include + using std::list; using std::map; using std::shared_ptr; using std::string; +using std::vector; + VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job) : wxDialog (parent, wxID_ANY, _("DCP verification"), wxDefaultPosition, {600, 400}) @@ -92,6 +97,15 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job if (note.line()) { message.Replace("%l", std_to_wx(dcp::raw_convert(note.line().get()))); } + if (note.frame()) { + message.Replace("%frame", std_to_wx(dcp::raw_convert(note.frame().get()))); + } + if (note.component()) { + message.Replace("%component", std_to_wx(dcp::raw_convert(note.component().get()))); + } + if (note.size()) { + message.Replace("%size", std_to_wx(dcp::raw_convert(note.size().get()))); + } add_bullet (note.type(), message); counts[note.type()]++; }; @@ -144,7 +158,7 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job add(i, _("No ASSETMAP or ASSETMAP.xml file was found.")); break; case dcp::VerificationNote::Code::INVALID_INTRINSIC_DURATION: - add(i, _("The asset %n has an instrinsic duration of less than 1 second, which is invalid.")); + add(i, _("The asset %n has an intrinsic duration of less than 1 second, which is invalid.")); break; case dcp::VerificationNote::Code::INVALID_DURATION: add(i, _("The asset %n has a duration of less than 1 second, which is invalid.")); @@ -158,6 +172,9 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job case dcp::VerificationNote::Code::EXTERNAL_ASSET: add(i, _("This DCP refers to at the asset %n in another DCP (and perhaps others), so it is a \"version file\" (VF)")); break; + case dcp::VerificationNote::Code::THREED_ASSET_MARKED_AS_TWOD: + add(i, _("The asset %f is 3D but its MXF is marked as 2D.")); + break; case dcp::VerificationNote::Code::INVALID_STANDARD: add(i, _("This DCP uses the Interop standard, but it should be made with SMPTE.")); break; @@ -330,11 +347,78 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job add(i, _("A 2K JPEG2000 frame contains %n tile parts instead of 3.")); break; case dcp::VerificationNote::Code::INVALID_JPEG2000_TILE_PARTS_FOR_4K: - add(i, _("A 2K JPEG2000 frame contains %n tile parts instead of 6.")); + add(i, _("A 4K JPEG2000 frame contains %n tile parts instead of 6.")); break; case dcp::VerificationNote::Code::MISSING_JPEG200_TLM_MARKER: add(i, _("A JPEG2000 frame has no TLM marker.")); break; + case dcp::VerificationNote::Code::SUBTITLE_OVERLAPS_REEL_BOUNDARY: + add(i, _("A subtitle lasts longer than the reel it is in.")); + break; + case dcp::VerificationNote::Code::MISMATCHED_TIMED_TEXT_RESOURCE_ID: + add(i, _("The Resource ID in a timed text MXF did not match the ID of the contained XML.")); + break; + case dcp::VerificationNote::Code::INCORRECT_TIMED_TEXT_ASSET_ID: + add(i, _("The Asset ID in a timed text MXF is the same as the Resource ID or that of the contained XML.")); + break; + case dcp::VerificationNote::Code::MISMATCHED_TIMED_TEXT_DURATION: + { + vector parts; + boost::split (parts, i.note().get(), boost::is_any_of(" ")); + add(i, wxString::Format(_("The reel duration (%s) of some timed text is not the same as the ContainerDuration (%s) of its MXF."), std_to_wx(parts[0]), std_to_wx(parts[1]))); + break; + } + case dcp::VerificationNote::Code::MISSED_CHECK_OF_ENCRYPTED: + add(i, _("Part of the DCP could not be checked because no KDM was available.")); + break; + case dcp::VerificationNote::Code::EMPTY_TEXT: + add(i, _("At least one node in a subtitle or closed caption is empty.")); + break; + case dcp::VerificationNote::Code::MISMATCHED_CLOSED_CAPTION_VALIGN: + add(i, _("Some closed or nodes have different vertical alignments within a .")); + break; + case dcp::VerificationNote::Code::INCORRECT_CLOSED_CAPTION_ORDERING: + add(i, _("Some closed captions are not listed in the order of their vertical position.")); + break; + case dcp::VerificationNote::Code::UNEXPECTED_ENTRY_POINT: + add(i, _("There is a tag inside a .")); + break; + case dcp::VerificationNote::Code::UNEXPECTED_DURATION: + add(i, _("There is a tag inside a .")); + break; + case dcp::VerificationNote::Code::INVALID_CONTENT_KIND: + add(i, _("An invalid %n has been used.")); + break; + case dcp::VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA: + add(i, _("The is either not a multiple of 2, or is bigger than an asset.")); + break; + case dcp::VerificationNote::Code::DUPLICATE_ASSET_ID_IN_PKL: + add(i, _("The PKL %n has more than one asset with the same ID.")); + break; + case dcp::VerificationNote::Code::DUPLICATE_ASSET_ID_IN_ASSETMAP: + add(i, _("The ASSETMAP %n has more than one asset with the same ID.")); + break; + case dcp::VerificationNote::Code::MISSING_SUBTITLE: + add(i, _("The subtitle asset %n contains no subtitles.")); + break; + case dcp::VerificationNote::Code::INVALID_SUBTITLE_ISSUE_DATE: + add(i, _(" has an invalid value %n")); + break; + case dcp::VerificationNote::Code::MISMATCHED_SOUND_CHANNEL_COUNTS: + add(i, _("Sound assets do not all have the same channel count.")); + break; + case dcp::VerificationNote::Code::INVALID_MAIN_SOUND_CONFIGURATION: + add(i, _(" describes incorrect number of channels (%n)")); + break; + case dcp::VerificationNote::Code::MISSING_FONT: + add(i, _("The font file for font ID \"%n\" was not found, or was not referred to in the ASSETMAP.")); + break; + case dcp::VerificationNote::Code::INVALID_JPEG2000_TILE_PART_SIZE: + add(i, _("Frame %frame has an image component that is too large (component %component is %size bytes in size).")); + break; + case dcp::VerificationNote::Code::INCORRECT_SUBTITLE_NAMESPACE_COUNT: + add(i, _("The XML in the subtitle asset %n has more than one namespace declaration.")); + break; } }