From 647136fda2e33b5493b0d0b89a5ad4976623952e Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 3 Jan 2024 23:32:22 +0100 Subject: [PATCH] Bump libdcp for better diagnostics of bad/large J2K frames (#2680). --- cscript | 2 +- src/wx/verify_dcp_dialog.cc | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/cscript b/cscript index f87268b32..590b381fa 100644 --- a/cscript +++ b/cscript @@ -507,7 +507,7 @@ def dependencies(target, options): # Use distro-provided FFmpeg on Arch deps = [] - deps.append(('libdcp', 'v1.8.89')) + deps.append(('libdcp', 'v1.8.91')) deps.append(('libsub', 'v1.6.45')) deps.append(('leqm-nrt', '30dcaea1373ac62fba050e02ce5b0c1085797a23')) deps.append(('rtaudio', 'f619b76')) diff --git a/src/wx/verify_dcp_dialog.cc b/src/wx/verify_dcp_dialog.cc index 9b7afdd7b..fe177dd67 100644 --- a/src/wx/verify_dcp_dialog.cc +++ b/src/wx/verify_dcp_dialog.cc @@ -100,6 +100,9 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job if (note.note()) { message.Replace("%n", std_to_wx(note.note().get())); } + if (note.frame()) { + message.Replace("%frame", std_to_wx(dcp::raw_convert(note.frame().get()))); + } if (note.file()) { message.Replace("%f", std_to_wx(note.file()->filename().string())); } @@ -121,6 +124,10 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job if (note.other_id()) { message.Replace("%other_id", std_to_wx(note.other_id().get())); } + if (note.frame() && note.frame_rate()) { + auto frame_rate = note.frame_rate().get(); + message.Replace("%timecode", std_to_wx(dcp::Time(note.frame().get(), frame_rate, frame_rate).as_string(dcp::Standard::SMPTE))); + } add_bullet (note.type(), message); }; @@ -178,10 +185,10 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job add(i, _("The asset %n has a duration of less than 1 second, which is invalid.")); break; case dcp::VerificationNote::Code::INVALID_PICTURE_FRAME_SIZE_IN_BYTES: - add(i, _("At least one frame of the video asset %f is over the limit of 250Mbit/s.")); + add(i, _("Frame %timecode (timecode %timecode) in asset %f is over the limit of 250Mbit/s.")); break; case dcp::VerificationNote::Code::NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES: - add(i, _("At least one frame of the video asset %f is close to the limit of 250MBit/s.")); + add(i, _("Frame %frame (timecode %timecode) in asset %f is close to the limit of 250Mbit/s.")); break; 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)")); -- 2.30.2