/*
- Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
using std::set_terminate;
using std::make_pair;
using std::shared_ptr;
+using std::make_shared;
using boost::thread;
using boost::optional;
using boost::lexical_cast;
LONG WINAPI
exception_handler(struct _EXCEPTION_POINTERS * info)
{
- FILE* f = fopen_boost (backtrace_file, "w");
+ auto f = fopen_boost (backtrace_file, "w");
fprintf (f, "C-style exception %d\n", info->ExceptionRecord->ExceptionCode);
fclose(f);
/* Add our library directory to the libltdl search path so that
xmlsec can find xmlsec1-openssl.
*/
- boost::filesystem::path lib = directory_containing_executable().parent_path();
+ auto lib = directory_containing_executable().parent_path();
lib /= "Frameworks";
setenv ("LTDL_LIBRARY_PATH", lib.c_str (), 1);
#endif
/* Render something to fontconfig to create its cache */
list<StringText> subs;
dcp::SubtitleString ss(
- optional<string>(), false, false, false, dcp::Colour(), 42, 1, dcp::Time(), dcp::Time(), 0, dcp::HALIGN_CENTER, 0, dcp::VALIGN_CENTER, dcp::DIRECTION_LTR,
- "Hello dolly", dcp::NONE, dcp::Colour(), dcp::Time(), dcp::Time()
+ optional<string>(), false, false, false, dcp::Colour(), 42, 1, dcp::Time(), dcp::Time(), 0, dcp::HAlign::CENTER, 0, dcp::VAlign::CENTER, dcp::Direction::LTR,
+ "Hello dolly", dcp::Effect::NONE, dcp::Colour(), dcp::Time(), dcp::Time()
);
subs.push_back (StringText(ss, 0));
- render_text (subs, list<shared_ptr<Font> >(), dcp::Size(640, 480), DCPTime(), 24);
+ render_text (subs, list<shared_ptr<Font>>(), dcp::Size(640, 480), DCPTime(), 24);
#endif
Ratio::setup_ratios ();
char* p = buffer.get ();
int i = 0;
while (i < int64_t (files.size()) && to_do > 0) {
- FILE* f = fopen_boost (files[i], "rb");
+ auto f = fopen_boost (files[i], "rb");
if (!f) {
throw OpenFileError (files[i].string(), errno, OpenFileError::READ);
}
p = buffer.get ();
i = files.size() - 1;
while (i >= 0 && to_do > 0) {
- FILE* f = fopen_boost (files[i], "rb");
+ auto f = fopen_boost (files[i], "rb");
if (!f) {
throw OpenFileError (files[i].string(), errno, OpenFileError::READ);
}
return false;
}
- string ext = f.extension().string();
+ auto ext = f.extension().string();
transform (ext.begin(), ext.end(), ext.begin(), ::tolower);
return (
ext == ".tif" || ext == ".tiff" || ext == ".jpg" || ext == ".jpeg" ||
return false;
}
- string ext = f.extension().string();
+ auto ext = f.extension().string();
transform (ext.begin(), ext.end(), ext.begin(), ::tolower);
return (ext == ".wav" || ext == ".mp3" || ext == ".aif" || ext == ".aiff");
}
bool
valid_j2k_file (boost::filesystem::path f)
{
- string ext = f.extension().string();
+ auto ext = f.extension().string();
transform (ext.begin(), ext.end(), ext.begin(), ::tolower);
return (ext == ".j2k" || ext == ".j2c" || ext == ".jp2");
}
void *
wrapped_av_malloc (size_t s)
{
- void* p = av_malloc (s);
+ auto p = av_malloc (s);
if (!p) {
throw bad_alloc ();
}
}
switch (static_cast<dcp::Channel>(i)) {
- case dcp::LFE:
+ case dcp::Channel::LFE:
++lfe;
break;
- case dcp::LEFT:
- case dcp::RIGHT:
- case dcp::CENTRE:
- case dcp::LS:
- case dcp::RS:
- case dcp::BSL:
- case dcp::BSR:
+ case dcp::Channel::LEFT:
+ case dcp::Channel::RIGHT:
+ case dcp::Channel::CENTRE:
+ case dcp::Channel::LS:
+ case dcp::Channel::RS:
+ case dcp::Channel::BSL:
+ case dcp::Channel::BSR:
++non_lfe;
break;
- case dcp::HI:
- case dcp::VI:
- case dcp::MOTION_DATA:
- case dcp::SYNC_SIGNAL:
- case dcp::SIGN_LANGUAGE:
- case dcp::CHANNEL_COUNT:
+ case dcp::Channel::HI:
+ case dcp::Channel::VI:
+ case dcp::Channel::MOTION_DATA:
+ case dcp::Channel::SYNC_SIGNAL:
+ case dcp::Channel::SIGN_LANGUAGE:
+ case dcp::Channel::CHANNEL_COUNT:
break;
}
}
shared_ptr<AudioBuffers>
remap (shared_ptr<const AudioBuffers> input, int output_channels, AudioMapping map)
{
- shared_ptr<AudioBuffers> mapped (new AudioBuffers (output_channels, input->frames()));
+ auto mapped = make_shared<AudioBuffers>(output_channels, input->frames());
mapped->make_silent ();
int to_do = min (map.input_channels(), input->channels());
for (int i = 0; i < to_do; ++i) {
for (int j = 0; j < mapped->channels(); ++j) {
- if (map.get (i, static_cast<dcp::Channel> (j)) > 0) {
- mapped->accumulate_channel (
+ if (map.get(i, j) > 0) {
+ mapped->accumulate_channel(
input.get(),
i,
- static_cast<dcp::Channel> (j),
- map.get (i, static_cast<dcp::Channel> (j))
+ j,
+ map.get(i, j)
);
}
}
emit_subtitle_image (ContentTimePeriod period, dcp::SubtitleImage sub, dcp::Size size, shared_ptr<TextDecoder> decoder)
{
/* XXX: this is rather inefficient; decoding the image just to get its size */
- FFmpegImageProxy proxy (sub.png_image(), VIDEO_RANGE_FULL);
- shared_ptr<Image> image = proxy.image().image;
+ FFmpegImageProxy proxy (sub.png_image(), VideoRange::FULL);
+ auto image = proxy.image().image;
/* set up rect with height and width */
dcpomatic::Rect<double> rect(0, 0, image->size().width / double(size.width), image->size().height / double(size.height));
/* add in position */
switch (sub.h_align()) {
- case dcp::HALIGN_LEFT:
+ case dcp::HAlign::LEFT:
rect.x += sub.h_position();
break;
- case dcp::HALIGN_CENTER:
+ case dcp::HAlign::CENTER:
rect.x += 0.5 + sub.h_position() - rect.width / 2;
break;
- case dcp::HALIGN_RIGHT:
+ case dcp::HAlign::RIGHT:
rect.x += 1 - sub.h_position() - rect.width;
break;
}
switch (sub.v_align()) {
- case dcp::VALIGN_TOP:
+ case dcp::VAlign::TOP:
rect.y += sub.v_position();
break;
- case dcp::VALIGN_CENTER:
+ case dcp::VAlign::CENTER:
rect.y += 0.5 + sub.v_position() - rect.height / 2;
break;
- case dcp::VALIGN_BOTTOM:
+ case dcp::VAlign::BOTTOM:
rect.y += 1 - sub.v_position() - rect.height;
break;
}
dcpomatic_sleep_seconds (5);
- list<shared_ptr<Job> > jobs = JobManager::instance()->get();
+ auto jobs = JobManager::instance()->get();
if (!first && progress) {
for (size_t i = 0; i < jobs.size(); ++i) {
void
copy_in_bits (boost::filesystem::path from, boost::filesystem::path to, boost::function<void (float)> progress)
{
- FILE* f = fopen_boost (from, "rb");
+ auto f = fopen_boost (from, "rb");
if (!f) {
throw OpenFileError (from, errno, OpenFileError::READ);
}
- FILE* t = fopen_boost (to, "wb");
+ auto t = fopen_boost (to, "wb");
if (!t) {
fclose (f);
throw OpenFileError (to, errno, OpenFileError::WRITE);
/* on the order of a second's worth of copying */
boost::uintmax_t const chunk = 20 * 1024 * 1024;
- uint8_t* buffer = static_cast<uint8_t*> (malloc(chunk));
+ auto buffer = static_cast<uint8_t*> (malloc(chunk));
if (!buffer) {
throw std::bad_alloc ();
}
return dcp::DecryptedKDM (kdm, Config::instance()->decryption_chain()->key().get());
} catch (dcp::KDMDecryptionError& e) {
/* Try to flesh out the error a bit */
- string const kdm_subject_name = kdm.recipient_x509_subject_name();
+ auto const kdm_subject_name = kdm.recipient_x509_subject_name();
bool on_chain = false;
- shared_ptr<const dcp::CertificateChain> dc = Config::instance()->decryption_chain();
+ auto dc = Config::instance()->decryption_chain();
for (auto i: dc->root_to_leaf()) {
if (i.subject() == kdm_subject_name) {
on_chain = true;