summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-08-17 12:56:20 +0200
committerCarl Hetherington <cth@carlh.net>2024-08-17 12:56:20 +0200
commite65d17fa04c411295496968f6ecee9b3a6c21fae (patch)
treec763a48ebd57268a1b83f9767fada295a30a219d
parent0b4bffff846efe967110477797218c170ffb3166 (diff)
parente96f917d51f9606a550902dbc16e0971a8967039 (diff)
Merge remote-tracking branch 'origin/main' into v2.17.x
-rw-r--r--cscript4
-rwxr-xr-xrun/dcpomatic2
-rw-r--r--src/lib/analyse_subtitles_job.cc6
-rw-r--r--src/lib/analyse_subtitles_job.h1
-rw-r--r--src/lib/guess_crop.cc3
-rw-r--r--src/lib/image.cc6
-rw-r--r--src/lib/image.h2
-rw-r--r--src/wx/supporters.cc5
-rw-r--r--wscript2
9 files changed, 25 insertions, 6 deletions
diff --git a/cscript b/cscript
index da7e44078..b674752a5 100644
--- a/cscript
+++ b/cscript
@@ -534,7 +534,7 @@ def make_spec(filename, version, target, options, requires=None):
print('/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :', file=f)
def dependencies(target, options):
- deps = [('libdcp', 'v1.9.13', {'c++17': target.platform == 'osx'})]
+ deps = [('libdcp', 'v1.9.14', {'c++17': target.platform == 'osx'})]
deps.append(('libsub', 'v1.6.49'))
deps.append(('leqm-nrt', '30dcaea1373ac62fba050e02ce5b0c1085797a23'))
deps.append(('rtaudio', 'f619b76'))
@@ -573,6 +573,8 @@ def configure_options(target, options, for_package=False):
opt += ' --static-boost --static-xmlpp'
elif target.version == '7':
opt += ' --workaround-gssapi'
+ elif target.version == 'stream9':
+ opt += ' --static-xmlsec'
if not options['gui']:
opt += ' --disable-gui'
diff --git a/run/dcpomatic b/run/dcpomatic
index 45f857ae2..abc0cf11b 100755
--- a/run/dcpomatic
+++ b/run/dcpomatic
@@ -10,6 +10,8 @@ else
env=x86_64/10.10
fi
+# Allow running from a tree built using cdist
+export LD_LIBRARY_PATH=$DIR/../../../lib:$DIR/../../../lib64:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=/Users/cah/osx-environment/$env/lib:/usr/local/lib
# export ASAN_OPTIONS=verbosity=1:malloc_context_size=20:detect_leaks=1
diff --git a/src/lib/analyse_subtitles_job.cc b/src/lib/analyse_subtitles_job.cc
index b41990db5..b2346d4d9 100644
--- a/src/lib/analyse_subtitles_job.cc
+++ b/src/lib/analyse_subtitles_job.cc
@@ -50,6 +50,12 @@ AnalyseSubtitlesJob::AnalyseSubtitlesJob (shared_ptr<const Film> film, shared_pt
}
+AnalyseSubtitlesJob::~AnalyseSubtitlesJob()
+{
+ stop_thread();
+}
+
+
string
AnalyseSubtitlesJob::name () const
{
diff --git a/src/lib/analyse_subtitles_job.h b/src/lib/analyse_subtitles_job.h
index c47117c57..ea425763f 100644
--- a/src/lib/analyse_subtitles_job.h
+++ b/src/lib/analyse_subtitles_job.h
@@ -32,6 +32,7 @@ class AnalyseSubtitlesJob : public Job
{
public:
AnalyseSubtitlesJob (std::shared_ptr<const Film> film, std::shared_ptr<Content> content);
+ ~AnalyseSubtitlesJob();
std::string name () const override;
std::string json_name () const override;
diff --git a/src/lib/guess_crop.cc b/src/lib/guess_crop.cc
index 3538f14de..5eb7e66e8 100644
--- a/src/lib/guess_crop.cc
+++ b/src/lib/guess_crop.cc
@@ -42,8 +42,9 @@ guess_crop (shared_ptr<const Image> image, double threshold)
switch (image->pixel_format()) {
case AV_PIX_FMT_RGB24:
+ case AV_PIX_FMT_RGBA:
{
- uint8_t const* data = image->data()[0] + start_x * 3 + start_y * image->stride()[0];
+ uint8_t const* data = image->data()[0] + start_x * std::lround(image->bytes_per_pixel(0)) + start_y * image->stride()[0];
for (int p = 0; p < pixels; ++p) {
/* Averaging R, G and B */
brightest = std::max(brightest, static_cast<double>(data[0] + data[1] + data[2]) / (3 * 256));
diff --git a/src/lib/image.cc b/src/lib/image.cc
index 2167918f8..7181c4546 100644
--- a/src/lib/image.cc
+++ b/src/lib/image.cc
@@ -1171,14 +1171,14 @@ Image::write_to_socket (shared_ptr<Socket> socket) const
float
-Image::bytes_per_pixel (int c) const
+Image::bytes_per_pixel(int component) const
{
auto d = av_pix_fmt_desc_get(_pixel_format);
if (!d) {
throw PixelFormatError ("bytes_per_pixel()", _pixel_format);
}
- if (c >= planes()) {
+ if (component >= planes()) {
return 0;
}
@@ -1213,7 +1213,7 @@ Image::bytes_per_pixel (int c) const
return bpp[0] + bpp[1] + bpp[2] + bpp[3];
}
- return bpp[c];
+ return bpp[component];
}
diff --git a/src/lib/image.h b/src/lib/image.h
index 0237b3d1b..dd9f8b840 100644
--- a/src/lib/image.h
+++ b/src/lib/image.h
@@ -68,7 +68,7 @@ public:
int vertical_factor (int) const;
int horizontal_factor (int) const;
dcp::Size sample_size (int) const;
- float bytes_per_pixel (int) const;
+ float bytes_per_pixel(int component) const;
std::shared_ptr<Image> convert_pixel_format (dcp::YUVToRGB yuv_to_rgb, AVPixelFormat out_format, Alignment alignment, bool fast) const;
std::shared_ptr<Image> scale (dcp::Size out_size, dcp::YUVToRGB yuv_to_rgb, AVPixelFormat out_format, Alignment alignment, bool fast) const;
diff --git a/src/wx/supporters.cc b/src/wx/supporters.cc
index 8a00b302d..36cffa34d 100644
--- a/src/wx/supporters.cc
+++ b/src/wx/supporters.cc
@@ -221,6 +221,7 @@ supported_by.Add (wxT ("Gary Coates"));
supported_by.Add (wxT ("Alex Cockburn"));
supported_by.Add (wxT ("Dan Cohen"));
supported_by.Add (wxT ("Jonathan Cole"));
+supported_by.Add (wxT ("Shane Colella"));
supported_by.Add (wxT ("Blair Collie"));
supported_by.Add (wxT ("Devon Collins"));
supported_by.Add (wxT ("Sodalite Color"));
@@ -562,6 +563,7 @@ supported_by.Add (wxT ("Markus Hüsgen"));
supported_by.Add (wxT ("Maurice Huvelin"));
supported_by.Add (wxT ("Robin Hyden"));
supported_by.Add (wxT ("IAFilm"));
+supported_by.Add (wxT ("Big Island Drive In"));
supported_by.Add (wxT ("Dayton Movies Inc"));
supported_by.Add (wxT ("Buttons Sound Inc"));
supported_by.Add (wxT ("Paramount Twin Inc"));
@@ -600,6 +602,7 @@ supported_by.Add (wxT ("Mart Jansink"));
supported_by.Add (wxT ("Scott Jennings"));
supported_by.Add (wxT ("Jonathan Jensen"));
supported_by.Add (wxT ("Frank Jerkic"));
+supported_by.Add (wxT ("Frank Jerkic"));
supported_by.Add (wxT ("Arturas Jevdokimovas"));
supported_by.Add (wxT ("Rainer Joerger"));
supported_by.Add (wxT ("Mathew Johns"));
@@ -679,6 +682,7 @@ supported_by.Add (wxT ("Jakub Królikowski"));
supported_by.Add (wxT ("Cihan Kulaber"));
supported_by.Add (wxT ("Patrick Kulemann"));
supported_by.Add (wxT ("kult.kino"));
+supported_by.Add (wxT ("Kino Kults"));
supported_by.Add (wxT ("kulturplatz-davos"));
supported_by.Add (wxT ("Steven Kurtz"));
supported_by.Add (wxT ("Carsten Kurz"));
@@ -1108,6 +1112,7 @@ supported_by.Add (wxT ("Nadia Santos"));
supported_by.Add (wxT ("Yvy Production Sarl"));
supported_by.Add (wxT ("Carlo Sassi"));
supported_by.Add (wxT ("Les Mures Sauvages"));
+supported_by.Add (wxT ("Becky Sayers"));
supported_by.Add (wxT ("Michael Schaffer"));
supported_by.Add (wxT ("Andreas Schafft"));
supported_by.Add (wxT ("Daniel Schär"));
diff --git a/wscript b/wscript
index 79c369a9c..1c5e60322 100644
--- a/wscript
+++ b/wscript
@@ -416,8 +416,10 @@ def configure(conf):
if conf.options.static_xmlsec:
if conf.check_cxx(lib='xmlsec1-openssl', mandatory=False):
conf.env.STLIB_XMLSEC = ['xmlsec1-openssl', 'xmlsec1']
+ conf.env.LIB_XMLSEC = ['ltdl']
else:
conf.env.STLIB_XMLSEC = ['xmlsec1']
+ conf.env.LIB_XMLSEC = ['ltdl']
else:
conf.env.LIB_XMLSEC = ['xmlsec1-openssl', 'xmlsec1']