diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-05-27 23:44:52 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-05-28 20:58:47 +0200 |
| commit | 5c318bb706e34333831a7c839e6fb1c3d042533f (patch) | |
| tree | a8aa8adc332044e32a9009956cd36a91f07f22d2 | |
| parent | 4ae33e85fd1ebf1b8255723b0cb98d205a068fca (diff) | |
Bump libdcp for fix to crash with interop subtitles (#2536).
| -rw-r--r-- | cscript | 2 | ||||
| -rw-r--r-- | test/2536_regression_test.cc | 75 | ||||
| -rw-r--r-- | test/wscript | 1 |
3 files changed, 77 insertions, 1 deletions
@@ -480,7 +480,7 @@ def dependencies(target, options): # Use distro-provided FFmpeg on Arch deps = [] - deps.append(('libdcp', 'v1.8.69')) + deps.append(('libdcp', 'v1.8.70')) deps.append(('libsub', 'v1.6.44')) deps.append(('leqm-nrt', '4560105773c66ac9216b62313a24093bb0a027ae')) deps.append(('rtaudio', 'f619b76')) diff --git a/test/2536_regression_test.cc b/test/2536_regression_test.cc new file mode 100644 index 000000000..5d2bc3bbb --- /dev/null +++ b/test/2536_regression_test.cc @@ -0,0 +1,75 @@ +/* + Copyright (C) 2023 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include "lib/content_factory.h" +#include "lib/dcp_content.h" +#include "lib/film.h" +#include "lib/image.h" +#include "lib/player.h" +#include "lib/text_content.h" +#include "test.h" +#include <boost/test/unit_test.hpp> + + +using std::make_shared; + + +BOOST_AUTO_TEST_CASE(crash_rendering_vf_interop_subs_test) +{ + auto prefix = std::string("crash_rendering_vf_interop_subs_test"); + + auto video = content_factory("test/data/flat_red.png"); + auto ov = new_test_film2(prefix + "_ov", video); + ov->set_interop(true); + + make_and_verify_dcp( + ov, + { + dcp::VerificationNote::Code::INVALID_STANDARD, + }); + + auto ov_dcp = make_shared<DCPContent>(ov->dir(ov->dcp_name())); + auto subtitles = content_factory("test/data/short.srt"); + auto vf = new_test_film2(prefix + "_vf", { ov_dcp, subtitles.front() }); + vf->set_interop(true); + vf->set_reel_type(ReelType::BY_VIDEO_CONTENT); + ov_dcp->set_reference_video(true); + ov_dcp->set_reference_audio(true); + + make_and_verify_dcp( + vf, + { + dcp::VerificationNote::Code::INVALID_STANDARD, + dcp::VerificationNote::Code::MISSING_SUBTITLE_LANGUAGE, + dcp::VerificationNote::Code::INVALID_SUBTITLE_FIRST_TEXT_TIME, + dcp::VerificationNote::Code::EXTERNAL_ASSET, + }); + + auto vf_dcp = make_shared<DCPContent>(vf->dir(vf->dcp_name())); + vf_dcp->add_ov(ov->dir(ov->dcp_name())); + auto test = new_test_film2(prefix + "_test", { vf_dcp }); + vf_dcp->text[0]->set_use(true); + + auto player = make_shared<Player>(test, Image::Alignment::COMPACT); + player->set_always_burn_open_subtitles(); + while (!player->pass()) {} +} + diff --git a/test/wscript b/test/wscript index 88cee9b07..3cfe22799 100644 --- a/test/wscript +++ b/test/wscript @@ -44,6 +44,7 @@ def build(bld): obj.uselib += 'DL ' obj.use = 'libdcpomatic2' obj.source = """ + 2536_regression_test.cc 4k_test.cc atmos_test.cc audio_analysis_test.cc |
