summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-05-23 22:35:23 +0100
committerCarl Hetherington <cth@carlh.net>2016-05-23 22:35:23 +0100
commitf02b0b7dd767112f13a42dedf98a8e942fd27dc3 (patch)
treeb9179c4d29b78c722cb269a7fee8528ad7d7a2f6
parentcf391f688a73956a8ee4caa1f896cef39d4b2607 (diff)
parent4835e35b1d483922ff6c80e6ed3a4d7055233e1b (diff)
Merge branch 'master' of ssh://git.carlh.net/home/carl/git/dcpomatic
-rw-r--r--src/lib/render_subtitles.cc16
-rw-r--r--wscript26
2 files changed, 36 insertions, 6 deletions
diff --git a/src/lib/render_subtitles.cc b/src/lib/render_subtitles.cc
index ed7d131fd..16c6a3c4e 100644
--- a/src/lib/render_subtitles.cc
+++ b/src/lib/render_subtitles.cc
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2014-2015 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2014-2016 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,6 +23,7 @@
#include "cross.h"
#include "font.h"
#include "dcpomatic_assert.h"
+#include <fontconfig/fontconfig.h>
#include <cairomm/cairomm.h>
#include <pangomm.h>
#include <boost/foreach.hpp>
@@ -81,6 +82,7 @@ render_line (list<dcp::SubtitleString> subtitles, list<shared_ptr<Font> > fonts,
shared_ptr<Image> image (new Image (AV_PIX_FMT_RGBA, dcp::Size (target.width, height), false));
image->make_black ();
+#ifdef DCPOMATIC_HAVE_FORMAT_STRIDE_FOR_WIDTH
Cairo::RefPtr<Cairo::ImageSurface> surface = Cairo::ImageSurface::create (
image->data()[0],
Cairo::FORMAT_ARGB32,
@@ -88,6 +90,18 @@ render_line (list<dcp::SubtitleString> subtitles, list<shared_ptr<Font> > fonts,
image->size().height,
Cairo::ImageSurface::format_stride_for_width (Cairo::FORMAT_ARGB32, image->size().width)
);
+#else
+ /* Centos 5 does not have Cairo::ImageSurface::format_stride_for_width, so just use width * 4
+ which I hope is safe (if slow)
+ */
+ Cairo::RefPtr<Cairo::ImageSurface> surface = Cairo::ImageSurface::create (
+ image->data()[0],
+ Cairo::FORMAT_ARGB32,
+ image->size().width,
+ image->size().height,
+ image->size().width * 4
+ );
+#endif
Cairo::RefPtr<Cairo::Context> context = Cairo::Context::create (surface);
diff --git a/wscript b/wscript
index dd2e18e0e..df7fc3cd7 100644
--- a/wscript
+++ b/wscript
@@ -201,8 +201,9 @@ def configure(conf):
# See if we are using the MagickCore or MagickLib namespaces
conf.check_cxx(fragment="""
- #include <Magick++.h>
- using namespace MagickCore;
+ #include <Magick++/Include.h>\n
+ using namespace MagickCore;\n
+ int main () { return 0; }\n
""",
mandatory=False,
msg='Checking for MagickCore namespace',
@@ -210,8 +211,9 @@ def configure(conf):
define_name='DCPOMATIC_HAVE_MAGICKCORE_NAMESPACE')
conf.check_cxx(fragment="""
- #include <Magick++.h>
- using namespace MagickLib
+ #include <Magick++/Include.h>\n
+ using namespace MagickLib;\n
+ int main () { return 0; }\n
""",
mandatory=False,
msg='Checking for MagickLib namespace',
@@ -230,6 +232,18 @@ def configure(conf):
# cairomm
conf.check_cfg(package='cairomm-1.0', args='--cflags --libs', uselib_store='CAIROMM', mandatory=True)
+ # See if we have Cairo::ImageSurface::format_stride_for_width
+ conf.check_cxx(fragment="""
+ #include <cairomm/cairomm.h>
+ int main(void) {
+ Cairo::ImageSurface::format_stride_for_width (Cairo::FORMAT_ARGB, 1024);\n
+ return 0; }\n
+ """,
+ mandatory=False,
+ msg='Checking for format_stride_for_width',
+ okmsg='yes',
+ define_name='DCPOMATIC_HAVE_FORMAT_STRIDE_FOR_WIDTH')
+
# libcxml
if conf.options.static_cxml:
conf.check_cfg(package='libcxml', atleast_version='0.15.1', args='--cflags', uselib_store='CXML', mandatory=True)
@@ -283,7 +297,9 @@ def configure(conf):
# libxmlsec
if conf.options.static_xmlsec:
- conf.env.STLIB_XMLSEC = ['xmlsec1-openssl', 'xmlsec1']
+ conf.env.STLIB_XMLSEC = ['xmlsec1']
+ if conf.check_cxx(lib='xmlsec1-openssl', mandatory=False):
+ conf.env.STLIB_XMLSEC.append('xmlsec1-openssl')
else:
conf.env.LIB_XMLSEC = ['xmlsec1-openssl', 'xmlsec1']