projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve rejection of "crazy" frame rates (#2238).
[dcpomatic.git]
/
test
/
j2k_bandwidth_test.cc
diff --git
a/test/j2k_bandwidth_test.cc
b/test/j2k_bandwidth_test.cc
index 92f6f90d821e1413256f68f50a457f61fb47a37e..1825051070dfca0ec933a3b64fb02bc209b90253 100644
(file)
--- a/
test/j2k_bandwidth_test.cc
+++ b/
test/j2k_bandwidth_test.cc
@@
-1,5
+1,5
@@
/*
/*
- Copyright (C) 2016 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2016
-2021
Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
This file is part of DCP-o-matic.
@@
-18,11
+18,13
@@
*/
*/
-/** @file test/j2k_bandwidth_test.cc
+
+/** @file test/bandwidth_test.cc
* @brief Test whether we output whatever J2K bandwidth is requested.
* @brief Test whether we output whatever J2K bandwidth is requested.
- * @ingroup
specific
+ * @ingroup
feature
*/
*/
+
#include "test.h"
#include "lib/dcp_content_type.h"
#include "lib/film.h"
#include "test.h"
#include "lib/dcp_content_type.h"
#include "lib/film.h"
@@
-30,31
+32,38
@@
#include "lib/video_content.h"
#include <dcp/raw_convert.h>
#include <boost/test/unit_test.hpp>
#include "lib/video_content.h"
#include <dcp/raw_convert.h>
#include <boost/test/unit_test.hpp>
-#include <boost/shared_ptr.hpp>
+
+using std::make_shared;
using std::string;
using std::string;
-using boost::shared_ptr;
+using std::shared_ptr;
+
static void
check (int target_bits_per_second)
{
int const duration = 10;
static void
check (int target_bits_per_second)
{
int const duration = 10;
- string const name = "
j2k_
bandwidth_test_" + dcp::raw_convert<string> (target_bits_per_second);
-
shared_ptr<Film>
film = new_test_film (name);
+ string const name = "bandwidth_test_" + dcp::raw_convert<string> (target_bits_per_second);
+
auto
film = new_test_film (name);
film->set_name (name);
film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR"));
film->set_j2k_bandwidth (target_bits_per_second);
film->set_name (name);
film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR"));
film->set_j2k_bandwidth (target_bits_per_second);
-
shared_ptr<ImageContent> content (new ImageContent(private_data / "prophet_frame.tiff")
);
+
auto content = make_shared<ImageContent>(TestPaths::private_data() / "prophet_frame.tiff"
);
film->examine_and_add_content (content);
film->examine_and_add_content (content);
-
wait_for_jobs (
);
+
BOOST_REQUIRE (!wait_for_jobs()
);
content->video->set_length (24 * duration);
content->video->set_length (24 * duration);
- film->make_dcp ();
- wait_for_jobs ();
+ make_and_verify_dcp (
+ film,
+ {
+ dcp::VerificationNote::Code::MISSING_FFMC_IN_FEATURE,
+ dcp::VerificationNote::Code::MISSING_FFEC_IN_FEATURE,
+ dcp::VerificationNote::Code::NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES
+ });
- boost::filesystem::directory_iterator i (boost::filesystem::path
("build") / "test" / name / "video");
+ boost::filesystem::directory_iterator i (boost::filesystem::path("build") / "test" / name / "video");
boost::filesystem::path test = *i++;
boost::filesystem::path test = *i++;
- BOOST_REQUIRE (i == boost::filesystem::directory_iterator
());
+ BOOST_REQUIRE (i == boost::filesystem::directory_iterator());
double actual_bits_per_second = boost::filesystem::file_size(test) * 8.0 / duration;
double actual_bits_per_second = boost::filesystem::file_size(test) * 8.0 / duration;
@@
-63,7
+72,8
@@
check (int target_bits_per_second)
BOOST_CHECK ((actual_bits_per_second / target_bits_per_second) < 1.15);
}
BOOST_CHECK ((actual_bits_per_second / target_bits_per_second) < 1.15);
}
-BOOST_AUTO_TEST_CASE (j2k_bandwidth_test)
+
+BOOST_AUTO_TEST_CASE (bandwidth_test)
{
check (50000000);
check (100000000);
{
check (50000000);
check (100000000);