+ 2014-10-20 Carl Hetherington <cth@carlh.net>
+
+ * Version 1.76.2 released.
+
+ 2014-10-19 Carl Hetherington <cth@carlh.net>
+
+ * Add simple note of what audio resampling
+ will be done to the audio panel.
+
+ 2014-10-16 Carl Hetherington <cth@carlh.net>
+
+ * Version 1.75.2 released.
+
+ 2014-10-16 Carl Hetherington <cth@carlh.net>
+
+ * Version 1.75.1 released.
+
+ 2014-10-16 Carl Hetherington <cth@carlh.net>
+
+ * Version 1.75.0 released.
+
2014-10-14 Carl Hetherington <cth@carlh.net>
* Version 1.74.3 released.
* Make server finding more reliable when
there are more than a few servers.
+2014-10-05 Carl Hetherington <cth@carlh.net>
+
+ * Use a more sensible default position and size for
+ .srt subs.
+
+2014-10-03 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.14 released.
+
+2014-10-01 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.13 released.
+
+2014-09-30 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.12 released.
+
+2014-09-30 Carl Hetherington <cth@carlh.net>
+
+ * Add basic video fade in/out.
+
+2014-09-22 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.11 released.
+
+2014-09-18 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.10 released.
+
2014-10-08 Carl Hetherington <cth@carlh.net>
* Version 1.74.2 released.
2014-09-12 Carl Hetherington <cth@carlh.net>
+ * Version 2.0.9 released.
+
+2014-09-12 Carl Hetherington <cth@carlh.net>
+
+ * Add "re-examine" option to content context menu (#339).
+
+2014-09-11 Carl Hetherington <cth@carlh.net>
+
+ * Restore encoding optimisations for still-image sources.
+
+ * Add option to re-make signing chain with specified organisation,
+ common names etc. (#354)
+
* Allow separate X and Y scale for subtitles (#337).
2014-09-10 Carl Hetherington <cth@carlh.net>
* Fix hidden advanced preferences button in some locales.
-2014-09-08 Carl Hetherington <cth@carlh.net>
+ * Version 2.0.8 released.
+
+2014-09-10 Carl Hetherington <cth@carlh.net>
+
+ * Fix loading of 1.x films.
+
+ * Fix crash on audio analysis in some cases.
- * Version 1.73.4 released.
+2014-09-09 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.7 released.
+
+2014-09-09 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.6 released.
+
+2014-09-09 Carl Hetherington <cth@carlh.net>
+
+ * Fix missing OS X dependencies.
+
+ * Use a different directory for DCP-o-matic 2
+ configuration (not the same as 1.x).
2014-09-08 Carl Hetherington <cth@carlh.net>
- * Fix failure to load Targa files.
+ * Version 2.0.5 released.
-2014-09-07 Carl Hetherington <cth@carlh.net>
+ * Fix hidden advanced preferences button in some locales.
+
+2014-09-08 Carl Hetherington <cth@carlh.net>
- * Version 1.73.3 released.
+ * Fix failure to load Targa files.
2014-09-07 Carl Hetherington <cth@carlh.net>
* Fix a few bad fuzzy translations from the preferences dialog.
-2014-09-03 Carl Hetherington <cth@carlh.net>
-
- * Version 1.73.2 released.
-
2014-09-03 Carl Hetherington <cth@carlh.net>
* Fix server certificate downloads on OS X (#376).
2014-08-29 Carl Hetherington <cth@carlh.net>
+ * Version 2.0.4 released.
+
+2014-08-24 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.3 released.
+
+2014-08-24 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.2 released.
+
+2014-08-06 Carl Hetherington <cth@carlh.net>
+
+ * Version 2.0.1 released.
+
+2014-07-15 Carl Hetherington <cth@carlh.net>
+
+ * A variety of changes were made on the 2.0 branch
+ but not documented in the ChangeLog. Most sigificantly:
+
+ - DCP import
+ - Creation of DCPs with proper XML subtitles
+ - Import of .srt and .xml subtitles
+ - Audio processing framework (with some basic processors).
+
+2014-03-07 Carl Hetherington <cth@carlh.net>
+
+ * Add subtitle view.
* Some improvements to the manual.
2014-08-26 Carl Hetherington <cth@carlh.net>
* Attempt to fix random crashes on OS X (especially during encodes)
thought to be caused by multiple threads using (different) stringstreams
at the same time; see src/lib/safe_stringstream.
+>>>>>>> origin/master
2014-08-09 Carl Hetherington <cth@carlh.net>
2014-07-10 Carl Hetherington <cth@carlh.net>
* Version 1.72.2 released.
+>>>>>>> origin/master
2014-07-10 Carl Hetherington <cth@carlh.net>
'pkg-config': '0.26',
'libssh-dev': '0.5.2',
'libsndfile1-dev': '1.0.25',
- 'libmagick++-dev': '8:6.6.9.7',
'libgtk2.0-dev': '2.24.10'}
deb_depends = dict()
def dependencies(target):
return (('ffmpeg-cdist', '2dffa11'),
- ('libdcp', 'd5accd6'))
+ ('libdcp', '1.0'),
+ ('libsub', None))
def build(target, options):
cmd = './waf configure --prefix=%s' % target.directory
if target.version == '6.5':
cmd += ' --target-centos-6 --disable-tests'
elif target.version == '7':
- cmd += ' --target-centos-7'
+ cmd += ' --target-centos-7 --disable-tests'
target.command(cmd)
target.command('./waf')
"%s/SOURCES/dcpomatic-%s.tar.bz2" % (topdir, version)
)
- target.command('rpmbuild --define \'_topdir %s\' -bb build/platform/linux/dcpomatic.spec' % topdir)
+ target.command('rpmbuild --define \'_topdir %s\' -bb build/platform/linux/dcpomatic2.spec' % topdir)
rpms = []
if cpu == "amd64":
-dcpomatic (1.76.2-1) UNRELEASED; urgency=low
+dcpomatic (2.0.14-1) UNRELEASED; urgency=low
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
+ * New upstream release.
+ * New upstream release.
+ * New upstream release.
+ * New upstream release.
- -- Carl Hetherington <carl@d1stkfactory> Tue, 14 Oct 2014 18:38:17 +0100
+ -- Carl Hetherington <carl@d1stkfactory> Mon, 20 Oct 2014 22:50:32 +0100
dcpomatic (0.87-1) UNRELEASED; urgency=low
--- /dev/null
- _frame->image (_burn_subtitles),
+/*
+ Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
+ Taken from code Copyright (C) 2010-2011 Terrence Meiczinger
+
+ 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
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program 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 this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+/** @file src/dcp_video_frame.cc
+ * @brief A single frame of video destined for a DCP.
+ *
+ * Given an Image and some settings, this class knows how to encode
+ * the image to J2K either on the local host or on a remote server.
+ *
+ * Objects of this class are used for the queue that we keep
+ * of images that require encoding.
+ */
+
+#include <stdint.h>
+#include <cstring>
+#include <cstdlib>
+#include <stdexcept>
+#include <cstdio>
+#include <iomanip>
+#include <iostream>
+#include <fstream>
+#include <unistd.h>
+#include <errno.h>
+#include <boost/array.hpp>
+#include <boost/asio.hpp>
+#include <boost/filesystem.hpp>
+#include <boost/lexical_cast.hpp>
+#include <dcp/gamma_lut.h>
+#include <dcp/xyz_frame.h>
+#include <dcp/rgb_xyz.h>
+#include <dcp/colour_matrix.h>
+#include <dcp/raw_convert.h>
+#include <libcxml/cxml.h>
+#include "film.h"
+#include "dcp_video.h"
+#include "config.h"
+#include "exceptions.h"
+#include "server.h"
+#include "util.h"
+#include "scaler.h"
+#include "image.h"
+#include "log.h"
+#include "cross.h"
+#include "player_video.h"
+#include "encoded_data.h"
+
+#define LOG_GENERAL(...) _log->log (String::compose (__VA_ARGS__), Log::TYPE_GENERAL);
+
+#include "i18n.h"
+
+using std::string;
+using std::cout;
+using boost::shared_ptr;
+using boost::lexical_cast;
+using dcp::Size;
+using dcp::raw_convert;
+
+#define DCI_COEFFICENT (48.0 / 52.37)
+
+/** Construct a DCP video frame.
+ * @param frame Input frame.
+ * @param index Index of the frame within the DCP.
+ * @param bw J2K bandwidth to use (see Config::j2k_bandwidth ())
+ * @param l Log to write to.
+ */
+DCPVideo::DCPVideo (
+ shared_ptr<const PlayerVideo> frame, int index, int dcp_fps, int bw, Resolution r, bool b, shared_ptr<Log> l
+ )
+ : _frame (frame)
+ , _index (index)
+ , _frames_per_second (dcp_fps)
+ , _j2k_bandwidth (bw)
+ , _resolution (r)
+ , _burn_subtitles (b)
+ , _log (l)
+{
+
+}
+
+DCPVideo::DCPVideo (shared_ptr<const PlayerVideo> frame, shared_ptr<const cxml::Node> node, shared_ptr<Log> log)
+ : _frame (frame)
+ , _log (log)
+{
+ _index = node->number_child<int> ("Index");
+ _frames_per_second = node->number_child<int> ("FramesPerSecond");
+ _j2k_bandwidth = node->number_child<int> ("J2KBandwidth");
+ _resolution = Resolution (node->optional_number_child<int>("Resolution").get_value_or (RESOLUTION_2K));
+ _burn_subtitles = node->bool_child ("BurnSubtitles");
+}
+
+/** J2K-encode this frame on the local host.
+ * @return Encoded data.
+ */
+shared_ptr<EncodedData>
+DCPVideo::encode_locally ()
+{
+ shared_ptr<dcp::GammaLUT> in_lut = dcp::GammaLUT::cache.get (
+ 12, _frame->colour_conversion().input_gamma, _frame->colour_conversion().input_gamma_linearised
+ );
+
+ /* XXX: libdcp should probably use boost */
+
+ double matrix[3][3];
+ for (int i = 0; i < 3; ++i) {
+ for (int j = 0; j < 3; ++j) {
+ matrix[i][j] = _frame->colour_conversion().matrix (i, j);
+ }
+ }
+
+ shared_ptr<dcp::XYZFrame> xyz = dcp::rgb_to_xyz (
++ _frame->image (AV_PIX_FMT_RGB48LE, _burn_subtitles),
+ in_lut,
+ dcp::GammaLUT::cache.get (16, 1 / _frame->colour_conversion().output_gamma, false),
+ matrix
+ );
+
+ /* Set the max image and component sizes based on frame_rate */
+ int max_cs_len = ((float) _j2k_bandwidth) / 8 / _frames_per_second;
+ if (_frame->eyes() == EYES_LEFT || _frame->eyes() == EYES_RIGHT) {
+ /* In 3D we have only half the normal bandwidth per eye */
+ max_cs_len /= 2;
+ }
+ int const max_comp_size = max_cs_len / 1.25;
+
+ /* get a J2K compressor handle */
+ opj_cinfo_t* cinfo = opj_create_compress (CODEC_J2K);
+ if (cinfo == 0) {
+ throw EncodeError (N_("could not create JPEG2000 encoder"));
+ }
+
+ /* Set encoding parameters to default values */
+ opj_cparameters_t parameters;
+ opj_set_default_encoder_parameters (¶meters);
+
+ /* Set default cinema parameters */
+ parameters.tile_size_on = false;
+ parameters.cp_tdx = 1;
+ parameters.cp_tdy = 1;
+
+ /* Tile part */
+ parameters.tp_flag = 'C';
+ parameters.tp_on = 1;
+
+ /* Tile and Image shall be at (0,0) */
+ parameters.cp_tx0 = 0;
+ parameters.cp_ty0 = 0;
+ parameters.image_offset_x0 = 0;
+ parameters.image_offset_y0 = 0;
+
+ /* Codeblock size = 32x32 */
+ parameters.cblockw_init = 32;
+ parameters.cblockh_init = 32;
+ parameters.csty |= 0x01;
+
+ /* The progression order shall be CPRL */
+ parameters.prog_order = CPRL;
+
+ /* No ROI */
+ parameters.roi_compno = -1;
+
+ parameters.subsampling_dx = 1;
+ parameters.subsampling_dy = 1;
+
+ /* 9-7 transform */
+ parameters.irreversible = 1;
+
+ parameters.tcp_rates[0] = 0;
+ parameters.tcp_numlayers++;
+ parameters.cp_disto_alloc = 1;
+ parameters.cp_rsiz = _resolution == RESOLUTION_2K ? CINEMA2K : CINEMA4K;
+ if (_resolution == RESOLUTION_4K) {
+ parameters.numpocs = 2;
+ parameters.POC[0].tile = 1;
+ parameters.POC[0].resno0 = 0;
+ parameters.POC[0].compno0 = 0;
+ parameters.POC[0].layno1 = 1;
+ parameters.POC[0].resno1 = parameters.numresolution - 1;
+ parameters.POC[0].compno1 = 3;
+ parameters.POC[0].prg1 = CPRL;
+ parameters.POC[1].tile = 1;
+ parameters.POC[1].resno0 = parameters.numresolution - 1;
+ parameters.POC[1].compno0 = 0;
+ parameters.POC[1].layno1 = 1;
+ parameters.POC[1].resno1 = parameters.numresolution;
+ parameters.POC[1].compno1 = 3;
+ parameters.POC[1].prg1 = CPRL;
+ }
+
+ parameters.cp_comment = strdup (N_("DCP-o-matic"));
+ parameters.cp_cinema = _resolution == RESOLUTION_2K ? CINEMA2K_24 : CINEMA4K_24;
+
+ /* 3 components, so use MCT */
+ parameters.tcp_mct = 1;
+
+ /* set max image */
+ parameters.max_comp_size = max_comp_size;
+ parameters.tcp_rates[0] = ((float) (3 * xyz->size().width * xyz->size().height * 12)) / (max_cs_len * 8);
+
+ /* Set event manager to null (openjpeg 1.3 bug) */
+ cinfo->event_mgr = 0;
+
+ /* Setup the encoder parameters using the current image and user parameters */
+ opj_setup_encoder (cinfo, ¶meters, xyz->opj_image ());
+
+ opj_cio_t* cio = opj_cio_open ((opj_common_ptr) cinfo, 0, 0);
+ if (cio == 0) {
+ opj_destroy_compress (cinfo);
+ throw EncodeError (N_("could not open JPEG2000 stream"));
+ }
+
+ int const r = opj_encode (cinfo, cio, xyz->opj_image(), 0);
+ if (r == 0) {
+ opj_cio_close (cio);
+ opj_destroy_compress (cinfo);
+ throw EncodeError (N_("JPEG2000 encoding failed"));
+ }
+
+ switch (_frame->eyes()) {
+ case EYES_BOTH:
+ LOG_GENERAL (N_("Finished locally-encoded frame %1 for mono"), _index);
+ break;
+ case EYES_LEFT:
+ LOG_GENERAL (N_("Finished locally-encoded frame %1 for L"), _index);
+ break;
+ case EYES_RIGHT:
+ LOG_GENERAL (N_("Finished locally-encoded frame %1 for R"), _index);
+ break;
+ default:
+ break;
+ }
+
+ shared_ptr<EncodedData> enc (new LocallyEncodedData (cio->buffer, cio_tell (cio)));
+
+ opj_cio_close (cio);
+ free (parameters.cp_comment);
+ opj_destroy_compress (cinfo);
+
+ return enc;
+}
+
+/** Send this frame to a remote server for J2K encoding, then read the result.
+ * @param serv Server to send to.
+ * @return Encoded data.
+ */
+shared_ptr<EncodedData>
+DCPVideo::encode_remotely (ServerDescription serv)
+{
+ boost::asio::io_service io_service;
+ boost::asio::ip::tcp::resolver resolver (io_service);
+ boost::asio::ip::tcp::resolver::query query (serv.host_name(), raw_convert<string> (Config::instance()->server_port_base ()));
+ boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
+
+ shared_ptr<Socket> socket (new Socket);
+
+ socket->connect (*endpoint_iterator);
+
+ /* Collect all XML metadata */
+ xmlpp::Document doc;
+ xmlpp::Element* root = doc.create_root_node ("EncodingRequest");
+ root->add_child("Version")->add_child_text (raw_convert<string> (SERVER_LINK_VERSION));
+ add_metadata (root);
+
+ LOG_GENERAL (N_("Sending frame %1 to remote"), _index);
+
+ /* Send XML metadata */
+ string xml = doc.write_to_string ("UTF-8");
+ socket->write (xml.length() + 1);
+ socket->write ((uint8_t *) xml.c_str(), xml.length() + 1);
+
+ /* Send binary data */
+ _frame->send_binary (socket, _burn_subtitles);
+
+ /* Read the response (JPEG2000-encoded data); this blocks until the data
+ is ready and sent back.
+ */
+ shared_ptr<EncodedData> e (new RemotelyEncodedData (socket->read_uint32 ()));
+ socket->read (e->data(), e->size());
+
+ LOG_GENERAL (N_("Finished remotely-encoded frame %1"), _index);
+
+ return e;
+}
+
+void
+DCPVideo::add_metadata (xmlpp::Element* el) const
+{
+ el->add_child("Index")->add_child_text (raw_convert<string> (_index));
+ el->add_child("FramesPerSecond")->add_child_text (raw_convert<string> (_frames_per_second));
+ el->add_child("J2KBandwidth")->add_child_text (raw_convert<string> (_j2k_bandwidth));
+ el->add_child("Resolution")->add_child_text (raw_convert<string> (int (_resolution)));
+ el->add_child("BurnSubtitles")->add_child_text (_burn_subtitles ? "1" : "0");
+ _frame->add_metadata (el, _burn_subtitles);
+}
+
+Eyes
+DCPVideo::eyes () const
+{
+ return _frame->eyes ();
+}
+
+/** @return true if this DCPVideo is definitely the same as another;
+ * (apart from the frame index), false if it is probably not.
+ */
+bool
+DCPVideo::same (shared_ptr<const DCPVideo> other) const
+{
+ if (_frames_per_second != other->_frames_per_second ||
+ _j2k_bandwidth != other->_j2k_bandwidth ||
+ _resolution != other->_resolution ||
+ _burn_subtitles != other->_burn_subtitles) {
+ return false;
+ }
+
+ return _frame->same (other->_frame);
+}
/*
- Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2014 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
#include "image.h"
#include "exceptions.h"
#include "scaler.h"
+#include "timer.h"
+#include "rect.h"
#include "md5_digester.h"
#include "i18n.h"
using std::min;
using std::cout;
using std::cerr;
+using std::list;
using boost::shared_ptr;
-using libdcp::Size;
+using dcp::Size;
int
Image::line_factor (int n) const
/** Crop this image, scale it to `inter_size' and then place it in a black frame of `out_size' */
shared_ptr<Image>
-Image::crop_scale_window (Crop crop, libdcp::Size inter_size, libdcp::Size out_size, Scaler const * scaler, AVPixelFormat out_format, bool out_aligned) const
+Image::crop_scale_window (Crop crop, dcp::Size inter_size, dcp::Size out_size, Scaler const * scaler, AVPixelFormat out_format, bool out_aligned) const
{
assert (scaler);
/* Empirical testing suggests that sws_scale() will crash if
out->make_black ();
/* Size of the image after any crop */
- libdcp::Size const cropped_size = crop.apply (size ());
+ dcp::Size const cropped_size = crop.apply (size ());
/* Scale context for a scale from cropped_size to inter_size */
struct SwsContext* scale_context = sws_getContext (
- cropped_size.width, cropped_size.height, pixel_format(),
- inter_size.width, inter_size.height, out_format,
- scaler->ffmpeg_id (), 0, 0, 0
+ cropped_size.width, cropped_size.height, pixel_format(),
+ inter_size.width, inter_size.height, out_format,
+ scaler->ffmpeg_id (), 0, 0, 0
);
if (!scale_context) {
}
shared_ptr<Image>
-Image::scale (libdcp::Size out_size, Scaler const * scaler, AVPixelFormat out_format, bool out_aligned) const
+Image::scale (dcp::Size out_size, Scaler const * scaler, AVPixelFormat out_format, bool out_aligned) const
{
assert (scaler);
/* Empirical testing suggests that sws_scale() will crash if
shared_ptr<Image>
Image::crop (Crop crop, bool aligned) const
{
- libdcp::Size cropped_size = crop.apply (size ());
+ dcp::Size cropped_size = crop.apply (size ());
shared_ptr<Image> out (new Image (pixel_format(), cropped_size, aligned));
for (int c = 0; c < components(); ++c) {
case PIX_FMT_ABGR:
case PIX_FMT_BGRA:
case PIX_FMT_RGB555LE:
+ case PIX_FMT_RGB48LE:
+ case PIX_FMT_RGB48BE:
memset (data()[0], 0, lines(0) * stride()[0]);
break;
}
}
+void
+Image::make_transparent ()
+{
+ if (_pixel_format != PIX_FMT_RGBA) {
+ throw PixelFormatError ("make_transparent()", _pixel_format);
+ }
+
+ memset (data()[0], 0, lines(0) * stride()[0]);
+}
+
void
Image::alpha_blend (shared_ptr<const Image> other, Position<int> position)
{
- /* Only implemented for RGBA onto RGB24 so far */
- assert (_pixel_format == PIX_FMT_RGB24 && other->pixel_format() == PIX_FMT_RGBA);
+ assert (other->pixel_format() == PIX_FMT_RGBA);
+ int const other_bpp = 4;
+
+ int this_bpp = 0;
+ switch (_pixel_format) {
+ case PIX_FMT_BGRA:
+ case PIX_FMT_RGBA:
+ this_bpp = 4;
+ break;
+ case PIX_FMT_RGB24:
+ this_bpp = 3;
+ break;
+ default:
+ assert (false);
+ }
int start_tx = position.x;
int start_ox = 0;
}
for (int ty = start_ty, oy = start_oy; ty < size().height && oy < other->size().height; ++ty, ++oy) {
- uint8_t* tp = data()[0] + ty * stride()[0] + position.x * 3;
+ uint8_t* tp = data()[0] + ty * stride()[0] + start_tx * this_bpp;
uint8_t* op = other->data()[0] + oy * other->stride()[0];
for (int tx = start_tx, ox = start_ox; tx < size().width && ox < other->size().width; ++tx, ++ox) {
float const alpha = float (op[3]) / 255;
- tp[0] = (tp[0] * (1 - alpha)) + op[0] * alpha;
- tp[1] = (tp[1] * (1 - alpha)) + op[1] * alpha;
- tp[2] = (tp[2] * (1 - alpha)) + op[2] * alpha;
- tp += 3;
- op += 4;
+ tp[0] = op[0] + (tp[0] * (1 - alpha));
+ tp[1] = op[1] + (tp[1] * (1 - alpha));
+ tp[2] = op[2] + (tp[2] * (1 - alpha));
+ tp[3] = op[3] + (tp[3] * (1 - alpha));
+
+ tp += this_bpp;
+ op += other_bpp;
}
}
}
* @param p Pixel format.
* @param s Size in pixels.
*/
-Image::Image (AVPixelFormat p, libdcp::Size s, bool aligned)
- : libdcp::Image (s)
+Image::Image (AVPixelFormat p, dcp::Size s, bool aligned)
+ : dcp::Image (s)
, _pixel_format (p)
, _aligned (aligned)
{
}
Image::Image (Image const & other)
- : libdcp::Image (other)
+ : dcp::Image (other)
, _pixel_format (other._pixel_format)
, _aligned (other._aligned)
{
}
Image::Image (AVFrame* frame)
- : libdcp::Image (libdcp::Size (frame->width, frame->height))
+ : dcp::Image (dcp::Size (frame->width, frame->height))
, _pixel_format (static_cast<AVPixelFormat> (frame->format))
, _aligned (true)
{
}
Image::Image (shared_ptr<const Image> other, bool aligned)
- : libdcp::Image (other)
+ : dcp::Image (other)
, _pixel_format (other->_pixel_format)
, _aligned (aligned)
{
void
Image::swap (Image & other)
{
- libdcp::Image::swap (other);
+ dcp::Image::swap (other);
std::swap (_pixel_format, other._pixel_format);
return _stride;
}
-libdcp::Size
+dcp::Size
Image::size () const
{
return _size;
return _aligned;
}
+PositionImage
+merge (list<PositionImage> images)
+{
+ if (images.empty ()) {
+ return PositionImage ();
+ }
+
+ if (images.size() == 1) {
+ return images.front ();
+ }
+
+ dcpomatic::Rect<int> all (images.front().position, images.front().image->size().width, images.front().image->size().height);
+ for (list<PositionImage>::const_iterator i = images.begin(); i != images.end(); ++i) {
+ all.extend (dcpomatic::Rect<int> (i->position, i->image->size().width, i->image->size().height));
+ }
+
+ shared_ptr<Image> merged (new Image (images.front().image->pixel_format (), dcp::Size (all.width, all.height), true));
+ merged->make_transparent ();
+ for (list<PositionImage>::const_iterator i = images.begin(); i != images.end(); ++i) {
+ merged->alpha_blend (i->image, i->position - all.position());
+ }
+
+ return PositionImage (merged, all.position ());
+}
+
string
Image::digest () const
{
return digester.get ();
}
-
+
+bool
+operator== (Image const & a, Image const & b)
+{
+ if (a.components() != b.components() || a.pixel_format() != b.pixel_format() || a.aligned() != b.aligned()) {
+ return false;
+ }
+
+ for (int c = 0; c < a.components(); ++c) {
+ if (a.lines(c) != b.lines(c) || a.line_size()[c] != b.line_size()[c] || a.stride()[c] != b.stride()[c]) {
+ return false;
+ }
+
+ uint8_t* p = a.data()[c];
+ uint8_t* q = b.data()[c];
+ for (int y = 0; y < a.lines(c); ++y) {
+ if (memcmp (p, q, a.line_size()[c]) != 0) {
+ return false;
+ }
+
+ p += a.stride()[c];
+ q += b.stride()[c];
+ }
+ }
+
+ return true;
+}
+
+void
+Image::fade (float f)
+{
+ switch (_pixel_format) {
+ case PIX_FMT_YUV420P:
+ case PIX_FMT_YUV422P:
+ case PIX_FMT_YUV444P:
+ case PIX_FMT_YUV411P:
+ case PIX_FMT_YUVJ420P:
+ case PIX_FMT_YUVJ422P:
+ case PIX_FMT_YUVJ444P:
+ case PIX_FMT_RGB24:
+ case PIX_FMT_ARGB:
+ case PIX_FMT_RGBA:
+ case PIX_FMT_ABGR:
+ case PIX_FMT_BGRA:
+ case PIX_FMT_RGB555LE:
+ /* 8-bit */
+ for (int c = 0; c < 3; ++c) {
+ uint8_t* p = data()[c];
+ for (int y = 0; y < lines(c); ++y) {
+ uint8_t* q = p;
+ for (int x = 0; x < line_size()[c]; ++x) {
+ *q = int (float (*q) * f);
+ ++q;
+ }
+ p += stride()[c];
+ }
+ }
+ break;
+
+ case PIX_FMT_YUV422P9LE:
+ case PIX_FMT_YUV444P9LE:
+ case PIX_FMT_YUV422P10LE:
+ case PIX_FMT_YUV444P10LE:
+ case PIX_FMT_YUV422P16LE:
+ case PIX_FMT_YUV444P16LE:
+ case AV_PIX_FMT_YUVA420P9LE:
+ case AV_PIX_FMT_YUVA422P9LE:
+ case AV_PIX_FMT_YUVA444P9LE:
+ case AV_PIX_FMT_YUVA420P10LE:
+ case AV_PIX_FMT_YUVA422P10LE:
+ case AV_PIX_FMT_YUVA444P10LE:
+ /* 16-bit little-endian */
+ for (int c = 0; c < 3; ++c) {
+ int const stride_pixels = stride()[c] / 2;
+ int const line_size_pixels = line_size()[c] / 2;
+ uint16_t* p = reinterpret_cast<uint16_t*> (data()[c]);
+ for (int y = 0; y < lines(c); ++y) {
+ uint16_t* q = p;
+ for (int x = 0; x < line_size_pixels; ++x) {
+ *q = int (float (*q) * f);
+ ++q;
+ }
+ p += stride_pixels;
+ }
+ }
+ break;
+
+ case PIX_FMT_YUV422P9BE:
+ case PIX_FMT_YUV444P9BE:
+ case PIX_FMT_YUV444P10BE:
+ case PIX_FMT_YUV422P10BE:
+ case AV_PIX_FMT_YUVA420P9BE:
+ case AV_PIX_FMT_YUVA422P9BE:
+ case AV_PIX_FMT_YUVA444P9BE:
+ case AV_PIX_FMT_YUVA420P10BE:
+ case AV_PIX_FMT_YUVA422P10BE:
+ case AV_PIX_FMT_YUVA444P10BE:
+ case AV_PIX_FMT_YUVA420P16BE:
+ case AV_PIX_FMT_YUVA422P16BE:
+ case AV_PIX_FMT_YUVA444P16BE:
+ /* 16-bit big-endian */
+ for (int c = 0; c < 3; ++c) {
+ int const stride_pixels = stride()[c] / 2;
+ int const line_size_pixels = line_size()[c] / 2;
+ uint16_t* p = reinterpret_cast<uint16_t*> (data()[c]);
+ for (int y = 0; y < lines(c); ++y) {
+ uint16_t* q = p;
+ for (int x = 0; x < line_size_pixels; ++x) {
+ *q = swap_16 (int (float (swap_16 (*q)) * f));
+ ++q;
+ }
+ p += stride_pixels;
+ }
+ }
+ break;
+
+ case PIX_FMT_UYVY422:
+ {
+ int const Y = lines(0);
+ int const X = line_size()[0];
+ uint8_t* p = data()[0];
+ for (int y = 0; y < Y; ++y) {
+ for (int x = 0; x < X; ++x) {
+ *p = int (float (*p) * f);
+ ++p;
+ }
+ }
+ break;
+ }
+
+ default:
+ throw PixelFormatError ("fade()", _pixel_format);
+ }
+}
ImageExaminer::ImageExaminer (shared_ptr<const Film> film, shared_ptr<const ImageContent> content, shared_ptr<Job>)
: _film (film)
, _image_content (content)
- , _video_length (0)
{
+ #ifdef DCPOMATIC_IMAGE_MAGICK
using namespace MagickCore;
+ #endif
Magick::Image* image = new Magick::Image (content->path(0).string());
- _video_size = libdcp::Size (image->columns(), image->rows());
+ _video_size = dcp::Size (image->columns(), image->rows());
delete image;
if (content->still ()) {
- _video_length = Config::instance()->default_still_length() * video_frame_rate();
+ _video_length = ContentTime::from_seconds (Config::instance()->default_still_length());
} else {
- _video_length = _image_content->number_of_paths ();
+ _video_length = ContentTime::from_frames (_image_content->number_of_paths (), video_frame_rate ());
}
}
-libdcp::Size
+dcp::Size
ImageExaminer::video_size () const
{
return _video_size.get ();
--- /dev/null
- PlayerVideo::image (bool burn_subtitle) const
+/*
+ Copyright (C) 2013-2014 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
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program 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 this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include <dcp/raw_convert.h>
+#include "player_video.h"
+#include "image.h"
+#include "image_proxy.h"
+#include "j2k_image_proxy.h"
+#include "scaler.h"
+
+using std::string;
+using std::cout;
+using dcp::raw_convert;
+using boost::shared_ptr;
+using boost::dynamic_pointer_cast;
+
+PlayerVideo::PlayerVideo (
+ shared_ptr<const ImageProxy> in,
+ DCPTime time,
+ Crop crop,
+ boost::optional<float> fade,
+ dcp::Size inter_size,
+ dcp::Size out_size,
+ Scaler const * scaler,
+ Eyes eyes,
+ Part part,
+ ColourConversion colour_conversion
+ )
+ : _in (in)
+ , _time (time)
+ , _crop (crop)
+ , _fade (fade)
+ , _inter_size (inter_size)
+ , _out_size (out_size)
+ , _scaler (scaler)
+ , _eyes (eyes)
+ , _part (part)
+ , _colour_conversion (colour_conversion)
+{
+
+}
+
+PlayerVideo::PlayerVideo (shared_ptr<cxml::Node> node, shared_ptr<Socket> socket, shared_ptr<Log> log)
+{
+ _time = DCPTime (node->number_child<DCPTime::Type> ("Time"));
+ _crop = Crop (node);
+ _fade = node->optional_number_child<float> ("Fade");
+
+ _inter_size = dcp::Size (node->number_child<int> ("InterWidth"), node->number_child<int> ("InterHeight"));
+ _out_size = dcp::Size (node->number_child<int> ("OutWidth"), node->number_child<int> ("OutHeight"));
+ _scaler = Scaler::from_id (node->string_child ("Scaler"));
+ _eyes = (Eyes) node->number_child<int> ("Eyes");
+ _part = (Part) node->number_child<int> ("Part");
+ _colour_conversion = ColourConversion (node);
+
+ _in = image_proxy_factory (node->node_child ("In"), socket, log);
+
+ if (node->optional_number_child<int> ("SubtitleX")) {
+
+ _subtitle.position = Position<int> (node->number_child<int> ("SubtitleX"), node->number_child<int> ("SubtitleY"));
+
+ _subtitle.image.reset (
+ new Image (PIX_FMT_RGBA, dcp::Size (node->number_child<int> ("SubtitleWidth"), node->number_child<int> ("SubtitleHeight")), true)
+ );
+
+ _subtitle.image->read_from_socket (socket);
+ }
+}
+
+void
+PlayerVideo::set_subtitle (PositionImage image)
+{
+ _subtitle = image;
+}
+
+shared_ptr<Image>
- shared_ptr<Image> out = im->crop_scale_window (total_crop, _inter_size, _out_size, _scaler, PIX_FMT_RGB24, true);
++PlayerVideo::image (AVPixelFormat pixel_format, bool burn_subtitle) const
+{
+ shared_ptr<Image> im = _in->image ();
+
+ Crop total_crop = _crop;
+ switch (_part) {
+ case PART_LEFT_HALF:
+ total_crop.right += im->size().width / 2;
+ break;
+ case PART_RIGHT_HALF:
+ total_crop.left += im->size().width / 2;
+ break;
+ case PART_TOP_HALF:
+ total_crop.bottom += im->size().height / 2;
+ break;
+ case PART_BOTTOM_HALF:
+ total_crop.top += im->size().height / 2;
+ break;
+ default:
+ break;
+ }
+
++ shared_ptr<Image> out = im->crop_scale_window (total_crop, _inter_size, _out_size, _scaler, pixel_format, true);
+
+ if (burn_subtitle && _subtitle.image) {
+ out->alpha_blend (_subtitle.image, _subtitle.position);
+ }
+
+ if (_fade) {
+ out->fade (_fade.get ());
+ }
+
+ return out;
+}
+
+void
+PlayerVideo::add_metadata (xmlpp::Node* node, bool send_subtitles) const
+{
+ node->add_child("Time")->add_child_text (raw_convert<string> (_time.get ()));
+ _crop.as_xml (node);
+ if (_fade) {
+ node->add_child("Fade")->add_child_text (raw_convert<string> (_fade.get ()));
+ }
+ _in->add_metadata (node->add_child ("In"));
+ node->add_child("InterWidth")->add_child_text (raw_convert<string> (_inter_size.width));
+ node->add_child("InterHeight")->add_child_text (raw_convert<string> (_inter_size.height));
+ node->add_child("OutWidth")->add_child_text (raw_convert<string> (_out_size.width));
+ node->add_child("OutHeight")->add_child_text (raw_convert<string> (_out_size.height));
+ node->add_child("Scaler")->add_child_text (_scaler->id ());
+ node->add_child("Eyes")->add_child_text (raw_convert<string> (_eyes));
+ node->add_child("Part")->add_child_text (raw_convert<string> (_part));
+ _colour_conversion.as_xml (node);
+ if (send_subtitles && _subtitle.image) {
+ node->add_child ("SubtitleWidth")->add_child_text (raw_convert<string> (_subtitle.image->size().width));
+ node->add_child ("SubtitleHeight")->add_child_text (raw_convert<string> (_subtitle.image->size().height));
+ node->add_child ("SubtitleX")->add_child_text (raw_convert<string> (_subtitle.position.x));
+ node->add_child ("SubtitleY")->add_child_text (raw_convert<string> (_subtitle.position.y));
+ }
+}
+
+void
+PlayerVideo::send_binary (shared_ptr<Socket> socket, bool send_subtitles) const
+{
+ _in->send_binary (socket);
+ if (send_subtitles && _subtitle.image) {
+ _subtitle.image->write_to_socket (socket);
+ }
+}
+
+bool
+PlayerVideo::has_j2k () const
+{
+ /* XXX: burnt-in subtitle; maybe other things */
+
+ shared_ptr<const J2KImageProxy> j2k = dynamic_pointer_cast<const J2KImageProxy> (_in);
+ if (!j2k) {
+ return false;
+ }
+
+ return _crop == Crop () && _inter_size == j2k->size();
+}
+
+shared_ptr<EncodedData>
+PlayerVideo::j2k () const
+{
+ shared_ptr<const J2KImageProxy> j2k = dynamic_pointer_cast<const J2KImageProxy> (_in);
+ assert (j2k);
+ return j2k->j2k ();
+}
+
+Position<int>
+PlayerVideo::inter_position () const
+{
+ return Position<int> ((_out_size.width - _inter_size.width) / 2, (_out_size.height - _inter_size.height) / 2);
+}
+
+/** @return true if this PlayerVideo is definitely the same as another
+ * (apart from _time), false if it is probably not
+ */
+bool
+PlayerVideo::same (shared_ptr<const PlayerVideo> other) const
+{
+ if (_in != other->_in ||
+ _crop != other->_crop ||
+ _fade.get_value_or(0) != other->_fade.get_value_or(0) ||
+ _inter_size != other->_inter_size ||
+ _out_size != other->_out_size ||
+ _scaler != other->_scaler ||
+ _eyes != other->_eyes ||
+ _part != other->_part ||
+ _colour_conversion != other->_colour_conversion ||
+ !_subtitle.same (other->_subtitle)) {
+ return false;
+ }
+
+ return _in->same (other->_in);
+}
--- /dev/null
- boost::shared_ptr<Image> image (bool burn_subtitle) const;
+/*
+ Copyright (C) 2013-2014 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
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program 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 this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include <boost/shared_ptr.hpp>
++extern "C" {
++#include <libavutil/pixfmt.h>
++}
+#include "types.h"
+#include "position.h"
+#include "colour_conversion.h"
+#include "position_image.h"
+
+class Image;
+class ImageProxy;
+class Scaler;
+class Socket;
+class Log;
+class EncodedData;
+
+/** Everything needed to describe a video frame coming out of the player, but with the
+ * bits still their raw form. We may want to combine the bits on a remote machine,
+ * or maybe not even bother to combine them at all.
+ */
+class PlayerVideo
+{
+public:
+ PlayerVideo (
+ boost::shared_ptr<const ImageProxy>,
+ DCPTime,
+ Crop,
+ boost::optional<float>,
+ dcp::Size,
+ dcp::Size,
+ Scaler const *,
+ Eyes,
+ Part,
+ ColourConversion
+ );
+
+ PlayerVideo (boost::shared_ptr<cxml::Node>, boost::shared_ptr<Socket>, boost::shared_ptr<Log>);
+
+ void set_subtitle (PositionImage);
+
++ boost::shared_ptr<Image> image (AVPixelFormat pix_fmt, bool burn_subtitle) const;
+
+ void add_metadata (xmlpp::Node* node, bool send_subtitles) const;
+ void send_binary (boost::shared_ptr<Socket> socket, bool send_subtitles) const;
+
+ bool has_j2k () const;
+ boost::shared_ptr<EncodedData> j2k () const;
+
+ DCPTime time () const {
+ return _time;
+ }
+
+ Eyes eyes () const {
+ return _eyes;
+ }
+
+ ColourConversion colour_conversion () const {
+ return _colour_conversion;
+ }
+
+ /** @return Position of the content within the overall image once it has been scaled up */
+ Position<int> inter_position () const;
+
+ /** @return Size of the content within the overall image once it has been scaled up */
+ dcp::Size inter_size () const {
+ return _inter_size;
+ }
+
+ bool same (boost::shared_ptr<const PlayerVideo> other) const;
+
+private:
+ boost::shared_ptr<const ImageProxy> _in;
+ DCPTime _time;
+ Crop _crop;
+ boost::optional<float> _fade;
+ dcp::Size _inter_size;
+ dcp::Size _out_size;
+ Scaler const * _scaler;
+ Eyes _eyes;
+ Part _part;
+ ColourConversion _colour_conversion;
+ PositionImage _subtitle;
+};
#endif
#include <glib.h>
#include <openjpeg.h>
+#include <pangomm/init.h>
+ #ifdef DCPOMATIC_IMAGE_MAGICK
#include <magick/MagickCore.h>
+ #else
+ #include <magick/common.h>
+ #include <magick/magick_config.h>
+ #endif
#include <magick/version.h>
-#include <libdcp/version.h>
-#include <libdcp/util.h>
-#include <libdcp/signer_chain.h>
-#include <libdcp/signer.h>
-#include <libdcp/raw_convert.h>
+#include <dcp/version.h>
+#include <dcp/util.h>
+#include <dcp/signer.h>
+#include <dcp/raw_convert.h>
extern "C" {
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include "scaler.h"
#include "dcp_content_type.h"
#include "filter.h"
-#include "sound_processor.h"
+#include "cinema_sound_processor.h"
#include "config.h"
#include "ratio.h"
#include "job.h"
#include "cross.h"
#include "video_content.h"
+#include "rect.h"
#include "md5_digester.h"
+#include "audio_processor.h"
#include "safe_stringstream.h"
#ifdef DCPOMATIC_WINDOWS
#include "stack.hpp"
using boost::shared_ptr;
using boost::thread;
using boost::optional;
-using libdcp::Size;
-using libdcp::raw_convert;
+using dcp::Size;
+using dcp::raw_convert;
static boost::thread::id ui_thread;
static boost::filesystem::path backtrace_file;
return s.str ();
}
-/** Return a user-readable string summarising the versions of our dependencies */
-string
-dependency_version_summary ()
-{
- SafeStringStream s;
- s << N_("libopenjpeg ") << opj_version () << N_(", ")
- << N_("libavcodec ") << ffmpeg_version_to_string (avcodec_version()) << N_(", ")
- << N_("libavfilter ") << ffmpeg_version_to_string (avfilter_version()) << N_(", ")
- << N_("libavformat ") << ffmpeg_version_to_string (avformat_version()) << N_(", ")
- << N_("libavutil ") << ffmpeg_version_to_string (avutil_version()) << N_(", ")
- << N_("libswscale ") << ffmpeg_version_to_string (swscale_version()) << N_(", ")
- << MagickVersion << N_(", ")
- << N_("libssh ") << ssh_version (0) << N_(", ")
- << N_("libdcp ") << libdcp::version << N_(" git ") << libdcp::git_commit;
-
- return s.str ();
-}
-
double
seconds (struct timeval t)
{
set_terminate (terminate);
- libdcp::init ();
+ Pango::init ();
+ dcp::init ();
Ratio::setup_ratios ();
VideoContentScale::setup_scales ();
DCPContentType::setup_dcp_content_types ();
Scaler::setup_scalers ();
Filter::setup_filters ();
- SoundProcessor::setup_sound_processors ();
+ CinemaSoundProcessor::setup_cinema_sound_processors ();
+ AudioProcessor::setup_audio_processors ();
ui_thread = boost::this_thread::get_id ();
}
boost::filesystem::path
mo_path ()
{
- return "DCP-o-matic.app/Contents/Resources";
+ return "DCP-o-matic 2.app/Contents/Resources";
}
#endif
while (remaining > 0) {
int const t = min (remaining, buffer_size);
- fread (buffer, 1, t, f);
+ int const r = fread (buffer, 1, t, f);
+ if (r != t) {
+ throw ReadFileError (files[i], errno);
+ }
digester.add (buffer, t);
remaining -= t;
return a - (a % t);
}
+/** @param n A number.
+ * @param r Rounding `boundary' (must be a power of 2)
+ * @return n rounded to the nearest r
+ */
+int
+round_to (float n, int r)
+{
+ assert (r == 1 || r == 2 || r == 4);
+ return int (n + float(r) / 2) &~ (r - 1);
+}
+
/** Read a sequence of key / value pairs from a text stream;
* the keys are the first words on the line, and the values are
* the remainder of the line following the key. Lines beginning
assert (boost::this_thread::get_id() == ui_thread);
}
-/** @param v Content video frame.
- * @param audio_sample_rate Source audio sample rate.
- * @param frames_per_second Number of video frames per second.
- * @return Equivalent number of audio frames for `v'.
- */
-int64_t
-video_frames_to_audio_frames (VideoContent::Frame v, float audio_sample_rate, float frames_per_second)
-{
- return ((int64_t) v * audio_sample_rate / frames_per_second);
-}
-
string
audio_channel_name (int c)
{
return t;
}
-shared_ptr<const libdcp::Signer>
-make_signer ()
-{
- boost::filesystem::path const sd = Config::instance()->signer_chain_directory ();
-
- /* Remake the chain if any of it is missing */
-
- list<boost::filesystem::path> files;
- files.push_back ("ca.self-signed.pem");
- files.push_back ("intermediate.signed.pem");
- files.push_back ("leaf.signed.pem");
- files.push_back ("leaf.key");
-
- list<boost::filesystem::path>::const_iterator i = files.begin();
- while (i != files.end()) {
- boost::filesystem::path p (sd);
- p /= *i;
- if (!boost::filesystem::exists (p)) {
- boost::filesystem::remove_all (sd);
- boost::filesystem::create_directories (sd);
- libdcp::make_signer_chain (sd, openssl_path ());
- break;
- }
-
- ++i;
- }
-
- libdcp::CertificateChain chain;
-
- {
- boost::filesystem::path p (sd);
- p /= "ca.self-signed.pem";
- chain.add (shared_ptr<libdcp::Certificate> (new libdcp::Certificate (p)));
- }
-
- {
- boost::filesystem::path p (sd);
- p /= "intermediate.signed.pem";
- chain.add (shared_ptr<libdcp::Certificate> (new libdcp::Certificate (p)));
- }
-
- {
- boost::filesystem::path p (sd);
- p /= "leaf.signed.pem";
- chain.add (shared_ptr<libdcp::Certificate> (new libdcp::Certificate (p)));
- }
-
- boost::filesystem::path signer_key (sd);
- signer_key /= "leaf.key";
-
- return shared_ptr<const libdcp::Signer> (new libdcp::Signer (chain, signer_key));
-}
-
map<string, string>
split_get_request (string url)
{
return r;
}
-libdcp::Size
-fit_ratio_within (float ratio, libdcp::Size full_frame)
+dcp::Size
+fit_ratio_within (float ratio, dcp::Size full_frame, int round)
{
if (ratio < full_frame.ratio ()) {
- return libdcp::Size (rint (full_frame.height * ratio), full_frame.height);
+ return dcp::Size (round_to (full_frame.height * ratio, round), full_frame.height);
}
- return libdcp::Size (full_frame.width, rint (full_frame.width / ratio));
+ return dcp::Size (full_frame.width, round_to (full_frame.width / ratio, round));
}
void *
}
}
+/** Return a user-readable string summarising the versions of our dependencies */
+string
+dependency_version_summary ()
+{
+ SafeStringStream s;
+ s << N_("libopenjpeg ") << opj_version () << N_(", ")
+ << N_("libavcodec ") << ffmpeg_version_to_string (avcodec_version()) << N_(", ")
+ << N_("libavfilter ") << ffmpeg_version_to_string (avfilter_version()) << N_(", ")
+ << N_("libavformat ") << ffmpeg_version_to_string (avformat_version()) << N_(", ")
+ << N_("libavutil ") << ffmpeg_version_to_string (avutil_version()) << N_(", ")
+ << N_("libswscale ") << ffmpeg_version_to_string (swscale_version()) << N_(", ")
+ << MagickVersion << N_(", ")
+ << N_("libssh ") << ssh_version (0) << N_(", ")
+ << N_("libdcp ") << dcp::version << N_(" git ") << dcp::git_commit;
+
+ return s.str ();
+}
+
+/** Construct a ScopedTemporary. A temporary filename is decided but the file is not opened
+ * until ::open() is called.
+ */
ScopedTemporary::ScopedTemporary ()
: _open (0)
{
_file = boost::filesystem::temp_directory_path() / boost::filesystem::unique_path ();
}
+/** Close and delete the temporary file */
ScopedTemporary::~ScopedTemporary ()
{
close ();
boost::filesystem::remove (_file, ec);
}
+/** @return temporary filename */
char const *
ScopedTemporary::c_str () const
{
return _file.string().c_str ();
}
+/** Open the temporary file.
+ * @return File's FILE pointer.
+ */
FILE*
ScopedTemporary::open (char const * params)
{
return _open;
}
+/** Close the file */
void
ScopedTemporary::close ()
{
_open = 0;
}
}
+
+ContentTimePeriod
+subtitle_period (AVSubtitle const & sub)
+{
+ ContentTime const packet_time = ContentTime::from_seconds (static_cast<double> (sub.pts) / AV_TIME_BASE);
+
+ ContentTimePeriod period (
+ packet_time + ContentTime::from_seconds (sub.start_display_time / 1e3),
+ packet_time + ContentTime::from_seconds (sub.end_display_time / 1e3)
+ );
+
+ return period;
+}
#include <iostream>
#include <iomanip>
#include <getopt.h>
-#include <libdcp/version.h>
+#include <dcp/version.h>
#include "lib/film.h"
#include "lib/filter.h"
#include "lib/transcode_job.h"
exit (EXIT_FAILURE);
}
+ ContentList content = film->content ();
+ for (ContentList::const_iterator i = content.begin(); i != content.end(); ++i) {
+ vector<boost::filesystem::path> paths = (*i)->paths ();
+ for (vector<boost::filesystem::path>::const_iterator j = paths.begin(); j != paths.end(); ++j) {
+ if (!boost::filesystem::exists (*j)) {
+ cerr << argv[0] << ": content file " << *j << " not found.\n";
+ exit (EXIT_FAILURE);
+ }
+ }
+ }
+
cout << "\nMaking DCP for " << film->name() << "\n";
film->make_dcp ();
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-07-13 03:04+0100\n"
"Last-Translator: Carsten Kurz\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"X-Generator: Poedit 1.6.5\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: src/tools/dcpomatic.cc:306
+#: src/tools/dcpomatic.cc:309
msgid "%1 already exists as a file, so you cannot use it for a new film."
msgstr ""
"%1 existiert bereits als Datei, kann also nicht für einen neuen Film benutzt "
msgid "&Add Film..."
msgstr "&Projekt hinzufügen"
-#: src/tools/dcpomatic.cc:652
+#: src/tools/dcpomatic.cc:655
msgid "&Content"
msgstr "&Quelle..."
-#: src/tools/dcpomatic.cc:650
+#: src/tools/dcpomatic.cc:653
msgid "&Edit"
msgstr "&Bearbeiten"
-#: src/tools/dcpomatic.cc:614
+#: src/tools/dcpomatic.cc:617
msgid "&Exit"
msgstr "&Ende"
-#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:56
+#: src/tools/dcpomatic.cc:651 src/tools/dcpomatic_batch.cc:56
msgid "&File"
msgstr "&Datei"
-#: src/tools/dcpomatic.cc:655 src/tools/dcpomatic_batch.cc:57
+#: src/tools/dcpomatic.cc:658 src/tools/dcpomatic_batch.cc:57
msgid "&Help"
msgstr "&Hilfe"
-#: src/tools/dcpomatic.cc:653
+#: src/tools/dcpomatic.cc:656
msgid "&Jobs"
msgstr "&Aufgaben"
-#: src/tools/dcpomatic.cc:631
+#: src/tools/dcpomatic.cc:634
#, fuzzy
msgid "&Make DCP\tCtrl-M"
msgstr "&DCP erstellen\tCtrl-M"
-#: src/tools/dcpomatic.cc:601
+#: src/tools/dcpomatic.cc:604
#, fuzzy
msgid "&Open...\tCtrl-O"
msgstr "&Öffnen...\tCtrl-O"
-#: src/tools/dcpomatic.cc:620 src/tools/dcpomatic.cc:623
+#: src/tools/dcpomatic.cc:623 src/tools/dcpomatic.cc:626
#, fuzzy
msgid "&Preferences...\tCtrl-P"
msgstr "&Einstellungen...\tCtrl-P"
-#: src/tools/dcpomatic.cc:605
+#: src/tools/dcpomatic.cc:608
msgid "&Properties..."
msgstr "&Eigenschaften..."
-#: src/tools/dcpomatic.cc:616 src/tools/dcpomatic_batch.cc:51
+#: src/tools/dcpomatic.cc:619 src/tools/dcpomatic_batch.cc:51
msgid "&Quit"
msgstr "&Beenden"
-#: src/tools/dcpomatic.cc:603
+#: src/tools/dcpomatic.cc:606
msgid "&Save\tCtrl-S"
msgstr ""
-#: src/tools/dcpomatic.cc:633
+#: src/tools/dcpomatic.cc:636
msgid "&Send DCP to TMS"
msgstr "&DCP an TMS senden"
-#: src/tools/dcpomatic.cc:654
+#: src/tools/dcpomatic.cc:657
msgid "&Tools"
msgstr "&Werkzeuge"
-#: src/tools/dcpomatic.cc:645 src/tools/dcpomatic_batch.cc:54
+#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:54
msgid "About"
msgstr "Ãœber"
-#: src/tools/dcpomatic.cc:643
+#: src/tools/dcpomatic.cc:646
msgid "About DCP-o-matic"
msgstr "Ãœber DCP-o-matic"
msgid "Add Film..."
msgstr "Projekt hinzufügen..."
-#: src/tools/dcpomatic.cc:821
+#: src/tools/dcpomatic.cc:827
#, fuzzy, c-format
msgid ""
"An exception occurred (%s). Please report this problem to the DCP-o-matic "
"Ein unbekannter Fehler ist aufgetreten. Bitte melden Sie dieses Problem an "
"den Autor von DCP-o-matic (carl@dcpomatic.com)!"
-#: src/tools/dcpomatic.cc:823 src/tools/dcpomatic.cc:832
+#: src/tools/dcpomatic.cc:829 src/tools/dcpomatic.cc:838
msgid ""
"An unknown exception occurred. Please report this problem to the DCP-o-"
"matic author (carl@dcpomatic.com)."
"Ein unbekannter Fehler ist aufgetreten. Bitte melden Sie dieses Problem an "
"den Autor von DCP-o-matic (carl@dcpomatic.com)!"
-#: src/tools/dcpomatic.cc:418
+#: src/tools/dcpomatic.cc:421
msgid "An unknown exeception occurred."
msgstr "Ein unbekannter Fehler ist aufgetreten."
-#: src/tools/dcpomatic.cc:414
+#: src/tools/dcpomatic.cc:417
msgid "CPL's content is not encrypted."
msgstr "Medien der CPL sind nicht verschlüsselt worden."
-#: src/tools/dcpomatic.cc:639
+#: src/tools/dcpomatic.cc:642
msgid "Check for updates"
msgstr "Auf Updates überprüfen..."
-#: src/tools/dcpomatic.cc:760 src/tools/dcpomatic_batch.cc:238
+#: src/tools/dcpomatic.cc:766 src/tools/dcpomatic_batch.cc:238
msgid "Could not load film %1 (%2)"
msgstr "Film %1 (%2) konnte nicht geladen werden"
-#: src/tools/dcpomatic.cc:257 src/tools/dcpomatic_batch.cc:175
+#: src/tools/dcpomatic.cc:260 src/tools/dcpomatic_batch.cc:175
#, c-format
msgid "Could not open film at %s (%s)"
msgstr "Der Film konnte nicht bei %s (%s) geöffnet werden"
-#: src/tools/dcpomatic.cc:464
+#: src/tools/dcpomatic.cc:467
msgid "Could not show DCP (could not run konqueror)"
msgstr ""
"DCP kann nicht angezeigt werden (Konqueror konnte nicht gestartet werden)"
-#: src/tools/dcpomatic.cc:457
+#: src/tools/dcpomatic.cc:460
msgid "Could not show DCP (could not run nautilus)"
msgstr "DCP kann nicht angezeigt werden (Nautilus konnte nicht geladen werden)"
-#: src/tools/dcpomatic.cc:277 src/tools/dcpomatic.cc:715
-#: src/tools/dcpomatic.cc:751
+#: src/tools/dcpomatic.cc:280 src/tools/dcpomatic.cc:721
+#: src/tools/dcpomatic.cc:757
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic Batch Converter"
msgstr "DCP-o-matic Batch Converter"
-#: src/tools/dcpomatic.cc:638
+#: src/tools/dcpomatic.cc:641
msgid "Encoding servers..."
msgstr "Encoding Server..."
-#: src/tools/dcpomatic.cc:85
+#: src/tools/dcpomatic.cc:84
msgid "Film changed"
msgstr "Projekt gewechselt"
-#: src/tools/dcpomatic.cc:637
+#: src/tools/dcpomatic.cc:640
msgid "Hints...\tCtrl-H"
msgstr "Tipps...\tCtrl-H"
-#: src/tools/dcpomatic.cc:632
+#: src/tools/dcpomatic.cc:635
msgid "Make &KDMs...\tCtrl-K"
msgstr "&KDM erstellen...\tCtrl-K"
-#: src/tools/dcpomatic.cc:600
+#: src/tools/dcpomatic.cc:603
msgid "New...\tCtrl-N"
msgstr "Neu...\tCtrl-N"
-#: src/tools/dcpomatic.cc:634
+#: src/tools/dcpomatic.cc:637
msgid "S&how DCP"
msgstr "Z&eige DCP"
-#: src/tools/dcpomatic.cc:84
+#: src/tools/dcpomatic.cc:83
#, c-format
msgid "Save changes to film \"%s\" before closing?"
msgstr "Änderungen des Projekts \"%s\" vor dem Schließen speichern ?"
-#: src/tools/dcpomatic.cc:628
+#: src/tools/dcpomatic.cc:631
msgid "Scale to fit &height"
msgstr "...skalieren auf &Höhe DCI-Container"
-#: src/tools/dcpomatic.cc:627
+#: src/tools/dcpomatic.cc:630
msgid "Scale to fit &width"
msgstr "...skalieren auf &Breite DCI-Container"
-#: src/tools/dcpomatic.cc:322 src/tools/dcpomatic_batch.cc:152
+#: src/tools/dcpomatic.cc:325 src/tools/dcpomatic_batch.cc:152
msgid "Select film to open"
msgstr "Zu öffnendes Projekt auswählen"
-#: src/tools/dcpomatic.cc:385
+#: src/tools/dcpomatic.cc:388
#, c-format
msgid ""
"The DCP for this film will take up about %.1f Gb, and the disk that you are "
"Das DCP für diesen Film wird etwa %.1f Gbyte groß. Auf dem ausgewählten "
"Laufwerk sind aber nur %.1f Gbyte frei. Möchten Sie trotzdem weitermachen ?"
-#: src/tools/dcpomatic.cc:870
+#: src/tools/dcpomatic.cc:876
msgid "The DCP-o-matic download server could not be contacted."
msgstr "Der DCP-o-matic Download Server ist nicht erreichbar."
-#: src/tools/dcpomatic.cc:296
+#: src/tools/dcpomatic.cc:299
msgid ""
"The directory %1 already exists and is not empty. Are you sure you want to "
"use it?"
"Der Ordner %1 existiert bereits und ist nicht leer. Wollen Sie ihn trotzdem "
"benutzen ?"
-#: src/tools/dcpomatic.cc:865
+#: src/tools/dcpomatic.cc:871
msgid "There are no new versions of DCP-o-matic available."
msgstr "Es ist keine neue Version von DCP-o-matic verfügbar."
-#: src/tools/dcpomatic.cc:509 src/tools/dcpomatic_batch.cc:111
+#: src/tools/dcpomatic.cc:512 src/tools/dcpomatic_batch.cc:111
msgid "There are unfinished jobs; are you sure you want to quit?"
msgstr ""
"Manche Aufgaben sind nicht erledigt - sind Sie sicher, dass Sie Beenden "
"wollen ?"
-#: src/tools/dcpomatic.cc:243
+#: src/tools/dcpomatic.cc:246
msgid ""
"This film was created with an old version of DVD-o-matic and may not load "
"correctly in this version. Please check the film's settings carefully."
"worden und wird in dieser Programmversion möglicherweise nicht korrekt "
"umgesetzt. Bitte prüfen Sie alle Projekteinstellungen sorgfältig!"
-#: src/tools/dcpomatic.cc:510 src/tools/dcpomatic_batch.cc:112
+#: src/tools/dcpomatic.cc:513 src/tools/dcpomatic_batch.cc:112
msgid "Unfinished jobs"
msgstr "Unerledigte Aufgaben"
-#: src/tools/dcpomatic.cc:331 src/tools/dcpomatic_batch.cc:161
+#: src/tools/dcpomatic.cc:334 src/tools/dcpomatic_batch.cc:161
msgid ""
"You did not select a folder. Make sure that you select a folder before "
"clicking Open."
msgstr ""
"Project-Id-Version: DCPOMATIC\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-04-20 10:21-0500\n"
"Last-Translator: Manuel AC <manuel.acevedo@civantos.>\n"
"Language-Team: Manuel AC <manuel.acevedo@civantos.com>\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.4\n"
-#: src/tools/dcpomatic.cc:306
+#: src/tools/dcpomatic.cc:309
msgid "%1 already exists as a file, so you cannot use it for a new film."
msgstr "%1 ya existe como fichero, no puedes usarlo para una nueva pelÃcula."
msgid "&Add Film..."
msgstr "&Añadir pelÃcula..."
-#: src/tools/dcpomatic.cc:652
+#: src/tools/dcpomatic.cc:655
msgid "&Content"
msgstr ""
-#: src/tools/dcpomatic.cc:650
+#: src/tools/dcpomatic.cc:653
msgid "&Edit"
msgstr "&Editar"
-#: src/tools/dcpomatic.cc:614
+#: src/tools/dcpomatic.cc:617
msgid "&Exit"
msgstr "&Salir"
-#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:56
+#: src/tools/dcpomatic.cc:651 src/tools/dcpomatic_batch.cc:56
msgid "&File"
msgstr "&Archivo"
-#: src/tools/dcpomatic.cc:655 src/tools/dcpomatic_batch.cc:57
+#: src/tools/dcpomatic.cc:658 src/tools/dcpomatic_batch.cc:57
msgid "&Help"
msgstr "&Ayuda"
-#: src/tools/dcpomatic.cc:653
+#: src/tools/dcpomatic.cc:656
msgid "&Jobs"
msgstr "&Tareas"
-#: src/tools/dcpomatic.cc:631
+#: src/tools/dcpomatic.cc:634
#, fuzzy
msgid "&Make DCP\tCtrl-M"
msgstr "&Crear DCP\tCtrl-M"
-#: src/tools/dcpomatic.cc:601
+#: src/tools/dcpomatic.cc:604
#, fuzzy
msgid "&Open...\tCtrl-O"
msgstr "&Abrir...\tCtrl-O"
-#: src/tools/dcpomatic.cc:620 src/tools/dcpomatic.cc:623
+#: src/tools/dcpomatic.cc:623 src/tools/dcpomatic.cc:626
#, fuzzy
msgid "&Preferences...\tCtrl-P"
msgstr "&Preferencias...\tCtrl-P"
-#: src/tools/dcpomatic.cc:605
+#: src/tools/dcpomatic.cc:608
msgid "&Properties..."
msgstr "&Propiedades..."
-#: src/tools/dcpomatic.cc:616 src/tools/dcpomatic_batch.cc:51
+#: src/tools/dcpomatic.cc:619 src/tools/dcpomatic_batch.cc:51
msgid "&Quit"
msgstr "&Salir"
-#: src/tools/dcpomatic.cc:603
+#: src/tools/dcpomatic.cc:606
msgid "&Save\tCtrl-S"
msgstr ""
-#: src/tools/dcpomatic.cc:633
+#: src/tools/dcpomatic.cc:636
msgid "&Send DCP to TMS"
msgstr "&Enviar DCP al TMS"
-#: src/tools/dcpomatic.cc:654
+#: src/tools/dcpomatic.cc:657
msgid "&Tools"
msgstr "&Herramientas"
-#: src/tools/dcpomatic.cc:645 src/tools/dcpomatic_batch.cc:54
+#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:54
msgid "About"
msgstr "Acerca de"
-#: src/tools/dcpomatic.cc:643
+#: src/tools/dcpomatic.cc:646
msgid "About DCP-o-matic"
msgstr "Acerca de DVD-o-matic"
msgid "Add Film..."
msgstr "Añadir pelÃcula..."
-#: src/tools/dcpomatic.cc:821
+#: src/tools/dcpomatic.cc:827
#, c-format
msgid ""
"An exception occurred (%s). Please report this problem to the DCP-o-matic "
"author (carl@dcpomatic.com)."
msgstr ""
-#: src/tools/dcpomatic.cc:823 src/tools/dcpomatic.cc:832
+#: src/tools/dcpomatic.cc:829 src/tools/dcpomatic.cc:838
msgid ""
"An unknown exception occurred. Please report this problem to the DCP-o-"
"matic author (carl@dcpomatic.com)."
msgstr ""
-#: src/tools/dcpomatic.cc:418
+#: src/tools/dcpomatic.cc:421
msgid "An unknown exeception occurred."
msgstr "Ha ocurrido un error desconocido."
-#: src/tools/dcpomatic.cc:414
+#: src/tools/dcpomatic.cc:417
msgid "CPL's content is not encrypted."
msgstr ""
-#: src/tools/dcpomatic.cc:639
+#: src/tools/dcpomatic.cc:642
msgid "Check for updates"
msgstr "Buscar actualizaciones"
-#: src/tools/dcpomatic.cc:760 src/tools/dcpomatic_batch.cc:238
+#: src/tools/dcpomatic.cc:766 src/tools/dcpomatic_batch.cc:238
msgid "Could not load film %1 (%2)"
msgstr "No se pudo cargar la pelÃcula %s (%s)"
-#: src/tools/dcpomatic.cc:257 src/tools/dcpomatic_batch.cc:175
+#: src/tools/dcpomatic.cc:260 src/tools/dcpomatic_batch.cc:175
#, c-format
msgid "Could not open film at %s (%s)"
msgstr "No se pudo cargar la pelÃcula en %s (%s)"
-#: src/tools/dcpomatic.cc:464
+#: src/tools/dcpomatic.cc:467
msgid "Could not show DCP (could not run konqueror)"
msgstr "No se pudo mostrar el DCP (no se pudo ejecutar konqueror)"
-#: src/tools/dcpomatic.cc:457
+#: src/tools/dcpomatic.cc:460
msgid "Could not show DCP (could not run nautilus)"
msgstr "No se pudo mostrar el DCP (no se pudo ejecutar nautilos)"
-#: src/tools/dcpomatic.cc:277 src/tools/dcpomatic.cc:715
-#: src/tools/dcpomatic.cc:751
+#: src/tools/dcpomatic.cc:280 src/tools/dcpomatic.cc:721
+#: src/tools/dcpomatic.cc:757
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic Batch Converter"
msgstr "Convertidor por lotes DCP-o-matic"
-#: src/tools/dcpomatic.cc:638
+#: src/tools/dcpomatic.cc:641
msgid "Encoding servers..."
msgstr "Servidores de codificación..."
-#: src/tools/dcpomatic.cc:85
+#: src/tools/dcpomatic.cc:84
msgid "Film changed"
msgstr "PelÃcula cambiada"
-#: src/tools/dcpomatic.cc:637
+#: src/tools/dcpomatic.cc:640
#, fuzzy
msgid "Hints...\tCtrl-H"
msgstr "Pistas...\tCtrl-H"
-#: src/tools/dcpomatic.cc:632
+#: src/tools/dcpomatic.cc:635
#, fuzzy
msgid "Make &KDMs...\tCtrl-K"
msgstr "Crear &KDMs...\tCtrl-K"
-#: src/tools/dcpomatic.cc:600
+#: src/tools/dcpomatic.cc:603
#, fuzzy
msgid "New...\tCtrl-N"
msgstr "Nuevo...\tCtrl-N"
-#: src/tools/dcpomatic.cc:634
+#: src/tools/dcpomatic.cc:637
msgid "S&how DCP"
msgstr "&Mostrar DCP"
-#: src/tools/dcpomatic.cc:84
+#: src/tools/dcpomatic.cc:83
#, c-format
msgid "Save changes to film \"%s\" before closing?"
msgstr "Guardar cambios de la pelÃcula \"%s\" antes de cerrar?"
-#: src/tools/dcpomatic.cc:628
+#: src/tools/dcpomatic.cc:631
msgid "Scale to fit &height"
msgstr ""
-#: src/tools/dcpomatic.cc:627
+#: src/tools/dcpomatic.cc:630
msgid "Scale to fit &width"
msgstr ""
-#: src/tools/dcpomatic.cc:322 src/tools/dcpomatic_batch.cc:152
+#: src/tools/dcpomatic.cc:325 src/tools/dcpomatic_batch.cc:152
msgid "Select film to open"
msgstr "Selecciona la pelÃcula a abrir"
-#: src/tools/dcpomatic.cc:385
+#: src/tools/dcpomatic.cc:388
#, c-format
msgid ""
"The DCP for this film will take up about %.1f Gb, and the disk that you are "
"seleccionado solo tiene %.1f Gb disponibles. Quieres continuar de todas "
"formas?"
-#: src/tools/dcpomatic.cc:870
+#: src/tools/dcpomatic.cc:876
msgid "The DCP-o-matic download server could not be contacted."
msgstr "Imposible conectar con el servidor de descarga de DCP-o-matic."
-#: src/tools/dcpomatic.cc:296
+#: src/tools/dcpomatic.cc:299
msgid ""
"The directory %1 already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
"El directorio %1 ya existe y no está vacÃo. ¿Estás seguro de querer usarlo?"
-#: src/tools/dcpomatic.cc:865
+#: src/tools/dcpomatic.cc:871
msgid "There are no new versions of DCP-o-matic available."
msgstr "No hay disponibles nuevas versiones de DCP-o-matic."
-#: src/tools/dcpomatic.cc:509 src/tools/dcpomatic_batch.cc:111
+#: src/tools/dcpomatic.cc:512 src/tools/dcpomatic_batch.cc:111
msgid "There are unfinished jobs; are you sure you want to quit?"
msgstr "Hay trabajos sin finalizar; ¿estás seguro de querer cerrar?"
-#: src/tools/dcpomatic.cc:243
+#: src/tools/dcpomatic.cc:246
msgid ""
"This film was created with an old version of DVD-o-matic and may not load "
"correctly in this version. Please check the film's settings carefully."
"cargue correctamente en esta versión. Por favor revisa cuidadosamente las "
"opciones."
-#: src/tools/dcpomatic.cc:510 src/tools/dcpomatic_batch.cc:112
+#: src/tools/dcpomatic.cc:513 src/tools/dcpomatic_batch.cc:112
msgid "Unfinished jobs"
msgstr "Trabajos sin finalizar"
-#: src/tools/dcpomatic.cc:331 src/tools/dcpomatic_batch.cc:161
+#: src/tools/dcpomatic.cc:334 src/tools/dcpomatic_batch.cc:161
msgid ""
"You did not select a folder. Make sure that you select a folder before "
"clicking Open."
msgstr ""
"Project-Id-Version: DCP-o-matic FRENCH\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-07-14 10:43+0100\n"
"Last-Translator: Grégoire AUSINA <gregoire@gisele-productions.eu>\n"
"Language-Team: \n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.6\n"
-#: src/tools/dcpomatic.cc:306
+#: src/tools/dcpomatic.cc:309
msgid "%1 already exists as a file, so you cannot use it for a new film."
msgstr ""
"Le fichier %1 existe déjà , vous ne pouvez l'utiliser pour un nouveau projet."
msgid "&Add Film..."
msgstr "&Ajouter Film..."
-#: src/tools/dcpomatic.cc:652
+#: src/tools/dcpomatic.cc:655
msgid "&Content"
msgstr "&Contenu"
-#: src/tools/dcpomatic.cc:650
+#: src/tools/dcpomatic.cc:653
msgid "&Edit"
msgstr "&Edition"
-#: src/tools/dcpomatic.cc:614
+#: src/tools/dcpomatic.cc:617
msgid "&Exit"
msgstr "&Quitter"
-#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:56
+#: src/tools/dcpomatic.cc:651 src/tools/dcpomatic_batch.cc:56
msgid "&File"
msgstr "&Fichier"
-#: src/tools/dcpomatic.cc:655 src/tools/dcpomatic_batch.cc:57
+#: src/tools/dcpomatic.cc:658 src/tools/dcpomatic_batch.cc:57
msgid "&Help"
msgstr "&Aide"
-#: src/tools/dcpomatic.cc:653
+#: src/tools/dcpomatic.cc:656
msgid "&Jobs"
msgstr "&Travaux"
-#: src/tools/dcpomatic.cc:631
+#: src/tools/dcpomatic.cc:634
#, fuzzy
msgid "&Make DCP\tCtrl-M"
msgstr "&Créer le DCP\tCtrl-M"
-#: src/tools/dcpomatic.cc:601
+#: src/tools/dcpomatic.cc:604
#, fuzzy
msgid "&Open...\tCtrl-O"
msgstr "&Ouvrir...\tCtrl-O"
-#: src/tools/dcpomatic.cc:620 src/tools/dcpomatic.cc:623
+#: src/tools/dcpomatic.cc:623 src/tools/dcpomatic.cc:626
#, fuzzy
msgid "&Preferences...\tCtrl-P"
msgstr "&Préférences...\tCtrl-P"
-#: src/tools/dcpomatic.cc:605
+#: src/tools/dcpomatic.cc:608
msgid "&Properties..."
msgstr "&Propriétés..."
-#: src/tools/dcpomatic.cc:616 src/tools/dcpomatic_batch.cc:51
+#: src/tools/dcpomatic.cc:619 src/tools/dcpomatic_batch.cc:51
msgid "&Quit"
msgstr "&Quitter"
-#: src/tools/dcpomatic.cc:603
+#: src/tools/dcpomatic.cc:606
msgid "&Save\tCtrl-S"
msgstr ""
-#: src/tools/dcpomatic.cc:633
+#: src/tools/dcpomatic.cc:636
msgid "&Send DCP to TMS"
msgstr "&Envoyer le DCP au TMS"
-#: src/tools/dcpomatic.cc:654
+#: src/tools/dcpomatic.cc:657
msgid "&Tools"
msgstr "&Outils"
-#: src/tools/dcpomatic.cc:645 src/tools/dcpomatic_batch.cc:54
+#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:54
msgid "About"
msgstr "A propos"
-#: src/tools/dcpomatic.cc:643
+#: src/tools/dcpomatic.cc:646
msgid "About DCP-o-matic"
msgstr "À propos de DCP-o-matic"
msgid "Add Film..."
msgstr "Ajouter Film..."
-#: src/tools/dcpomatic.cc:821
+#: src/tools/dcpomatic.cc:827
#, fuzzy, c-format
msgid ""
"An exception occurred (%s). Please report this problem to the DCP-o-matic "
"Erreur indéterminée. Merci de rapporter le problème à l'auteur de DCP-o-"
"matic (carl@dcpomatic.com)."
-#: src/tools/dcpomatic.cc:823 src/tools/dcpomatic.cc:832
+#: src/tools/dcpomatic.cc:829 src/tools/dcpomatic.cc:838
msgid ""
"An unknown exception occurred. Please report this problem to the DCP-o-"
"matic author (carl@dcpomatic.com)."
"Erreur indéterminée. Merci de rapporter le problème à l'auteur de DCP-o-"
"matic (carl@dcpomatic.com)."
-#: src/tools/dcpomatic.cc:418
+#: src/tools/dcpomatic.cc:421
msgid "An unknown exeception occurred."
msgstr "Exception inconnue"
-#: src/tools/dcpomatic.cc:414
+#: src/tools/dcpomatic.cc:417
msgid "CPL's content is not encrypted."
msgstr "Le contenu du CPL n'est pas crypté."
-#: src/tools/dcpomatic.cc:639
+#: src/tools/dcpomatic.cc:642
msgid "Check for updates"
msgstr "Recherche mises à jour"
-#: src/tools/dcpomatic.cc:760 src/tools/dcpomatic_batch.cc:238
+#: src/tools/dcpomatic.cc:766 src/tools/dcpomatic_batch.cc:238
msgid "Could not load film %1 (%2)"
msgstr "Impossible de charger le film %1 (%2)"
-#: src/tools/dcpomatic.cc:257 src/tools/dcpomatic_batch.cc:175
+#: src/tools/dcpomatic.cc:260 src/tools/dcpomatic_batch.cc:175
#, c-format
msgid "Could not open film at %s (%s)"
msgstr "Impossible d'ouvrir le film à %s (%s)"
-#: src/tools/dcpomatic.cc:464
+#: src/tools/dcpomatic.cc:467
msgid "Could not show DCP (could not run konqueror)"
msgstr "Ouverture du DCP impossible (konqueror est introuvable)"
-#: src/tools/dcpomatic.cc:457
+#: src/tools/dcpomatic.cc:460
msgid "Could not show DCP (could not run nautilus)"
msgstr "Ouverture du DCP impossible (nautilus est introuvable)"
-#: src/tools/dcpomatic.cc:277 src/tools/dcpomatic.cc:715
-#: src/tools/dcpomatic.cc:751
+#: src/tools/dcpomatic.cc:280 src/tools/dcpomatic.cc:721
+#: src/tools/dcpomatic.cc:757
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic Batch Converter"
msgstr "DCP-o-matic - Convertisseur par lots"
-#: src/tools/dcpomatic.cc:638
+#: src/tools/dcpomatic.cc:641
msgid "Encoding servers..."
msgstr "Serveurs d'encodage"
-#: src/tools/dcpomatic.cc:85
+#: src/tools/dcpomatic.cc:84
msgid "Film changed"
msgstr "Film changé"
-#: src/tools/dcpomatic.cc:637
+#: src/tools/dcpomatic.cc:640
#, fuzzy
msgid "Hints...\tCtrl-H"
msgstr "Conseils...\tCtrl-H"
-#: src/tools/dcpomatic.cc:632
+#: src/tools/dcpomatic.cc:635
msgid "Make &KDMs...\tCtrl-K"
msgstr "Générer &KDMs...\tCtrl-K"
-#: src/tools/dcpomatic.cc:600
+#: src/tools/dcpomatic.cc:603
msgid "New...\tCtrl-N"
msgstr "Nouveau...\tCtrl-N"
-#: src/tools/dcpomatic.cc:634
+#: src/tools/dcpomatic.cc:637
msgid "S&how DCP"
msgstr "Voir le DCP"
-#: src/tools/dcpomatic.cc:84
+#: src/tools/dcpomatic.cc:83
#, c-format
msgid "Save changes to film \"%s\" before closing?"
msgstr "Enregistrer les changements du film \"%s\" avant de fermer ?"
-#: src/tools/dcpomatic.cc:628
+#: src/tools/dcpomatic.cc:631
msgid "Scale to fit &height"
msgstr "Adapter pour remplir la &hauteur"
-#: src/tools/dcpomatic.cc:627
+#: src/tools/dcpomatic.cc:630
msgid "Scale to fit &width"
msgstr "Adapter pour remplir la largeur"
-#: src/tools/dcpomatic.cc:322 src/tools/dcpomatic_batch.cc:152
+#: src/tools/dcpomatic.cc:325 src/tools/dcpomatic_batch.cc:152
msgid "Select film to open"
msgstr "Sélectionner le film à ouvrir"
-#: src/tools/dcpomatic.cc:385
+#: src/tools/dcpomatic.cc:388
#, c-format
msgid ""
"The DCP for this film will take up about %.1f Gb, and the disk that you are "
"Le DCP de ce film pèsera environ %.1f Go. Le disque que vous utilisez n'a "
"que %.1f Go disponible(s). Souhaitez-vous continuer?"
-#: src/tools/dcpomatic.cc:870
+#: src/tools/dcpomatic.cc:876
msgid "The DCP-o-matic download server could not be contacted."
msgstr "Le serveur de téléchargement de DCP-o-matic ne peut être contacté."
-#: src/tools/dcpomatic.cc:296
+#: src/tools/dcpomatic.cc:299
msgid ""
"The directory %1 already exists and is not empty. Are you sure you want to "
"use it?"
msgstr ""
"Le dossier %1 existe et n'est pas vide. Etes-vous sûr de vouloir l'utiliser ?"
-#: src/tools/dcpomatic.cc:865
+#: src/tools/dcpomatic.cc:871
msgid "There are no new versions of DCP-o-matic available."
msgstr "Aucune mise à jour disponible pour DCP-o-matic."
-#: src/tools/dcpomatic.cc:509 src/tools/dcpomatic_batch.cc:111
+#: src/tools/dcpomatic.cc:512 src/tools/dcpomatic_batch.cc:111
msgid "There are unfinished jobs; are you sure you want to quit?"
msgstr "Il y a des tâches inachevées ; voulez-vous vraiment quitter ?"
-#: src/tools/dcpomatic.cc:243
+#: src/tools/dcpomatic.cc:246
msgid ""
"This film was created with an old version of DVD-o-matic and may not load "
"correctly in this version. Please check the film's settings carefully."
"être ouvert correctement dans cette version. Veuillez vérifier les "
"paramètres de réglages très attentivement."
-#: src/tools/dcpomatic.cc:510 src/tools/dcpomatic_batch.cc:112
+#: src/tools/dcpomatic.cc:513 src/tools/dcpomatic_batch.cc:112
msgid "Unfinished jobs"
msgstr "Travaux incomplets"
-#: src/tools/dcpomatic.cc:331 src/tools/dcpomatic_batch.cc:161
+#: src/tools/dcpomatic.cc:334 src/tools/dcpomatic_batch.cc:161
msgid ""
"You did not select a folder. Make sure that you select a folder before "
"clicking Open."
msgstr ""
"Project-Id-Version: IT VERSION\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-02-03 09:36+0100\n"
"Last-Translator: William Fanelli <william.f@impronte.com>\n"
"Language-Team: \n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.3\n"
-#: src/tools/dcpomatic.cc:306
+#: src/tools/dcpomatic.cc:309
msgid "%1 already exists as a file, so you cannot use it for a new film."
msgstr "%1 esiste già il file, non è possibile usarlo per un nuovo film"
msgid "&Add Film..."
msgstr ""
-#: src/tools/dcpomatic.cc:652
+#: src/tools/dcpomatic.cc:655
msgid "&Content"
msgstr ""
-#: src/tools/dcpomatic.cc:650
+#: src/tools/dcpomatic.cc:653
msgid "&Edit"
msgstr "&Modifica"
-#: src/tools/dcpomatic.cc:614
+#: src/tools/dcpomatic.cc:617
msgid "&Exit"
msgstr "&Esci"
-#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:56
+#: src/tools/dcpomatic.cc:651 src/tools/dcpomatic_batch.cc:56
msgid "&File"
msgstr "&File"
-#: src/tools/dcpomatic.cc:655 src/tools/dcpomatic_batch.cc:57
+#: src/tools/dcpomatic.cc:658 src/tools/dcpomatic_batch.cc:57
msgid "&Help"
msgstr "&Aiuto"
-#: src/tools/dcpomatic.cc:653
+#: src/tools/dcpomatic.cc:656
msgid "&Jobs"
msgstr "&Lavori"
-#: src/tools/dcpomatic.cc:631
+#: src/tools/dcpomatic.cc:634
msgid "&Make DCP\tCtrl-M"
msgstr "&Crea DCP\tCtrl-M"
-#: src/tools/dcpomatic.cc:601
+#: src/tools/dcpomatic.cc:604
msgid "&Open...\tCtrl-O"
msgstr "&Apri...\tCtrl-O"
-#: src/tools/dcpomatic.cc:620 src/tools/dcpomatic.cc:623
+#: src/tools/dcpomatic.cc:623 src/tools/dcpomatic.cc:626
msgid "&Preferences...\tCtrl-P"
msgstr "&Preferenze...\tCtrl-P"
-#: src/tools/dcpomatic.cc:605
+#: src/tools/dcpomatic.cc:608
msgid "&Properties..."
msgstr "&Proprieta'..."
-#: src/tools/dcpomatic.cc:616 src/tools/dcpomatic_batch.cc:51
+#: src/tools/dcpomatic.cc:619 src/tools/dcpomatic_batch.cc:51
msgid "&Quit"
msgstr "&Esci"
-#: src/tools/dcpomatic.cc:603
+#: src/tools/dcpomatic.cc:606
msgid "&Save\tCtrl-S"
msgstr ""
-#: src/tools/dcpomatic.cc:633
+#: src/tools/dcpomatic.cc:636
msgid "&Send DCP to TMS"
msgstr "&Invia DCP a TMS"
-#: src/tools/dcpomatic.cc:654
+#: src/tools/dcpomatic.cc:657
msgid "&Tools"
msgstr "&Strumenti"
-#: src/tools/dcpomatic.cc:645 src/tools/dcpomatic_batch.cc:54
+#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:54
msgid "About"
msgstr "Informazioni"
-#: src/tools/dcpomatic.cc:643
+#: src/tools/dcpomatic.cc:646
msgid "About DCP-o-matic"
msgstr "Su DVD-o-matic"
msgid "Add Film..."
msgstr ""
-#: src/tools/dcpomatic.cc:821
+#: src/tools/dcpomatic.cc:827
#, c-format
msgid ""
"An exception occurred (%s). Please report this problem to the DCP-o-matic "
"author (carl@dcpomatic.com)."
msgstr ""
-#: src/tools/dcpomatic.cc:823 src/tools/dcpomatic.cc:832
+#: src/tools/dcpomatic.cc:829 src/tools/dcpomatic.cc:838
msgid ""
"An unknown exception occurred. Please report this problem to the DCP-o-"
"matic author (carl@dcpomatic.com)."
msgstr ""
-#: src/tools/dcpomatic.cc:418
+#: src/tools/dcpomatic.cc:421
msgid "An unknown exeception occurred."
msgstr ""
-#: src/tools/dcpomatic.cc:414
+#: src/tools/dcpomatic.cc:417
msgid "CPL's content is not encrypted."
msgstr ""
-#: src/tools/dcpomatic.cc:639
+#: src/tools/dcpomatic.cc:642
msgid "Check for updates"
msgstr "Controlla aggiornamenti"
-#: src/tools/dcpomatic.cc:760 src/tools/dcpomatic_batch.cc:238
+#: src/tools/dcpomatic.cc:766 src/tools/dcpomatic_batch.cc:238
msgid "Could not load film %1 (%2)"
msgstr "Non posso caricare il film %s (%s)"
-#: src/tools/dcpomatic.cc:257 src/tools/dcpomatic_batch.cc:175
+#: src/tools/dcpomatic.cc:260 src/tools/dcpomatic_batch.cc:175
#, c-format
msgid "Could not open film at %s (%s)"
msgstr "Non posso aprire il film in %s (%s)"
-#: src/tools/dcpomatic.cc:464
+#: src/tools/dcpomatic.cc:467
msgid "Could not show DCP (could not run konqueror)"
msgstr ""
-#: src/tools/dcpomatic.cc:457
+#: src/tools/dcpomatic.cc:460
msgid "Could not show DCP (could not run nautilus)"
msgstr ""
-#: src/tools/dcpomatic.cc:277 src/tools/dcpomatic.cc:715
-#: src/tools/dcpomatic.cc:751
+#: src/tools/dcpomatic.cc:280 src/tools/dcpomatic.cc:721
+#: src/tools/dcpomatic.cc:757
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic Batch Converter"
msgstr ""
-#: src/tools/dcpomatic.cc:638
+#: src/tools/dcpomatic.cc:641
msgid "Encoding servers..."
msgstr ""
-#: src/tools/dcpomatic.cc:85
+#: src/tools/dcpomatic.cc:84
msgid "Film changed"
msgstr "Film modificato"
-#: src/tools/dcpomatic.cc:637
+#: src/tools/dcpomatic.cc:640
msgid "Hints...\tCtrl-H"
msgstr "Suggerimenti...\tCtrl-H"
-#: src/tools/dcpomatic.cc:632
+#: src/tools/dcpomatic.cc:635
msgid "Make &KDMs...\tCtrl-K"
msgstr ""
-#: src/tools/dcpomatic.cc:600
+#: src/tools/dcpomatic.cc:603
msgid "New...\tCtrl-N"
msgstr "Nuovo...\tCtrl-N"
-#: src/tools/dcpomatic.cc:634
+#: src/tools/dcpomatic.cc:637
msgid "S&how DCP"
msgstr "&Mostra DCP"
-#: src/tools/dcpomatic.cc:84
+#: src/tools/dcpomatic.cc:83
#, c-format
msgid "Save changes to film \"%s\" before closing?"
msgstr "Salvare i cambiamenti del film \"%s\" prima di chiudere?"
-#: src/tools/dcpomatic.cc:628
+#: src/tools/dcpomatic.cc:631
msgid "Scale to fit &height"
msgstr ""
-#: src/tools/dcpomatic.cc:627
+#: src/tools/dcpomatic.cc:630
msgid "Scale to fit &width"
msgstr ""
-#: src/tools/dcpomatic.cc:322 src/tools/dcpomatic_batch.cc:152
+#: src/tools/dcpomatic.cc:325 src/tools/dcpomatic_batch.cc:152
msgid "Select film to open"
msgstr "Seleziona il film da aprire"
-#: src/tools/dcpomatic.cc:385
+#: src/tools/dcpomatic.cc:388
#, c-format
msgid ""
"The DCP for this film will take up about %.1f Gb, and the disk that you are "
"Il DCP di questo film occupa %.1f Gb, ma il disco che stai usando dispone di "
"%.1f Gb liberi. Vuoi continuare ugualmente?"
-#: src/tools/dcpomatic.cc:870
+#: src/tools/dcpomatic.cc:876
msgid "The DCP-o-matic download server could not be contacted."
msgstr "Il download server di DCP-o-matic non può essere contattato."
-#: src/tools/dcpomatic.cc:296
+#: src/tools/dcpomatic.cc:299
msgid ""
"The directory %1 already exists and is not empty. Are you sure you want to "
"use it?"
msgstr "La cartella %1 esiste già e non è vuota. Sei sicuro di volerla usare?"
-#: src/tools/dcpomatic.cc:865
+#: src/tools/dcpomatic.cc:871
msgid "There are no new versions of DCP-o-matic available."
msgstr "Non ci sono nuove versioni di DCP-o-matic disponibili."
-#: src/tools/dcpomatic.cc:509 src/tools/dcpomatic_batch.cc:111
+#: src/tools/dcpomatic.cc:512 src/tools/dcpomatic_batch.cc:111
msgid "There are unfinished jobs; are you sure you want to quit?"
msgstr "C'è un processo in corso: sei sicuro di voler uscire?"
-#: src/tools/dcpomatic.cc:243
+#: src/tools/dcpomatic.cc:246
msgid ""
"This film was created with an old version of DVD-o-matic and may not load "
"correctly in this version. Please check the film's settings carefully."
msgstr ""
-#: src/tools/dcpomatic.cc:510 src/tools/dcpomatic_batch.cc:112
+#: src/tools/dcpomatic.cc:513 src/tools/dcpomatic_batch.cc:112
msgid "Unfinished jobs"
msgstr "Processo in corso"
-#: src/tools/dcpomatic.cc:331 src/tools/dcpomatic_batch.cc:161
+#: src/tools/dcpomatic.cc:334 src/tools/dcpomatic_batch.cc:161
msgid ""
"You did not select a folder. Make sure that you select a folder before "
"clicking Open."
msgstr ""
"Project-Id-Version: DCP-o-matic\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-09-04 20:29+0100\n"
"Last-Translator: Cherif Ben Brahim <firehc@mac.com>\n"
"Language-Team: UniversalDV <Tkooijmans@universaldv.nl>\n"
"X-Generator: Poedit 1.6.9\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: src/tools/dcpomatic.cc:306
+#: src/tools/dcpomatic.cc:309
msgid "%1 already exists as a file, so you cannot use it for a new film."
msgstr ""
"%1 Dit bestand bestaat al, hierdoor kunt u het niet gebruiken voor een "
msgid "&Add Film..."
msgstr "Open een DCP map"
-#: src/tools/dcpomatic.cc:652
+#: src/tools/dcpomatic.cc:655
msgid "&Content"
msgstr "&Content"
-#: src/tools/dcpomatic.cc:650
+#: src/tools/dcpomatic.cc:653
msgid "&Edit"
msgstr "&Edit"
-#: src/tools/dcpomatic.cc:614
+#: src/tools/dcpomatic.cc:617
msgid "&Exit"
msgstr "&Afsluiten"
-#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:56
+#: src/tools/dcpomatic.cc:651 src/tools/dcpomatic_batch.cc:56
msgid "&File"
msgstr "&Bestand"
-#: src/tools/dcpomatic.cc:655 src/tools/dcpomatic_batch.cc:57
+#: src/tools/dcpomatic.cc:658 src/tools/dcpomatic_batch.cc:57
msgid "&Help"
msgstr "&Help"
-#: src/tools/dcpomatic.cc:653
+#: src/tools/dcpomatic.cc:656
msgid "&Jobs"
msgstr "&Projecten"
- #: src/tools/dcpomatic.cc:634
+ #: src/tools/dcpomatic.cc:631
msgid "&Make DCP\tCtrl-M"
msgstr "&Maak een DCP\tCtrl-M"
-#: src/tools/dcpomatic.cc:601
+#: src/tools/dcpomatic.cc:604
msgid "&Open...\tCtrl-O"
msgstr "&Openen...\tCtrl-O"
-#: src/tools/dcpomatic.cc:620 src/tools/dcpomatic.cc:623
+#: src/tools/dcpomatic.cc:623 src/tools/dcpomatic.cc:626
msgid "&Preferences...\tCtrl-P"
msgstr "&Voorkeuren...\tCtrl-P"
-#: src/tools/dcpomatic.cc:605
+#: src/tools/dcpomatic.cc:608
msgid "&Properties..."
msgstr "&Instellingen..."
-#: src/tools/dcpomatic.cc:616 src/tools/dcpomatic_batch.cc:51
+#: src/tools/dcpomatic.cc:619 src/tools/dcpomatic_batch.cc:51
msgid "&Quit"
msgstr "&Afsluiten"
-#: src/tools/dcpomatic.cc:603
+#: src/tools/dcpomatic.cc:606
msgid "&Save\tCtrl-S"
msgstr ""
-#: src/tools/dcpomatic.cc:633
+#: src/tools/dcpomatic.cc:636
msgid "&Send DCP to TMS"
msgstr "&Verstuur DCP naar TMS"
-#: src/tools/dcpomatic.cc:654
+#: src/tools/dcpomatic.cc:657
msgid "&Tools"
msgstr "&Gereedschappen"
-#: src/tools/dcpomatic.cc:645 src/tools/dcpomatic_batch.cc:54
+#: src/tools/dcpomatic.cc:648 src/tools/dcpomatic_batch.cc:54
msgid "About"
msgstr "Over.."
-#: src/tools/dcpomatic.cc:643
+#: src/tools/dcpomatic.cc:646
msgid "About DCP-o-matic"
msgstr "Over DCP-o-matic"
msgid "Add Film..."
msgstr "Voeg Film Toe"
-#: src/tools/dcpomatic.cc:821
+#: src/tools/dcpomatic.cc:827
#, fuzzy, c-format
msgid ""
"An exception occurred (%s). Please report this problem to the DCP-o-matic "
"Een ongekende fout is opgetreden. AUB meld deze aan de maker van DCP-o-matic "
"(carl@dcpomatic.com)."
-#: src/tools/dcpomatic.cc:823 src/tools/dcpomatic.cc:832
+#: src/tools/dcpomatic.cc:829 src/tools/dcpomatic.cc:838
msgid ""
"An unknown exception occurred. Please report this problem to the DCP-o-"
"matic author (carl@dcpomatic.com)."
"Een ongekende fout is opgetreden. AUB meld deze aan de maker van DCP-o-matic "
"(carl@dcpomatic.com)."
-#: src/tools/dcpomatic.cc:418
+#: src/tools/dcpomatic.cc:421
msgid "An unknown exeception occurred."
msgstr "Er is een onbekende fout opgetreden."
-#: src/tools/dcpomatic.cc:414
+#: src/tools/dcpomatic.cc:417
msgid "CPL's content is not encrypted."
msgstr "De inhoud van de CPL is niet geëncrypteerd."
-#: src/tools/dcpomatic.cc:639
+#: src/tools/dcpomatic.cc:642
msgid "Check for updates"
msgstr "Controleer op updates"
-#: src/tools/dcpomatic.cc:760 src/tools/dcpomatic_batch.cc:238
+#: src/tools/dcpomatic.cc:766 src/tools/dcpomatic_batch.cc:238
msgid "Could not load film %1 (%2)"
msgstr "Kan film niet openen %1 (%2)"
-#: src/tools/dcpomatic.cc:257 src/tools/dcpomatic_batch.cc:175
+#: src/tools/dcpomatic.cc:260 src/tools/dcpomatic_batch.cc:175
#, c-format
msgid "Could not open film at %s (%s)"
msgstr "Kan film niet openen in %s (%s)"
-#: src/tools/dcpomatic.cc:464
+#: src/tools/dcpomatic.cc:467
msgid "Could not show DCP (could not run konqueror)"
msgstr "Kan DCP niet vertonen (Kan Konqueror niet starten)"
-#: src/tools/dcpomatic.cc:457
+#: src/tools/dcpomatic.cc:460
msgid "Could not show DCP (could not run nautilus)"
msgstr "Kan DCP niet vertonen (Kan Nautilus niet starten)"
-#: src/tools/dcpomatic.cc:277 src/tools/dcpomatic.cc:715
-#: src/tools/dcpomatic.cc:751
+#: src/tools/dcpomatic.cc:280 src/tools/dcpomatic.cc:721
+#: src/tools/dcpomatic.cc:757
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic Batch Converter"
msgstr "DCP-o-matic Bulk Omzetter"
-#: src/tools/dcpomatic.cc:638
+#: src/tools/dcpomatic.cc:641
msgid "Encoding servers..."
msgstr "Render servers..."
-#: src/tools/dcpomatic.cc:85
+#: src/tools/dcpomatic.cc:84
msgid "Film changed"
msgstr "Film is veranderd"
-#: src/tools/dcpomatic.cc:637
+#: src/tools/dcpomatic.cc:640
msgid "Hints...\tCtrl-H"
msgstr "Tips...\tCtrl-H"
-#: src/tools/dcpomatic.cc:632
+#: src/tools/dcpomatic.cc:635
msgid "Make &KDMs...\tCtrl-K"
msgstr "Maak &KDMs...\tCtrl-K"
-#: src/tools/dcpomatic.cc:600
+#: src/tools/dcpomatic.cc:603
msgid "New...\tCtrl-N"
msgstr "Nieuw...\tCtrl-N"
-#: src/tools/dcpomatic.cc:634
+#: src/tools/dcpomatic.cc:637
msgid "S&how DCP"
msgstr "S&hoe DCP"
-#: src/tools/dcpomatic.cc:84
+#: src/tools/dcpomatic.cc:83
#, c-format
msgid "Save changes to film \"%s\" before closing?"
msgstr "Bewaar veranderingen naar film \"%s\" voor afsluiten?"
-#: src/tools/dcpomatic.cc:628
+#: src/tools/dcpomatic.cc:631
msgid "Scale to fit &height"
msgstr "Scaal naar &height"
-#: src/tools/dcpomatic.cc:627
+#: src/tools/dcpomatic.cc:630
msgid "Scale to fit &width"
msgstr "Schaal naar &width"
-#: src/tools/dcpomatic.cc:322 src/tools/dcpomatic_batch.cc:152
+#: src/tools/dcpomatic.cc:325 src/tools/dcpomatic_batch.cc:152
msgid "Select film to open"
msgstr "Kies een film om te openen"
-#: src/tools/dcpomatic.cc:385
+#: src/tools/dcpomatic.cc:388
#, c-format
msgid ""
"The DCP for this film will take up about %.1f Gb, and the disk that you are "
"De DCP voor deze film neemt ongeveer %.1f Gb in beslag, er is echter maar "
"%.1f Gb beschikbaar. Wilt u toch doorgaan?"
-#: src/tools/dcpomatic.cc:870
+#: src/tools/dcpomatic.cc:876
msgid "The DCP-o-matic download server could not be contacted."
msgstr "De verbinding met de DCP-o-matic download server is niet beschikbaar."
-#: src/tools/dcpomatic.cc:296
+#: src/tools/dcpomatic.cc:299
msgid ""
"The directory %1 already exists and is not empty. Are you sure you want to "
"use it?"
msgstr "De map %1 bestaat al en is niet leeg. Wilt u deze toch gebruiken?"
-#: src/tools/dcpomatic.cc:865
+#: src/tools/dcpomatic.cc:871
msgid "There are no new versions of DCP-o-matic available."
msgstr "Er is geen nieuwere versie van DCP-o-matic beschikbaar."
-#: src/tools/dcpomatic.cc:509 src/tools/dcpomatic_batch.cc:111
+#: src/tools/dcpomatic.cc:512 src/tools/dcpomatic_batch.cc:111
msgid "There are unfinished jobs; are you sure you want to quit?"
msgstr ""
"Er zijn nog niet afgeronde projecten, weet u zeker dat u wilt afsluiten?"
-#: src/tools/dcpomatic.cc:243
+#: src/tools/dcpomatic.cc:246
msgid ""
"This film was created with an old version of DVD-o-matic and may not load "
"correctly in this version. Please check the film's settings carefully."
"Deze film is gemaakt met een oude versie van DCP-o-matic en opent mogelijk "
"niet goed in de huidige versie. Controleer alle instellingen zorgvuldig."
-#: src/tools/dcpomatic.cc:510 src/tools/dcpomatic_batch.cc:112
+#: src/tools/dcpomatic.cc:513 src/tools/dcpomatic_batch.cc:112
msgid "Unfinished jobs"
msgstr "Niet afgemaakte projecten"
-#: src/tools/dcpomatic.cc:331 src/tools/dcpomatic_batch.cc:161
+#: src/tools/dcpomatic.cc:334 src/tools/dcpomatic_batch.cc:161
msgid ""
"You did not select a folder. Make sure that you select a folder before "
"clicking Open."
/*
- Copyright (C) 2013 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2014 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
*/
+/** @file src/wx/about_dialog.cc
+ * @brief The "about DCP-o-matic" dialogue box.
+ */
+
#include <wx/notebook.h>
#include <wx/hyperlink.h>
#include "lib/version.h"
supported_by.Add (wxT ("Wolfram Weber"));
supported_by.Add (wxT ("Frank de Wulf"));
supported_by.Add (wxT ("Pavel Zhdanko"));
+ supported_by.Add (wxT ("Daniel Židek"));
add_section (_("Supported by"), supported_by);
wxArrayString tested_by;
SetSizerAndFit (overall_sizer);
}
+/** Add a section of credits.
+ * @param name Name of section.
+ * @param credits List of names.
+ */
void
AboutDialog::add_section (wxString name, wxArrayString credits)
{
/*
- Copyright (C) 2012-2013 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2014 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
#include <boost/lexical_cast.hpp>
#include <wx/spinctrl.h>
#include "lib/config.h"
-#include "lib/sound_processor.h"
#include "lib/ffmpeg_content.h"
+#include "lib/ffmpeg_audio_stream.h"
+#include "lib/audio_processor.h"
+#include "lib/cinema_sound_processor.h"
#include "audio_dialog.h"
#include "audio_panel.h"
#include "audio_mapping_view.h"
#include "wx_util.h"
#include "gain_calculator_dialog.h"
-#include "film_editor.h"
+#include "content_panel.h"
using std::vector;
using std::cout;
using std::string;
+using std::list;
using boost::dynamic_pointer_cast;
using boost::lexical_cast;
using boost::shared_ptr;
-AudioPanel::AudioPanel (FilmEditor* e)
- : FilmEditorPanel (e, _("Audio"))
+AudioPanel::AudioPanel (ContentPanel* p)
+ : ContentSubPanel (p, _("Audio"))
, _audio_dialog (0)
{
wxGridBagSizer* grid = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
add_label_to_grid_bag_sizer (grid, this, _("Stream"), true, wxGBPosition (r, 0));
_stream = new wxChoice (this, wxID_ANY);
- grid->Add (_stream, wxGBPosition (r, 1));
- _stream_description = add_label_to_grid_bag_sizer (grid, this, "", false, wxGBPosition (r, 3));
+ grid->Add (_stream, wxGBPosition (r, 1), wxGBSpan (1, 3), wxEXPAND);
+ ++r;
+
+ add_label_to_grid_bag_sizer (grid, this, _("Process with"), true, wxGBPosition (r, 0));
+ _processor = new wxChoice (this, wxID_ANY);
+ setup_processors ();
+ grid->Add (_processor, wxGBPosition (r, 1), wxGBSpan (1, 3), wxEXPAND);
++r;
_mapping = new AudioMappingView (this);
_sizer->Add (_mapping, 1, wxEXPAND | wxALL, 6);
+ ++r;
+
+ _description = new wxStaticText (this, wxID_ANY, wxT (" \n"), wxDefaultPosition, wxDefaultSize);
+ _sizer->Add (_description, 0, wxALL, 12);
+ wxFont font = _description->GetFont();
+ font.SetStyle (wxFONTSTYLE_ITALIC);
+ font.SetPointSize (font.GetPointSize() - 1);
+ _description->SetFont (font);
+ ++r;
_gain->wrapped()->SetRange (-60, 60);
_gain->wrapped()->SetDigits (1);
_gain->wrapped()->SetIncrement (0.5);
_delay->wrapped()->SetRange (-1000, 1000);
- _stream->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&AudioPanel::stream_changed, this));
- _show->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&AudioPanel::show_clicked, this));
- _gain_calculate_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&AudioPanel::gain_calculate_button_clicked, this));
+ _stream->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&AudioPanel::stream_changed, this));
+ _show->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&AudioPanel::show_clicked, this));
+ _gain_calculate_button->Bind (wxEVT_COMMAND_BUTTON_CLICKED, boost::bind (&AudioPanel::gain_calculate_button_clicked, this));
+ _processor->Bind (wxEVT_COMMAND_CHOICE_SELECTED, boost::bind (&AudioPanel::processor_changed, this));
_mapping->Changed.connect (boost::bind (&AudioPanel::mapping_changed, this, _1));
}
{
switch (property) {
case Film::AUDIO_CHANNELS:
- _mapping->set_channels (_editor->film()->audio_channels ());
+ _mapping->set_channels (_parent->film()->audio_channels ());
_sizer->Layout ();
break;
+ case Film::VIDEO_FRAME_RATE:
+ setup_description ();
+ break;
default:
break;
}
void
AudioPanel::film_content_changed (int property)
{
- AudioContentList ac = _editor->selected_audio_content ();
+ AudioContentList ac = _parent->selected_audio ();
shared_ptr<AudioContent> acs;
shared_ptr<FFmpegContent> fcs;
if (ac.size() == 1) {
if (property == AudioContentProperty::AUDIO_MAPPING) {
_mapping->set (acs ? acs->audio_mapping () : AudioMapping ());
_sizer->Layout ();
+ } else if (property == AudioContentProperty::AUDIO_FRAME_RATE) {
+ setup_description ();
} else if (property == FFmpegContentProperty::AUDIO_STREAM) {
- setup_stream_description ();
_mapping->set (acs ? acs->audio_mapping () : AudioMapping ());
_sizer->Layout ();
} else if (property == FFmpegContentProperty::AUDIO_STREAMS) {
if (fcs->audio_stream()) {
checked_set (_stream, fcs->audio_stream()->identifier ());
- setup_stream_description ();
}
}
+ } else if (property == AudioContentProperty::AUDIO_PROCESSOR) {
+ if (acs) {
+ checked_set (_processor, acs->audio_processor() ? acs->audio_processor()->id() : N_("none"));
+ } else {
+ checked_set (_processor, N_("none"));
+ }
}
}
}
_gain->wrapped()->SetValue (
- Config::instance()->sound_processor()->db_for_fader_change (
+ Config::instance()->cinema_sound_processor()->db_for_fader_change (
d->wanted_fader (),
d->actual_fader ()
)
_audio_dialog = 0;
}
- AudioContentList ac = _editor->selected_audio_content ();
+ AudioContentList ac = _parent->selected_audio ();
if (ac.size() != 1) {
return;
}
void
AudioPanel::stream_changed ()
{
- FFmpegContentList fc = _editor->selected_ffmpeg_content ();
+ FFmpegContentList fc = _parent->selected_ffmpeg ();
if (fc.size() != 1) {
return;
}
if (i != a.end ()) {
fcs->set_audio_stream (*i);
}
+}
- setup_stream_description ();
+void
+AudioPanel::processor_changed ()
+{
+ string const s = string_client_data (_processor->GetClientObject (_processor->GetSelection ()));
+ AudioProcessor const * p = 0;
+ if (s != wx_to_std (N_("none"))) {
+ p = AudioProcessor::from_id (s);
+ }
+
+ AudioContentList c = _parent->selected_audio ();
+ for (AudioContentList::const_iterator i = c.begin(); i != c.end(); ++i) {
+ (*i)->set_audio_processor (p);
+ }
}
- AudioContentList ac = _editor->selected_audio_content ();
+ void
+ AudioPanel::setup_description ()
+ {
- if (acs->content_audio_frame_rate() != acs->output_audio_frame_rate ()) {
++ AudioContentList ac = _parent->selected_audio ();
+ if (ac.size () != 1) {
+ _description->SetLabel ("");
+ return;
+ }
+
+ shared_ptr<AudioContent> acs = ac.front ();
- acs->content_audio_frame_rate() / 1000.0,
- acs->output_audio_frame_rate() / 1000.0
++ if (acs->audio_frame_rate() != acs->resampled_audio_frame_rate ()) {
+ _description->SetLabel (wxString::Format (
+ _("Audio will be resampled from %.3fkHz to %.3fkHz."),
-void
-AudioPanel::setup_stream_description ()
-{
- FFmpegContentList fc = _editor->selected_ffmpeg_content ();
- if (fc.size() != 1) {
- _stream_description->SetLabel ("");
- return;
- }
-
- shared_ptr<FFmpegContent> fcs = fc.front ();
-
- if (!fcs->audio_stream ()) {
- _stream_description->SetLabel (wxT (""));
- } else {
- wxString s;
- if (fcs->audio_channels() == 1) {
- s << _("1 channel");
- } else {
- s << fcs->audio_channels() << wxT (" ") << _("channels");
- }
- s << wxT (", ") << fcs->content_audio_frame_rate() << _("Hz");
- _stream_description->SetLabel (s);
- }
-}
-
++ acs->audio_frame_rate() / 1000.0,
++ acs->resampled_audio_frame_rate() / 1000.0
+ ));
+ } else {
+ _description->SetLabel (_("Audio will not be resampled."));
+ }
+ }
+
void
AudioPanel::mapping_changed (AudioMapping m)
{
- AudioContentList c = _editor->selected_audio_content ();
+ AudioContentList c = _parent->selected_audio ();
if (c.size() == 1) {
c.front()->set_audio_mapping (m);
}
void
AudioPanel::content_selection_changed ()
{
- AudioContentList sel = _editor->selected_audio_content ();
+ AudioContentList sel = _parent->selected_audio ();
if (_audio_dialog && sel.size() == 1) {
_audio_dialog->set_content (sel.front ());
_gain->set_content (sel);
_delay->set_content (sel);
+ _gain_calculate_button->Enable (sel.size() == 1);
_show->Enable (sel.size() == 1);
_stream->Enable (sel.size() == 1);
+ _processor->Enable (!sel.empty());
_mapping->Enable (sel.size() == 1);
+ setup_processors ();
+
film_content_changed (AudioContentProperty::AUDIO_MAPPING);
+ film_content_changed (AudioContentProperty::AUDIO_PROCESSOR);
+ film_content_changed (AudioContentProperty::AUDIO_FRAME_RATE);
film_content_changed (FFmpegContentProperty::AUDIO_STREAM);
film_content_changed (FFmpegContentProperty::AUDIO_STREAMS);
}
+
+void
+AudioPanel::setup_processors ()
+{
+ AudioContentList sel = _parent->selected_audio ();
+
+ _processor->Clear ();
+ list<AudioProcessor const *> ap = AudioProcessor::all ();
+ _processor->Append (_("None"), new wxStringClientData (N_("none")));
+ for (list<AudioProcessor const *>::const_iterator i = ap.begin(); i != ap.end(); ++i) {
+
+ AudioContentList::const_iterator j = sel.begin();
+ while (j != sel.end() && (*i)->in_channels().includes ((*j)->audio_channels ())) {
+ ++j;
+ }
+
+ if (j == sel.end ()) {
+ _processor->Append (std_to_wx ((*i)->name ()), new wxStringClientData (std_to_wx ((*i)->id ())));
+ }
+ }
+}
*/
#include "lib/audio_mapping.h"
-#include "film_editor_panel.h"
+#include "content_sub_panel.h"
#include "content_widget.h"
class wxSpinCtrlDouble;
class AudioMappingView;
class AudioDialog;
-class AudioPanel : public FilmEditorPanel
+class AudioPanel : public ContentSubPanel
{
public:
- AudioPanel (FilmEditor *);
+ AudioPanel (ContentPanel *);
void film_changed (Film::Property);
void film_content_changed (int);
void show_clicked ();
void stream_changed ();
void mapping_changed (AudioMapping);
- void setup_stream_description ();
+ void processor_changed ();
+ void setup_processors ();
+ void setup_description ();
ContentSpinCtrlDouble<AudioContent>* _gain;
wxButton* _gain_calculate_button;
wxButton* _show;
ContentSpinCtrl<AudioContent>* _delay;
wxChoice* _stream;
+ wxChoice* _processor;
+ wxStaticText* _stream_description;
AudioMappingView* _mapping;
+ wxStaticText* _description;
AudioDialog* _audio_dialog;
};
#include <iostream>
#include <iomanip>
#include <wx/tglbtn.h>
+#include <dcp/exceptions.h>
#include "lib/film.h"
#include "lib/ratio.h"
#include "lib/util.h"
#include "lib/examine_content_job.h"
#include "lib/filter.h"
#include "lib/player.h"
-#include "lib/player_video_frame.h"
+#include "lib/player_video.h"
#include "lib/video_content.h"
#include "lib/video_decoder.h"
+#include "lib/timer.h"
#include "film_viewer.h"
#include "wx_util.h"
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using boost::weak_ptr;
-using libdcp::Size;
+using dcp::Size;
FilmViewer::FilmViewer (wxWindow* p)
: wxPanel (p)
, _panel (new wxPanel (this))
+ , _outline_content (new wxCheckBox (this, wxID_ANY, _("Outline content")))
, _slider (new wxSlider (this, wxID_ANY, 0, 0, 4096))
, _back_button (new wxButton (this, wxID_ANY, wxT("<")))
, _forward_button (new wxButton (this, wxID_ANY, wxT(">")))
, _frame_number (new wxStaticText (this, wxID_ANY, wxT("")))
, _timecode (new wxStaticText (this, wxID_ANY, wxT("")))
, _play_button (new wxToggleButton (this, wxID_ANY, _("Play")))
- , _got_frame (false)
+ , _last_get_accurate (true)
{
#ifndef __WXOSX__
_panel->SetDoubleBuffered (true);
_v_sizer->Add (_panel, 1, wxEXPAND);
+ _v_sizer->Add (_outline_content, 0, wxALL, DCPOMATIC_SIZER_GAP);
+
wxBoxSizer* h_sizer = new wxBoxSizer (wxHORIZONTAL);
wxBoxSizer* time_sizer = new wxBoxSizer (wxVERTICAL);
_panel->Bind (wxEVT_PAINT, boost::bind (&FilmViewer::paint_panel, this));
_panel->Bind (wxEVT_SIZE, boost::bind (&FilmViewer::panel_sized, this, _1));
+ _outline_content->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&FilmViewer::refresh_panel, this));
_slider->Bind (wxEVT_SCROLL_THUMBTRACK, boost::bind (&FilmViewer::slider_moved, this));
_slider->Bind (wxEVT_SCROLL_PAGEUP, boost::bind (&FilmViewer::slider_moved, this));
_slider->Bind (wxEVT_SCROLL_PAGEDOWN, boost::bind (&FilmViewer::slider_moved, this));
JobManager::instance()->ActiveJobsChanged.connect (
bind (&FilmViewer::active_jobs_changed, this, _1)
);
+
+ setup_sensitivity ();
}
void
_frame.reset ();
_slider->SetValue (0);
- set_position_text (0);
+ set_position_text ();
if (!_film) {
return;
return;
}
- _player->disable_audio ();
- _player->Video.connect (boost::bind (&FilmViewer::process_video, this, _1, _3));
- _player->Changed.connect (boost::bind (&FilmViewer::player_changed, this, _1));
+ _film_connection = _film->Changed.connect (boost::bind (&FilmViewer::film_changed, this, _1));
+
+ _player->set_approximate_size ();
+ _player_connection = _player->Changed.connect (boost::bind (&FilmViewer::player_changed, this, _1));
calculate_sizes ();
- fetch_next_frame ();
+ get (_position, _last_get_accurate);
+
+ setup_sensitivity ();
+}
+
+void
+FilmViewer::refresh_panel ()
+{
+ _panel->Refresh ();
+ _panel->Update ();
}
void
-FilmViewer::fetch_current_frame_again ()
+FilmViewer::get (DCPTime p, bool accurate)
{
if (!_player) {
return;
}
- /* We could do this with a seek and a fetch_next_frame, but this is
- a shortcut to make it quicker.
- */
-
- _got_frame = false;
- if (!_player->repeat_last_video ()) {
- fetch_next_frame ();
+ list<shared_ptr<PlayerVideo> > pvf = _player->get_video (p, accurate);
+ if (!pvf.empty ()) {
+ try {
- _frame = pvf.front()->image (true);
++ _frame = pvf.front()->image (PIX_FMT_RGB24, true);
+ _frame = _frame->scale (_frame->size(), Scaler::from_id ("fastbilinear"), PIX_FMT_RGB24, false);
+ _position = pvf.front()->time ();
+ _inter_position = pvf.front()->inter_position ();
+ _inter_size = pvf.front()->inter_size ();
+ } catch (dcp::DCPReadError& e) {
+ /* This can happen on the following sequence of events:
+ * - load encrypted DCP
+ * - add KDM
+ * - DCP is examined again, which sets its "playable" flag to 1
+ * - as a side effect of the exam, the viewer is updated using the old pieces
+ * - the DCPDecoder in the old piece gives us an encrypted frame
+ * - then, the pieces are re-made (but too late).
+ *
+ * I hope there's a better way to handle this ...
+ */
+ _frame.reset ();
+ _position = p;
+ }
+ } else {
+ _frame.reset ();
+ _position = p;
}
-
- _panel->Refresh ();
- _panel->Update ();
+
+ set_position_text ();
+ refresh_panel ();
+
+ _last_get_accurate = accurate;
}
void
FilmViewer::timer ()
{
- if (!_player) {
- return;
- }
-
- fetch_next_frame ();
+ get (_position + DCPTime::from_frames (1, _film->video_frame_rate ()), true);
- Time const len = _film->length ();
+ DCPTime const len = _film->length ();
- if (len) {
- int const new_slider_position = 4096 * _player->video_position() / len;
+ if (len.get ()) {
+ int const new_slider_position = 4096 * _position.get() / len.get();
if (new_slider_position != _slider->GetValue()) {
_slider->SetValue (new_slider_position);
}
dc.SetPen (p);
dc.SetBrush (b);
dc.DrawRectangle (0, _out_size.height, _panel_size.width, _panel_size.height - _out_size.height);
- }
-}
+ }
+ if (_outline_content->GetValue ()) {
+ wxPen p (wxColour (255, 0, 0), 2);
+ dc.SetPen (p);
+ dc.SetBrush (*wxTRANSPARENT_BRUSH);
+ dc.DrawRectangle (_inter_position.x, _inter_position.y, _inter_size.width, _inter_size.height);
+ }
+}
void
FilmViewer::slider_moved ()
{
- if (_film && _player) {
- Time t = _slider->GetValue() * _film->length() / 4096;
- /* Ensure that we hit the end of the film at the end of the slider */
- if (t >= _film->length ()) {
- t = _film->length() - _film->video_frames_to_time (1);
- }
- _player->seek (t, false);
- fetch_next_frame ();
+ if (!_film) {
+ return;
+ }
+
+ DCPTime t (_slider->GetValue() * _film->length().get() / 4096);
+ /* Ensure that we hit the end of the film at the end of the slider */
+ if (t >= _film->length ()) {
+ t = _film->length() - DCPTime::from_frames (1, _film->video_frame_rate ());
}
+ get (t, false);
}
void
{
_panel_size.width = ev.GetSize().GetWidth();
_panel_size.height = ev.GetSize().GetHeight();
+
calculate_sizes ();
- fetch_current_frame_again ();
+ get (_position, _last_get_accurate);
}
void
if (panel_ratio < film_ratio) {
/* panel is less widscreen than the film; clamp width */
_out_size.width = _panel_size.width;
- _out_size.height = _out_size.width / film_ratio;
+ _out_size.height = rint (_out_size.width / film_ratio);
} else {
/* panel is more widescreen than the film; clamp height */
_out_size.height = _panel_size.height;
- _out_size.width = _out_size.height * film_ratio;
+ _out_size.width = rint (_out_size.height * film_ratio);
}
/* Catch silly values */
_out_size.width = max (64, _out_size.width);
_out_size.height = max (64, _out_size.height);
+ /* The player will round its image size down to the next lowest 4 pixels
+ to speed up its scale, so do similar here to avoid black borders
+ around things. This is a bit of a hack.
+ */
+ _out_size.width &= ~3;
+ _out_size.height &= ~3;
+
_player->set_video_container_size (_out_size);
}
}
void
-FilmViewer::process_video (shared_ptr<PlayerVideoFrame> pvf, Time t)
-{
- if (pvf->eyes() == EYES_RIGHT) {
- return;
- }
-
- _frame = pvf->image (PIX_FMT_RGB24);
- _got_frame = true;
-
- set_position_text (t);
-}
-
-void
-FilmViewer::set_position_text (Time t)
+FilmViewer::set_position_text ()
{
if (!_film) {
_frame_number->SetLabel ("0");
double const fps = _film->video_frame_rate ();
/* Count frame number from 1 ... not sure if this is the best idea */
- _frame_number->SetLabel (wxString::Format (wxT("%d"), int (rint (t * fps / TIME_HZ)) + 1));
+ _frame_number->SetLabel (wxString::Format (wxT("%d"), int (rint (_position.seconds() * fps)) + 1));
- double w = static_cast<double>(t) / TIME_HZ;
+ double w = _position.seconds ();
int const h = (w / 3600);
w -= h * 3600;
int const m = (w / 60);
_timecode->SetLabel (wxString::Format (wxT("%02d:%02d:%02d.%02d"), h, m, s, f));
}
-/** Ask the player to emit its next frame, then update our display */
-void
-FilmViewer::fetch_next_frame ()
-{
- /* Clear our frame in case we don't get a new one */
- _frame.reset ();
-
- if (!_player) {
- return;
- }
-
- _got_frame = false;
-
- try {
- while (!_got_frame && !_player->pass ()) {}
- } catch (DecodeError& e) {
- _play_button->SetValue (false);
- check_play_state ();
- error_dialog (this, wxString::Format (_("Could not decode video for view (%s)"), std_to_wx(e.what()).data()));
- } catch (OpenFileError& e) {
- /* There was a problem opening a content file; we'll let this slide as it
- probably means a missing content file, which we're already taking care of.
- */
- }
-
- _panel->Refresh ();
- _panel->Update ();
-}
-
void
FilmViewer::active_jobs_changed (bool a)
{
void
FilmViewer::back_clicked ()
{
- if (!_player) {
- return;
+ DCPTime p = _position - DCPTime::from_frames (1, _film->video_frame_rate ());
+ if (p < DCPTime ()) {
+ p = DCPTime ();
}
- /* Player::video_position is the time after the last frame that we received.
- We want to see the one before it, so we need to go back 2.
- */
-
- Time p = _player->video_position() - _film->video_frames_to_time (2);
- if (p < 0) {
- p = 0;
- }
-
- _player->seek (p, true);
- fetch_next_frame ();
+ get (p, true);
}
void
FilmViewer::forward_clicked ()
{
- if (!_player) {
- return;
- }
-
- fetch_next_frame ();
+ get (_position + DCPTime::from_frames (1, _film->video_frame_rate ()), true);
}
void
}
calculate_sizes ();
- fetch_current_frame_again ();
+ get (_position, _last_get_accurate);
+}
+
+void
+FilmViewer::setup_sensitivity ()
+{
+ bool const c = _film && !_film->content().empty ();
+
+ _slider->Enable (c);
+ _back_button->Enable (c);
+ _forward_button->Enable (c);
+ _play_button->Enable (c);
+ _outline_content->Enable (c);
+ _frame_number->Enable (c);
+ _timecode->Enable (c);
+}
+
+void
+FilmViewer::film_changed (Film::Property p)
+{
+ if (p == Film::CONTENT) {
+ setup_sensitivity ();
+ }
}
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-07-13 03:08+0100\n"
"Last-Translator: Carsten Kurz\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"X-Generator: Poedit 1.6.5\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: src/wx/subtitle_panel.cc:48 src/wx/subtitle_panel.cc:57
-#: src/wx/subtitle_panel.cc:66 src/wx/subtitle_panel.cc:75
+#: src/wx/subtitle_panel.cc:56 src/wx/subtitle_panel.cc:65
+#: src/wx/subtitle_panel.cc:74 src/wx/subtitle_panel.cc:83
msgid "%"
msgstr "%"
-#: src/wx/about_dialog.cc:78
+#: src/wx/about_dialog.cc:82
msgid ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
msgstr ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
-#: src/wx/config_dialog.cc:664
+#: src/wx/config_dialog.cc:1003
msgid "(password will be stored on disk in plaintext)"
msgstr "(Passwort wird im Klartext gespeichert!)"
-#: src/wx/config_dialog.cc:104
+#: src/wx/config_dialog.cc:111
msgid "(restart DCP-o-matic to see language changes)"
msgstr "(Programm zum Ändern der Sprache neu starten)"
-#: src/wx/audio_mapping_view.cc:134
+#: src/wx/audio_mapping_view.cc:142
msgid "-6dB"
msgstr "-6dB"
msgid "1 / "
msgstr "1/"
-#: src/wx/audio_panel.cc:238
-msgid "1 channel"
-msgstr "1 Kanal"
-
-#: src/wx/video_panel.cc:197
+#: src/wx/video_panel.cc:193
msgid "2D"
msgstr "2D"
msgid "2D version of content available in 3D"
msgstr "2D Version eines Films, der auch in 3D verfügbar ist"
-#: src/wx/film_editor.cc:224
+#: src/wx/dcp_panel.cc:607
msgid "2K"
msgstr "2K"
-#: src/wx/film_editor.cc:171
+#: src/wx/dcp_panel.cc:555
msgid "3D"
msgstr "3D"
-#: src/wx/video_panel.cc:200
+#: src/wx/video_panel.cc:196
msgid "3D alternate"
msgstr "3D L/R sequentiell"
-#: src/wx/video_panel.cc:201
+#: src/wx/video_panel.cc:197
msgid "3D left only"
msgstr "3D nur links"
-#: src/wx/video_panel.cc:198
+#: src/wx/video_panel.cc:194
msgid "3D left/right"
msgstr "3D Links/Rechts"
-#: src/wx/video_panel.cc:202
+#: src/wx/video_panel.cc:198
msgid "3D right only"
msgstr "3D nur rechts"
-#: src/wx/video_panel.cc:199
+#: src/wx/video_panel.cc:195
msgid "3D top/bottom"
msgstr "3D Oben/Unten"
-#: src/wx/film_editor.cc:225
+#: src/wx/dcp_panel.cc:608
msgid "4K"
msgstr "4K"
msgid "A new version of DCP-o-matic is available."
msgstr "Es ist eine neue Version von DCP-o-matic verfügbar."
-#: src/wx/about_dialog.cc:30
+#: src/wx/about_dialog.cc:34
msgid "About DCP-o-matic"
msgstr "Ãœber DCP-o-matic"
msgid "Add Cinema..."
msgstr "Kino hinzufügen..."
+#: src/wx/content_menu.cc:57
+#, fuzzy
+msgid "Add KDM..."
+msgstr "Kino hinzufügen..."
+
#: src/wx/kdm_dialog.cc:86
msgid "Add Screen..."
msgstr "Saal hinzufügen..."
-#: src/wx/film_editor.cc:280
+#: src/wx/content_panel.cc:67
msgid "Add file(s)..."
msgstr "Datei(en) hinzufügen..."
-#: src/wx/film_editor.cc:282
+#: src/wx/content_panel.cc:69
msgid "Add folder..."
msgstr "Ordner hinzufügen..."
-#: src/wx/editable_list.h:62
+#: src/wx/config_dialog.cc:597 src/wx/editable_list.h:62
msgid "Add..."
msgstr "Hinzufügen..."
"tab."
msgstr ""
-#: src/wx/config_dialog.cc:799
+#: src/wx/config_dialog.cc:1141
msgid "Allow any DCP frame rate"
msgstr "Auch Nicht-Standard-Bildraten erlauben (Vorsicht!)"
-#: src/wx/about_dialog.cc:111
+#: src/wx/about_dialog.cc:115
msgid "Artwork by"
msgstr "Grafik von"
-#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:40
+#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:43 src/wx/dcp_panel.cc:86
msgid "Audio"
msgstr "Ton"
msgid "Audio Language (e.g. EN)"
msgstr "Ton Sprache (z.B. DE)"
-#: src/wx/film_editor.cc:166
-msgid "Audio channels"
-msgstr "Ton Kanäle"
-
-#: src/wx/audio_mapping_view.cc:350
+#: src/wx/audio_mapping_view.cc:358
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d unaltered."
msgstr ""
"Der Ton von Kanal %d wird ohne Veränderung an den DCP Kanal %d weitergegeben."
-#: src/wx/audio_mapping_view.cc:353
+#: src/wx/audio_mapping_view.cc:361
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d with gain "
"Der Ton von Kanal %d wird wird an den DCP Kanal %d mit %.1fdB Pegel "
"weitergegeben."
-#: src/wx/config_dialog.cc:683
+#: src/wx/config_dialog.cc:1022
msgid "BCC address"
msgstr "BCC: Adresse"
msgid "Browse..."
msgstr "Durchsuchen..."
-#: src/wx/audio_mapping_view.cc:317
+#: src/wx/audio_mapping_view.cc:325
msgid "BsL"
msgstr "BsL"
-#: src/wx/audio_mapping_view.cc:321
+#: src/wx/audio_mapping_view.cc:329
msgid "BsR"
msgstr "BsR"
+#: src/wx/dcp_panel.cc:551
+msgid "Burn subtitles into image"
+msgstr ""
+
#: src/wx/gain_calculator_dialog.cc:32
msgid "But I have to use fader"
msgstr "Aber ich nutze gegenwärtig Faderstellung"
-#: src/wx/audio_mapping_view.cc:285
+#: src/wx/audio_mapping_view.cc:293
msgid "C"
msgstr "C"
-#: src/wx/config_dialog.cc:679
+#: src/wx/config_dialog.cc:1018
msgid "CC address"
msgstr "CC: Adresse"
msgid "CPL annotation text"
msgstr "CPL annotation text"
-#: src/wx/audio_panel.cc:63
+#: src/wx/audio_panel.cc:66
msgid "Calculate..."
msgstr "Berechne..."
msgid "Certificate"
msgstr "Zertifikat"
+#: src/wx/config_dialog.cc:564
+msgid "Certificate chain for signing DCPs and KDMs:"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:191
#: src/wx/doremi_certificate_dialog.cc:103
msgid "Certificate downloaded"
msgstr "Zertifikat heruntergeladen"
+#: src/wx/config_dialog.cc:625
+msgid "Certificate for decrypting DCPs"
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:65
msgid "Chain"
msgstr "Kinokette"
msgid "Channel gain"
msgstr "Kanal Verstärkung (+/-)"
-#: src/wx/audio_dialog.cc:44
+#: src/wx/audio_dialog.cc:44 src/wx/dcp_panel.cc:623
msgid "Channels"
msgstr "Kanäle"
-#: src/wx/config_dialog.cc:120
+#: src/wx/config_dialog.cc:126
msgid "Check for testing updates as well as stable ones"
msgstr "Zeige bei Updateprüfung auch Test-Versionen an"
-#: src/wx/config_dialog.cc:116
+#: src/wx/config_dialog.cc:122
msgid "Check for updates on startup"
msgstr "Beim Start auf Updates überprüfen."
-#: src/wx/content_menu.cc:182
+#: src/wx/content_menu.cc:198
msgid "Choose a file"
msgstr "Datei auswählen"
-#: src/wx/film_editor.cc:810
+#: src/wx/content_panel.cc:241
msgid "Choose a file or files"
msgstr "Eine oder mehrere Dateien auswählen"
-#: src/wx/content_menu.cc:175 src/wx/film_editor.cc:833
+#: src/wx/content_menu.cc:191 src/wx/content_panel.cc:264
msgid "Choose a folder"
msgstr "Ordner wählen"
msgid "Cinema"
msgstr "Kino"
-#: src/wx/config_dialog.cc:498
+#: src/wx/config_dialog.cc:504
msgid "Colour Conversions"
msgstr "Farbumwandlungen"
#: src/wx/content_colour_conversion_dialog.cc:34
-#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:162
+#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:167
msgid "Colour conversion"
msgstr "Farbumwandlung"
-#: src/wx/config_dialog.cc:819
+#: src/wx/config_dialog.cc:1161
msgid "Config|Timing"
msgstr "Timing"
-#: src/wx/film_editor.cc:134
+#: src/wx/dcp_panel.cc:532
msgid "Container"
msgstr "Container"
-#: src/wx/audio_mapping_view.cc:270 src/wx/film_editor.cc:85
+#: src/wx/audio_mapping_view.cc:278 src/wx/film_editor.cc:83
msgid "Content"
msgstr "Inhalt"
-#: src/wx/film_editor.cc:139
+#: src/wx/dcp_panel.cc:77
msgid "Content Type"
msgstr "Inhalt Typ"
-#: src/wx/video_panel.cc:332
+#: src/wx/video_panel.cc:353
#, c-format
msgid "Content frame rate %.4f\n"
msgstr "Inhalt Bildrate %4f\n"
msgid "Content version"
msgstr "Inhalt Version"
-#: src/wx/video_panel.cc:292
+#: src/wx/video_panel.cc:313
#, c-format
msgid "Content video is %dx%d (%.2f:1)\n"
msgstr "Inhalt Video ist %dx%d (%.2f:1)\n"
msgid "Could not analyse audio."
msgstr "Ton konnte nicht analysiert werden"
-#: src/wx/film_viewer.cc:346
-#, c-format
-msgid "Could not decode video for view (%s)"
-msgstr "Bild konnte nicht zur Vorschau dekodiert werden (%s)"
+#: src/wx/content_panel.cc:280
+msgid "Could not find any images nor a DCP in that folder"
+msgstr ""
#: src/wx/job_wrapper.cc:39
#, c-format
msgid "Could not make DCP: %s"
msgstr "DCP konnte nicht erstellt werden: %s"
-#: src/wx/screen_dialog.cc:95
+#: src/wx/config_dialog.cc:688 src/wx/config_dialog.cc:783
+#: src/wx/config_dialog.cc:803 src/wx/screen_dialog.cc:95
#, c-format
msgid "Could not read certificate file (%s)"
msgstr "Konnte die Zertifikatsdatei (%s) nicht lesen."
+#: src/wx/config_dialog.cc:775 src/wx/config_dialog.cc:825
+#, fuzzy, c-format
+msgid "Could not read key file (%s)"
+msgstr "Konnte die Zertifikatsdatei (%s) nicht lesen."
+
#: src/wx/dolby_certificate_dialog.cc:39
msgid "Country"
msgstr "Land"
msgid "Create in folder"
msgstr "In Ordner erstellen"
-#: src/wx/video_panel.cc:304
+#: src/wx/video_panel.cc:325
#, c-format
msgid "Cropped to %dx%d (%.2f:1)\n"
msgstr "Beschnitten zu %dx%d(%.2f:1)\n"
-#: src/wx/video_panel.cc:244
+#: src/wx/video_panel.cc:243
msgid "Custom"
msgstr "Eigene"
-#: src/wx/film_editor.cc:87
+#: src/wx/film_editor.cc:85
msgid "DCP"
msgstr "DCP"
-#: src/wx/film_editor.cc:129
+#: src/wx/dcp_panel.cc:72
msgid "DCP Name"
msgstr "DCP Name"
msgid "DCP directory"
msgstr "DCP Verzeichnis"
-#: src/wx/about_dialog.cc:45 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
+#: src/wx/about_dialog.cc:49 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic audio - %s"
msgstr "DCP-o-matic Ton - %s"
-#: src/wx/config_dialog.cc:270
+#: src/wx/config_dialog.cc:276
msgid "Default ISDCF name details"
msgstr "Standard ISDCF Name Details"
-#: src/wx/config_dialog.cc:287
+#: src/wx/config_dialog.cc:293
msgid "Default JPEG2000 bandwidth"
msgstr "Standard JPEG2000 Datenrate"
-#: src/wx/config_dialog.cc:296
+#: src/wx/config_dialog.cc:302
msgid "Default audio delay"
msgstr "Standard Ton Verzögerung (+/-)"
-#: src/wx/config_dialog.cc:278
+#: src/wx/config_dialog.cc:284
msgid "Default container"
msgstr "Standard Container"
-#: src/wx/config_dialog.cc:282
+#: src/wx/config_dialog.cc:288
msgid "Default content type"
msgstr "Standard Inhalt Typ"
-#: src/wx/config_dialog.cc:262
+#: src/wx/config_dialog.cc:268
msgid "Default directory for new films"
msgstr "Standard Ordner für neue Projekte"
-#: src/wx/config_dialog.cc:254
+#: src/wx/config_dialog.cc:260
msgid "Default duration of still images"
msgstr "Standard Länge für Standbilder"
-#: src/wx/config_dialog.cc:304
+#: src/wx/config_dialog.cc:310
msgid "Default issuer"
msgstr "Standard 'issuer' (DCI)"
-#: src/wx/config_dialog.cc:274
+#: src/wx/config_dialog.cc:280
msgid "Default scale to"
msgstr ""
-#: src/wx/config_dialog.cc:235
+#: src/wx/config_dialog.cc:241
msgid "Defaults"
msgstr "Vorgaben"
-#: src/wx/audio_panel.cc:67
+#: src/wx/audio_panel.cc:70
msgid "Delay"
msgstr "Verzögerung (+/-)"
-#: src/wx/film_editor.cc:125 src/wx/job_manager_view.cc:79
+#: src/wx/dcp_panel.cc:68 src/wx/job_manager_view.cc:79
msgid "Details..."
msgstr "Details..."
msgid "Doremi serial numbers must have 6 digits"
msgstr "Doremi Seriennummern müssen aus 6 Zahlen bestehen!"
-#: src/wx/film_editor.cc:288
+#: src/wx/content_panel.cc:75
msgid "Down"
msgstr "Nach unten"
msgid "Edit Screen..."
msgstr "Saal bearbeiten..."
-#: src/wx/audio_mapping_view.cc:135 src/wx/config_dialog.cc:271
-#: src/wx/video_panel.cc:155 src/wx/video_panel.cc:172
+#: src/wx/audio_mapping_view.cc:143 src/wx/config_dialog.cc:277
+#: src/wx/video_panel.cc:163 src/wx/video_panel.cc:170
#: src/wx/editable_list.h:66
msgid "Edit..."
msgstr "Bearbeiten..."
msgid "Encoding Servers"
msgstr "Encoding Server"
-#: src/wx/film_editor.cc:162
+#: src/wx/dcp_panel.cc:92
msgid "Encrypted"
msgstr "Verschlüsselt (->für KDM Erstellung)"
-#: src/wx/config_dialog.cc:817
+#: src/wx/subtitle_view.cc:47
+msgid "End"
+msgstr ""
+
+#: src/wx/config_dialog.cc:1159
msgid "Errors"
msgstr "Fehler"
+#: src/wx/config_dialog.cc:651
+msgid "Export DCP decryption certificate..."
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:50
msgid "Facility (e.g. DLA)"
msgstr "Hersteller (z.B. DXL)"
+#: src/wx/video_panel.cc:133
+msgid "Fade in"
+msgstr ""
+
+#: src/wx/video_panel.cc:138
+msgid "Fade out"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:76
#: src/wx/dolby_certificate_dialog.cc:100
#: src/wx/dolby_certificate_dialog.cc:123
msgid "Film name"
msgstr "Projekt Name"
-#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:146
+#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:160
msgid "Filters"
msgstr "Filter"
-#: src/wx/content_menu.cc:52
+#: src/wx/content_menu.cc:55
msgid "Find missing..."
msgstr "Suche fehlende..."
-#: src/wx/film_editor.cc:145
+#: src/wx/dcp_panel.cc:538
msgid "Frame Rate"
msgstr "Bild Rate"
msgid "Frames already encoded"
msgstr "Bilder bereits bearbeitet"
-#: src/wx/about_dialog.cc:61
+#: src/wx/about_dialog.cc:65
msgid "Free, open-source DCP generation from almost anything."
msgstr ""
"Kostenlose Open-Source-Software zur DCP-Erstellung aus nahezu allen "
msgid "From"
msgstr "Von"
-#: src/wx/config_dialog.cc:675
+#: src/wx/config_dialog.cc:1014
msgid "From address"
msgstr "Absenderadresse"
-#: src/wx/audio_mapping_view.cc:133
+#: src/wx/audio_mapping_view.cc:141
msgid "Full"
msgstr "Voll"
msgid "Full length"
msgstr "Gesamtlänge"
-#: src/wx/audio_panel.cc:52
+#: src/wx/audio_panel.cc:55
msgid "Gain"
msgstr "Verstärkung (+/-)"
msgid "Gain for content channel %d in DCP channel %d"
msgstr "Abschwächung des Kanals %d im DCP Kanal %d"
-#: src/wx/properties_dialog.cc:52
+#: src/wx/properties_dialog.cc:51
msgid "Gb"
msgstr "Gb"
-#: src/wx/config_dialog.cc:813
+#: src/wx/config_dialog.cc:1155
msgid "General"
msgstr "Allgemein"
-#: src/wx/audio_mapping_view.cc:301
+#: src/wx/audio_mapping_view.cc:309
msgid "HI"
msgstr "HI"
msgid "Host name or IP address"
msgstr "Host Name oder IP-Adresse"
-#: src/wx/audio_panel.cc:242
-msgid "Hz"
-msgstr "Hz"
-
#: src/wx/gain_calculator_dialog.cc:29
msgid "I want to play this back at fader"
msgstr "Ich möchte bei dieser Faderstellung spielen"
-#: src/wx/config_dialog.cc:560
+#: src/wx/config_dialog.cc:899
msgid "IP address"
msgstr "IP Adresse"
-#: src/wx/config_dialog.cc:456
+#: src/wx/config_dialog.cc:462
msgid "IP address / host name"
msgstr "IP Adresse / Host Name"
msgid "Input gamma"
msgstr "Eingangs Gamma"
-#: src/wx/film_editor.cc:228
+#: src/wx/config_dialog.cc:727
+msgid "Intermediate"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:31
+msgid "Intermediate common name"
+msgstr ""
+
+#: src/wx/dcp_panel.cc:115
msgid "Interop"
msgstr "Interop"
-#: src/wx/film_editor.cc:181
+#: src/wx/dcp_panel.cc:565
msgid "JPEG2000 bandwidth"
msgstr "JPEG2000 Datenrate"
-#: src/wx/content_menu.cc:51
+#: src/wx/content_menu.cc:54
msgid "Join"
msgstr "Verbinden"
-#: src/wx/config_dialog.cc:627
+#: src/wx/config_dialog.cc:966
msgid "KDM Email"
msgstr "KDM Email"
msgid "KDM|Timing"
msgstr "Zeitfenster"
-#: src/wx/film_editor.cc:298
+#: src/wx/content_panel.cc:85
msgid "Keep video in sequence"
msgstr "Lücken in Zeitleiste automatisch schließen"
-#: src/wx/audio_mapping_view.cc:277
+#: src/wx/config_dialog.cc:548
+msgid "Keys"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:285
msgid "L"
msgstr "L"
-#: src/wx/audio_mapping_view.cc:309
+#: src/wx/audio_mapping_view.cc:317
msgid "Lc"
msgstr "Lc"
-#: src/wx/video_panel.cc:88
+#: src/wx/config_dialog.cc:725
+msgid "Leaf"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:33
+msgid "Leaf common name"
+msgstr ""
+
+#: src/wx/video_panel.cc:89
msgid "Left crop"
msgstr "Links beschneiden"
-#: src/wx/audio_mapping_view.cc:289
+#: src/wx/audio_mapping_view.cc:297
msgid "Lfe"
msgstr "LFE"
msgid "Load from file..."
msgstr "Lade aus Datei..."
-#: src/wx/config_dialog.cc:807
+#: src/wx/config_dialog.cc:620 src/wx/config_dialog.cc:633
+#: src/wx/config_dialog.cc:646
+#, fuzzy
+msgid "Load..."
+msgstr "Hinzufügen..."
+
+#: src/wx/config_dialog.cc:1149
msgid "Log"
msgstr "Log"
-#: src/wx/config_dialog.cc:804
+#: src/wx/config_dialog.cc:1146
msgid "Log:"
msgstr ""
-#: src/wx/audio_mapping_view.cc:293
+#: src/wx/audio_mapping_view.cc:301
msgid "Ls"
msgstr "SL"
-#: src/wx/film_editor.cc:784
+#: src/wx/content_panel.cc:438
msgid "MISSING: "
msgstr "FEHLT:"
-#: src/wx/config_dialog.cc:660
+#: src/wx/config_dialog.cc:999
msgid "Mail password"
msgstr "Mail Passwort"
-#: src/wx/config_dialog.cc:656
+#: src/wx/config_dialog.cc:995
msgid "Mail user name"
msgstr "Mail/SMTP Server Benutzername/Login"
msgid "Make KDMs"
msgstr "KDMs erstellen"
+#: src/wx/make_signer_chain_dialog.cc:23
+#, fuzzy
+msgid "Make certificate chain"
+msgstr "Zertifikat Datei auswählen"
+
#: src/wx/isdcf_metadata_dialog.cc:71
msgid "Mastered luminance (e.g. 4fl)"
msgstr "Zielhelligkeit (z.B. '4fL' für 3D)"
msgid "Matrix"
msgstr "Matrix"
-#: src/wx/config_dialog.cc:791
+#: src/wx/config_dialog.cc:1133
msgid "Maximum JPEG2000 bandwidth"
msgstr "Maximale JPEG2000 Datenrate (Vorsicht!)"
-#: src/wx/config_dialog.cc:291 src/wx/config_dialog.cc:795
-#: src/wx/film_editor.cc:185
+#: src/wx/config_dialog.cc:297 src/wx/config_dialog.cc:1137
+#: src/wx/dcp_panel.cc:569
msgid "Mbit/s"
msgstr "Mbit/s"
-#: src/wx/video_panel.cc:280
+#: src/wx/video_panel.cc:301
msgid "Multiple content selected"
msgstr "Mehrere Inhalte ausgewählt"
msgid "My Documents"
msgstr "Meine Dokumente"
-#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:512
-#: src/wx/film_editor.cc:113 src/wx/preset_colour_conversion_dialog.cc:38
+#: src/wx/content_panel.cc:442
+msgid "NEEDS KDM: "
+msgstr ""
+
+#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:518
+#: src/wx/dcp_panel.cc:56 src/wx/preset_colour_conversion_dialog.cc:38
#: src/wx/screen_dialog.cc:38
msgid "Name"
msgstr "Name"
msgid "New versions of DCP-o-matic are available."
msgstr "Eine neue Version von DCP-o-matic ist verfügbar."
-#: src/wx/audio_mapping_view.cc:348
+#: src/wx/audio_mapping_view.cc:356
#, c-format
msgid "No audio will be passed from content channel %d to DCP channel %d."
msgstr "Der Ton von Kanal %d wird nicht an das DCP Kanal %d weitergegeben."
-#: src/wx/video_panel.cc:153 src/wx/video_panel.cc:249
+#: src/wx/audio_panel.cc:290 src/wx/video_panel.cc:161
+#: src/wx/video_panel.cc:248
msgid "None"
msgstr "Kein"
-#: src/wx/audio_mapping_view.cc:132
+#: src/wx/audio_mapping_view.cc:140
msgid "Off"
msgstr "Aus"
+#: src/wx/config_dialog.cc:1167
+msgid "Open console window"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:25
+msgid "Organisation"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:27
+msgid "Organisational unit"
+msgstr ""
+
#: src/wx/screen_dialog.cc:65
msgid "Other"
msgstr "Andere"
-#: src/wx/config_dialog.cc:652
+#: src/wx/config_dialog.cc:991
msgid "Outgoing mail server"
msgstr "Ausgehender/SMTP Mail Server"
+#: src/wx/film_viewer.cc:61
+#, fuzzy
+msgid "Outline content"
+msgstr "Mehrere Inhalte ausgewählt"
+
#: src/wx/kdm_dialog.cc:156
msgid "Output"
msgstr "Ausgabe"
msgid "Package Type (e.g. OV)"
msgstr "DCP Paket Typ (z.B. OV)"
-#: src/wx/video_panel.cc:325
+#: src/wx/video_panel.cc:346
#, c-format
msgid "Padded with black to %dx%d (%.2f:1)\n"
msgstr "Mit Schwarz gefüllt auf %dx%d (%.2f:1)\n"
-#: src/wx/config_dialog.cc:572
+#: src/wx/config_dialog.cc:911
msgid "Password"
msgstr "Passwort"
msgid "Peak"
msgstr "Spitze"
-#: src/wx/film_viewer.cc:64
+#: src/wx/film_viewer.cc:67
msgid "Play"
msgstr "Abspielen"
msgid "Pre-release"
msgstr "Vorabversion"
-#: src/wx/audio_mapping_view.cc:281
+#: src/wx/config_dialog.cc:638
+msgid "Private key for decrypting DCPs"
+msgstr ""
+
+#: src/wx/config_dialog.cc:612
+msgid "Private key for leaf certificate"
+msgstr ""
+
+#: src/wx/audio_panel.cc:89
+msgid "Process with"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:289
msgid "R"
msgstr "R"
msgid "Rating (e.g. 15)"
msgstr "Freigabe (z.B. FSK12)"
-#: src/wx/audio_mapping_view.cc:313
+#: src/wx/audio_mapping_view.cc:321
msgid "Rc"
msgstr "Rc"
+#: src/wx/content_menu.cc:56
+msgid "Re-examine..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:608
+#, fuzzy
+msgid "Re-make certificates..."
+msgstr "Lade Zertifikat"
+
#: src/wx/isdcf_metadata_dialog.cc:62
msgid "Red band"
msgstr "Red band (USA, für explizite Inhalte)"
-#: src/wx/content_menu.cc:54 src/wx/film_editor.cc:284
-#: src/wx/editable_list.h:68
+#: src/wx/config_dialog.cc:599 src/wx/content_menu.cc:59
+#: src/wx/content_panel.cc:71 src/wx/editable_list.h:68
msgid "Remove"
msgstr "Entfernen"
msgid "Repeat Content"
msgstr "Inhalt wiederholen"
-#: src/wx/content_menu.cc:50
+#: src/wx/content_menu.cc:53
msgid "Repeat..."
msgstr "Wiederhole..."
-#: src/wx/config_dialog.cc:690
+#: src/wx/config_dialog.cc:1029
msgid "Reset to default text"
msgstr "Auf Standardtext zurücksetzen"
-#: src/wx/film_editor.cc:175
+#: src/wx/dcp_panel.cc:559
msgid "Resolution"
msgstr "Auflösung"
msgid "Resume"
msgstr "Weiter"
-#: src/wx/audio_mapping_view.cc:356
+#: src/wx/audio_mapping_view.cc:364
msgid "Right click to change gain."
msgstr "Rechtsklick für Pegeländerung"
msgid "Right crop"
msgstr "Rechts beschneiden"
-#: src/wx/audio_mapping_view.cc:297
+#: src/wx/config_dialog.cc:723
+msgid "Root"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:29
+msgid "Root common name"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:305
msgid "Rs"
msgstr "SR"
-#: src/wx/film_editor.cc:227
+#: src/wx/dcp_panel.cc:114
msgid "SMPTE"
msgstr "SMPTE"
-#: src/wx/video_panel.cc:132
+#: src/wx/video_panel.cc:143
msgid "Scale to"
msgstr "Skaliere auf"
-#: src/wx/video_panel.cc:316
+#: src/wx/video_panel.cc:337
#, c-format
msgid "Scaled to %dx%d (%.2f:1)\n"
msgstr "Skaliert auf %dx%d (%.2f:1)\n"
-#: src/wx/film_editor.cc:195
+#: src/wx/dcp_panel.cc:574
msgid "Scaler"
msgstr "Skalierverfahren"
msgid "Select CPL XML file"
msgstr "CPL XML Datei auswählen"
-#: src/wx/screen_dialog.cc:102
+#: src/wx/config_dialog.cc:679 src/wx/config_dialog.cc:795
+#: src/wx/config_dialog.cc:840 src/wx/screen_dialog.cc:102
msgid "Select Certificate File"
msgstr "Zertifikat Datei auswählen"
+#: src/wx/content_menu.cc:266
+msgid "Select KDM"
+msgstr ""
+
+#: src/wx/config_dialog.cc:769 src/wx/config_dialog.cc:817
+#, fuzzy
+msgid "Select Key File"
+msgstr "Zertifikat Datei auswählen"
+
#: src/wx/kdm_dialog.cc:185
msgid "Send by email"
msgstr "Per Email senden"
msgid "Server serial number"
msgstr "Server Seriennummer"
-#: src/wx/config_dialog.cc:438
+#: src/wx/config_dialog.cc:444
msgid "Servers"
msgstr "Encoding Server"
msgid "Set"
msgstr "Setzen"
-#: src/wx/config_dialog.cc:92
+#: src/wx/config_dialog.cc:99
msgid "Set language"
msgstr "Sprache setzen"
-#: src/wx/audio_panel.cc:48
+#: src/wx/audio_panel.cc:51
msgid "Show Audio..."
msgstr "Ton anzeigen..."
-#: src/wx/film_editor.cc:158
+#: src/wx/dcp_panel.cc:88
msgid "Signed"
msgstr "Signiert"
msgid "Smoothing"
msgstr "Glätten"
-#: src/wx/timeline_dialog.cc:38
+#: src/wx/timeline_dialog.cc:39
msgid "Snap"
msgstr "Auf Objekte einrasten"
msgid "Stable version "
msgstr "Stabile Version"
-#: src/wx/film_editor.cc:190
+#: src/wx/dcp_panel.cc:96
msgid "Standard"
msgstr "Standard"
-#: src/wx/audio_panel.cc:81 src/wx/subtitle_panel.cc:79
+#: src/wx/subtitle_view.cc:39
+msgid "Start"
+msgstr ""
+
+#: src/wx/audio_panel.cc:84 src/wx/subtitle_panel.cc:87
msgid "Stream"
msgstr "Spur"
msgid "Studio (e.g. TCF)"
msgstr "Studio (z.B. TCF)"
-#: src/wx/config_dialog.cc:671
+#: src/wx/config_dialog.cc:1010
msgid "Subject"
msgstr ""
+#: src/wx/subtitle_view.cc:55
+#, fuzzy
+msgid "Subtitle"
+msgstr "Untertitel"
+
#: src/wx/isdcf_metadata_dialog.cc:38
msgid "Subtitle Language (e.g. FR)"
msgstr "Untertitel Sprache (z.B. EN)"
-#: src/wx/subtitle_panel.cc:34
+#: src/wx/subtitle_panel.cc:41 src/wx/subtitle_view.cc:32
msgid "Subtitles"
msgstr "Untertitel"
-#: src/wx/about_dialog.cc:165
+#: src/wx/about_dialog.cc:168
msgid "Supported by"
msgstr "Unterstützt durch"
-#: src/wx/config_dialog.cc:542
+#: src/wx/config_dialog.cc:881
msgid "TMS"
msgstr "TMS"
-#: src/wx/config_dialog.cc:564
+#: src/wx/config_dialog.cc:903
msgid "Target path"
msgstr "Zielpfad"
msgid "Test version "
msgstr "Test Version"
- #: src/wx/about_dialog.cc:213
+ #: src/wx/about_dialog.cc:210
msgid "Tested by"
msgstr "Getestet von"
-#: src/wx/content_menu.cc:223
+#: src/wx/content_menu.cc:252
msgid ""
"The content file(s) you specified are not the same as those that are "
"missing. Either try again with the correct content file or remove the "
msgid "There are no hints: everything looks good!"
msgstr "Keine Warnungen: Alles sieht gut aus!"
-#: src/wx/film_viewer.cc:134
+#: src/wx/film_viewer.cc:142
msgid "There is not enough free memory to do that."
msgstr "Für diese Operation ist nicht genug freier Speicher verfügbar."
msgid "Threads"
msgstr "Threads"
-#: src/wx/config_dialog.cc:111
+#: src/wx/config_dialog.cc:118
msgid "Threads to use for encoding on this host"
msgstr "Auf diesem Rechner zu benutzende CPU-Threads"
+#: src/wx/config_dialog.cc:583
+msgid "Thumbprint"
+msgstr ""
+
#: src/wx/audio_plot.cc:165
msgid "Time"
msgstr "Zeit"
-#: src/wx/timeline_dialog.cc:32
+#: src/wx/timeline_dialog.cc:33
msgid "Timeline"
msgstr "Zeitleiste"
-#: src/wx/film_editor.cc:290
+#: src/wx/content_panel.cc:77
msgid "Timeline..."
msgstr "Zeitleiste..."
msgid "Timing|Timing"
msgstr "Trimmen"
-#: src/wx/video_panel.cc:110
+#: src/wx/video_panel.cc:111
msgid "Top crop"
msgstr "Oben beschneiden"
-#: src/wx/about_dialog.cc:107
+#: src/wx/about_dialog.cc:111
msgid "Translated by"
msgstr "Ãœbersetzt von"
msgid "Trim from start"
msgstr "Schnitt vom Anfang"
-#: src/wx/audio_dialog.cc:55 src/wx/video_panel.cc:75
+#: src/wx/audio_dialog.cc:55 src/wx/config_dialog.cc:575
+#: src/wx/video_panel.cc:76
msgid "Type"
msgstr "Typ"
msgid "Until"
msgstr "Bis"
-#: src/wx/film_editor.cc:286
+#: src/wx/content_panel.cc:73
msgid "Up"
msgstr "Nach oben"
msgid "Update"
msgstr "Update"
-#: src/wx/film_editor.cc:123
+#: src/wx/dcp_panel.cc:66
msgid "Use ISDCF name"
msgstr "ISDCF Name benutzen"
-#: src/wx/config_dialog.cc:452
+#: src/wx/config_dialog.cc:458
msgid "Use all servers"
msgstr "Alle verfügbaren Server im Subnetz benutzen"
-#: src/wx/film_editor.cc:152
+#: src/wx/dcp_panel.cc:545
msgid "Use best"
msgstr "Beste benutzen"
msgid "Use preset"
msgstr "Preset benutzen"
-#: src/wx/config_dialog.cc:568
+#: src/wx/subtitle_panel.cc:47
+#, fuzzy
+msgid "Use subtitles"
+msgstr "Untertitel"
+
+#: src/wx/config_dialog.cc:907
msgid "User name"
msgstr "Benutzer Name"
-#: src/wx/audio_mapping_view.cc:305
+#: src/wx/audio_mapping_view.cc:313
msgid "VI"
msgstr "VI"
-#: src/wx/video_panel.cc:68
+#: src/wx/dcp_panel.cc:85 src/wx/video_panel.cc:69
msgid "Video"
msgstr "Bild"
msgid "Video frame rate"
msgstr "Bildwiederholrate"
-#: src/wx/config_dialog.cc:815
+#: src/wx/subtitle_panel.cc:91
+msgid "View..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:1157
msgid "Warnings"
msgstr "Warnungen"
-#: src/wx/subtitle_panel.cc:39
-msgid "With Subtitles"
-msgstr "Mit Untertitelung"
-
#: src/wx/kdm_dialog.cc:172
msgid "Write to"
msgstr "Speichern nach"
-#: src/wx/about_dialog.cc:91
+#: src/wx/about_dialog.cc:95
msgid "Written by"
msgstr "Geschrieben von"
-#: src/wx/subtitle_panel.cc:44
+#: src/wx/subtitle_panel.cc:52
msgid "X Offset"
msgstr "Horizontale Verschiebung"
-#: src/wx/subtitle_panel.cc:62
+#: src/wx/subtitle_panel.cc:70
#, fuzzy
msgid "X Scale"
msgstr "Größe"
-#: src/wx/subtitle_panel.cc:53
+#: src/wx/subtitle_panel.cc:61
msgid "Y Offset"
msgstr "Vertikale Verschiebung"
-#: src/wx/subtitle_panel.cc:71
+#: src/wx/subtitle_panel.cc:79
#, fuzzy
msgid "Y Scale"
msgstr "Größe"
"Ihr DCP hat weniger als 6 Audiokanäle. Das kann auf manchen Projektoren zu "
"Problemen führen."
-#: src/wx/timeline.cc:220
+#: src/wx/timeline.cc:229
msgid "audio"
msgstr "Ton"
-#: src/wx/audio_panel.cc:240
-msgid "channels"
-msgstr "Kanäle"
-
#: src/wx/properties_dialog.cc:46
msgid "counting..."
msgstr "zähle..."
-#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:62
+#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:65
msgid "dB"
msgstr "dB"
#. / TRANSLATORS: this is an abbreviation for milliseconds, the unit of time
-#: src/wx/audio_panel.cc:78 src/wx/config_dialog.cc:300
+#: src/wx/audio_panel.cc:81 src/wx/config_dialog.cc:306
msgid "ms"
msgstr "ms"
-#: src/wx/config_dialog.cc:258
+#: src/wx/config_dialog.cc:264
msgid "s"
msgstr "s"
-#: src/wx/timeline.cc:243
+#: src/wx/timeline.cc:258
msgid "still"
msgstr "Standbild"
+#: src/wx/timeline.cc:289
+#, fuzzy
+msgid "subtitles"
+msgstr "Untertitel"
+
#: src/wx/repeat_dialog.cc:28
msgid "times"
msgstr "mal"
-#: src/wx/timeline.cc:241
+#: src/wx/timeline.cc:260
msgid "video"
msgstr "Bild"
+#~ msgid "1 channel"
+#~ msgstr "1 Kanal"
+
+#~ msgid "Audio channels"
+#~ msgstr "Ton Kanäle"
+
+#~ msgid "Could not decode video for view (%s)"
+#~ msgstr "Bild konnte nicht zur Vorschau dekodiert werden (%s)"
+
+#~ msgid "Hz"
+#~ msgstr "Hz"
+
+#~ msgid "With Subtitles"
+#~ msgstr "Mit Untertitelung"
+
+#~ msgid "channels"
+#~ msgstr "Kanäle"
+
#~ msgid "Default creator"
#~ msgstr "Standard 'creator' (DCI)"
msgstr ""
"Project-Id-Version: libdcpomatic-wx\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-10-16 16:38+0100\n"
+"POT-Creation-Date: 2014-10-15 09:37+0100\n"
"PO-Revision-Date: 2014-04-20 12:06-0500\n"
"Last-Translator: Manuel AC <manuel.acevedo@civantos.>\n"
"Language-Team: Manuel AC <manuel.acevedo@civantos.com>\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.4\n"
-#: src/wx/subtitle_panel.cc:48 src/wx/subtitle_panel.cc:57
-#: src/wx/subtitle_panel.cc:66 src/wx/subtitle_panel.cc:75
+#: src/wx/subtitle_panel.cc:56 src/wx/subtitle_panel.cc:65
+#: src/wx/subtitle_panel.cc:74 src/wx/subtitle_panel.cc:83
msgid "%"
msgstr "%"
-#: src/wx/about_dialog.cc:78
+#: src/wx/about_dialog.cc:82
msgid ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
msgstr ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
-#: src/wx/config_dialog.cc:664
+#: src/wx/config_dialog.cc:1003
msgid "(password will be stored on disk in plaintext)"
msgstr "(claves guardadas como texto plano en el disco)"
-#: src/wx/config_dialog.cc:104
+#: src/wx/config_dialog.cc:111
msgid "(restart DCP-o-matic to see language changes)"
msgstr "(reinicia DCP-o-matic para ver el cambio de idioma)"
-#: src/wx/audio_mapping_view.cc:134
+#: src/wx/audio_mapping_view.cc:142
msgid "-6dB"
msgstr ""
msgid "1 / "
msgstr "1 / "
-#: src/wx/audio_panel.cc:238
-msgid "1 channel"
-msgstr "1 canal"
-
-#: src/wx/video_panel.cc:197
+#: src/wx/video_panel.cc:193
msgid "2D"
msgstr "2D"
msgid "2D version of content available in 3D"
msgstr "Nuevas versiones disponibles de DCP-o-matic."
-#: src/wx/film_editor.cc:224
+#: src/wx/dcp_panel.cc:607
msgid "2K"
msgstr "2K"
-#: src/wx/film_editor.cc:171
+#: src/wx/dcp_panel.cc:555
msgid "3D"
msgstr "3D"
-#: src/wx/video_panel.cc:200
+#: src/wx/video_panel.cc:196
msgid "3D alternate"
msgstr "3D alterno"
-#: src/wx/video_panel.cc:201
+#: src/wx/video_panel.cc:197
msgid "3D left only"
msgstr ""
-#: src/wx/video_panel.cc:198
+#: src/wx/video_panel.cc:194
msgid "3D left/right"
msgstr "3D izquierda/derecha"
-#: src/wx/video_panel.cc:202
+#: src/wx/video_panel.cc:198
#, fuzzy
msgid "3D right only"
msgstr "3D izquierda/derecha"
-#: src/wx/video_panel.cc:199
+#: src/wx/video_panel.cc:195
msgid "3D top/bottom"
msgstr "3D arriba/abajo"
-#: src/wx/film_editor.cc:225
+#: src/wx/dcp_panel.cc:608
msgid "4K"
msgstr "4K"
msgid "A new version of DCP-o-matic is available."
msgstr "Una nueva versión de DCP-o-matic está disponible."
-#: src/wx/about_dialog.cc:30
+#: src/wx/about_dialog.cc:34
msgid "About DCP-o-matic"
msgstr "Acerca de DCP-o-matic"
msgid "Add Cinema..."
msgstr "Añadir cine..."
+#: src/wx/content_menu.cc:57
+#, fuzzy
+msgid "Add KDM..."
+msgstr "Añadir cine..."
+
#: src/wx/kdm_dialog.cc:86
msgid "Add Screen..."
msgstr "Añadir pantalla..."
-#: src/wx/film_editor.cc:280
+#: src/wx/content_panel.cc:67
msgid "Add file(s)..."
msgstr "Añadir fichero(s)..."
-#: src/wx/film_editor.cc:282
+#: src/wx/content_panel.cc:69
msgid "Add folder..."
msgstr "Añadir carpeta..."
-#: src/wx/editable_list.h:62
+#: src/wx/config_dialog.cc:597 src/wx/editable_list.h:62
msgid "Add..."
msgstr "Añadir..."
"tab."
msgstr ""
-#: src/wx/config_dialog.cc:799
+#: src/wx/config_dialog.cc:1141
#, fuzzy
msgid "Allow any DCP frame rate"
msgstr "Velocidad de imagen"
-#: src/wx/about_dialog.cc:111
+#: src/wx/about_dialog.cc:115
msgid "Artwork by"
msgstr "Grafismo de"
-#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:40
+#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:43 src/wx/dcp_panel.cc:86
msgid "Audio"
msgstr "Audio"
msgid "Audio Language (e.g. EN)"
msgstr "Idioma del audio (ej. ES)"
-#: src/wx/film_editor.cc:166
-msgid "Audio channels"
-msgstr "Canales de audio"
-
-#: src/wx/audio_mapping_view.cc:350
+#: src/wx/audio_mapping_view.cc:358
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d unaltered."
msgstr "El audio del canal %d pasará al canal %d del DCP sin modificar."
-#: src/wx/audio_mapping_view.cc:353
+#: src/wx/audio_mapping_view.cc:361
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d with gain "
"%.1fdB."
msgstr "El audio del canal %d pasará al canal %d del DCP con ganancia %.1fdB."
-#: src/wx/config_dialog.cc:683
+#: src/wx/config_dialog.cc:1022
#, fuzzy
msgid "BCC address"
msgstr "Dirección IP"
msgid "Browse..."
msgstr "Explorar..."
-#: src/wx/audio_mapping_view.cc:317
+#: src/wx/audio_mapping_view.cc:325
msgid "BsL"
msgstr "BsL"
-#: src/wx/audio_mapping_view.cc:321
+#: src/wx/audio_mapping_view.cc:329
msgid "BsR"
msgstr "BsR"
+#: src/wx/dcp_panel.cc:551
+msgid "Burn subtitles into image"
+msgstr ""
+
#: src/wx/gain_calculator_dialog.cc:32
msgid "But I have to use fader"
msgstr "pero tengo que usar el fader a"
-#: src/wx/audio_mapping_view.cc:285
+#: src/wx/audio_mapping_view.cc:293
msgid "C"
msgstr "C"
-#: src/wx/config_dialog.cc:679
+#: src/wx/config_dialog.cc:1018
#, fuzzy
msgid "CC address"
msgstr "Dirección IP"
msgid "CPL annotation text"
msgstr ""
-#: src/wx/audio_panel.cc:63
+#: src/wx/audio_panel.cc:66
msgid "Calculate..."
msgstr "Calcular..."
msgid "Certificate"
msgstr "Certificado"
+#: src/wx/config_dialog.cc:564
+msgid "Certificate chain for signing DCPs and KDMs:"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:191
#: src/wx/doremi_certificate_dialog.cc:103
msgid "Certificate downloaded"
msgstr "Certificado descargado"
+#: src/wx/config_dialog.cc:625
+msgid "Certificate for decrypting DCPs"
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:65
msgid "Chain"
msgstr ""
msgid "Channel gain"
msgstr "Ganancia del canal"
-#: src/wx/audio_dialog.cc:44
+#: src/wx/audio_dialog.cc:44 src/wx/dcp_panel.cc:623
msgid "Channels"
msgstr "Canales"
-#: src/wx/config_dialog.cc:120
+#: src/wx/config_dialog.cc:126
msgid "Check for testing updates as well as stable ones"
msgstr "Buscar actualizaciones de prueba y estables"
-#: src/wx/config_dialog.cc:116
+#: src/wx/config_dialog.cc:122
msgid "Check for updates on startup"
msgstr "Buscar actualizaciones al iniciar"
-#: src/wx/content_menu.cc:182
+#: src/wx/content_menu.cc:198
msgid "Choose a file"
msgstr "Elige un fichero"
-#: src/wx/film_editor.cc:810
+#: src/wx/content_panel.cc:241
msgid "Choose a file or files"
msgstr "Elegir un fichero o ficheros"
-#: src/wx/content_menu.cc:175 src/wx/film_editor.cc:833
+#: src/wx/content_menu.cc:191 src/wx/content_panel.cc:264
msgid "Choose a folder"
msgstr "Elige una carpeta"
msgid "Cinema"
msgstr "Cine"
-#: src/wx/config_dialog.cc:498
+#: src/wx/config_dialog.cc:504
msgid "Colour Conversions"
msgstr "Conversiones de color"
#: src/wx/content_colour_conversion_dialog.cc:34
-#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:162
+#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:167
msgid "Colour conversion"
msgstr "Conversión de color"
-#: src/wx/config_dialog.cc:819
+#: src/wx/config_dialog.cc:1161
#, fuzzy
msgid "Config|Timing"
msgstr "Tiempo"
-#: src/wx/film_editor.cc:134
+#: src/wx/dcp_panel.cc:532
msgid "Container"
msgstr "Continente"
-#: src/wx/audio_mapping_view.cc:270 src/wx/film_editor.cc:85
+#: src/wx/audio_mapping_view.cc:278 src/wx/film_editor.cc:83
msgid "Content"
msgstr "Contenido"
-#: src/wx/film_editor.cc:139
+#: src/wx/dcp_panel.cc:77
msgid "Content Type"
msgstr "Tipo de contenido"
-#: src/wx/video_panel.cc:332
+#: src/wx/video_panel.cc:353
#, c-format
msgid "Content frame rate %.4f\n"
msgstr "Velocidad del contenido %.4f\n"
msgid "Content version"
msgstr "Versión del contenido"
-#: src/wx/video_panel.cc:292
+#: src/wx/video_panel.cc:313
#, c-format
msgid "Content video is %dx%d (%.2f:1)\n"
msgstr "El video es %dx%d (%.2f:1)\n"
msgid "Could not analyse audio."
msgstr "No se pudo analizar el audio."
-#: src/wx/film_viewer.cc:346
-#, c-format
-msgid "Could not decode video for view (%s)"
-msgstr "No se pudo decodificar el vÃdeo para mostrarlo (%s)"
+#: src/wx/content_panel.cc:280
+msgid "Could not find any images nor a DCP in that folder"
+msgstr ""
#: src/wx/job_wrapper.cc:39
#, c-format
msgid "Could not make DCP: %s"
msgstr "No se pudo crear el DCP: %s"
-#: src/wx/screen_dialog.cc:95
+#: src/wx/config_dialog.cc:688 src/wx/config_dialog.cc:783
+#: src/wx/config_dialog.cc:803 src/wx/screen_dialog.cc:95
#, fuzzy, c-format
msgid "Could not read certificate file (%s)"
msgstr "No se pudo abrir el fichero (%s)"
+#: src/wx/config_dialog.cc:775 src/wx/config_dialog.cc:825
+#, fuzzy, c-format
+msgid "Could not read key file (%s)"
+msgstr "No se pudo abrir el fichero (%s)"
+
#: src/wx/dolby_certificate_dialog.cc:39
msgid "Country"
msgstr "PaÃs"
msgid "Create in folder"
msgstr "Crear en carpeta"
-#: src/wx/video_panel.cc:304
+#: src/wx/video_panel.cc:325
#, c-format
msgid "Cropped to %dx%d (%.2f:1)\n"
msgstr "Recortado a %dx%d (%.2f:1)\n"
-#: src/wx/video_panel.cc:244
+#: src/wx/video_panel.cc:243
msgid "Custom"
msgstr "Personalizado"
-#: src/wx/film_editor.cc:87
+#: src/wx/film_editor.cc:85
msgid "DCP"
msgstr "DCP"
-#: src/wx/film_editor.cc:129
+#: src/wx/dcp_panel.cc:72
msgid "DCP Name"
msgstr "Nombre DCP"
msgid "DCP directory"
msgstr ""
-#: src/wx/about_dialog.cc:45 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
+#: src/wx/about_dialog.cc:49 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic audio - %s"
msgstr "Audio DCP-o-matic - %s"
-#: src/wx/config_dialog.cc:270
+#: src/wx/config_dialog.cc:276
#, fuzzy
msgid "Default ISDCF name details"
msgstr "Detalles por defecto del nombre DCI"
-#: src/wx/config_dialog.cc:287
+#: src/wx/config_dialog.cc:293
msgid "Default JPEG2000 bandwidth"
msgstr "Ancho de banda JPEG2000 por defecto"
-#: src/wx/config_dialog.cc:296
+#: src/wx/config_dialog.cc:302
msgid "Default audio delay"
msgstr "Retardo de audio por defecto"
-#: src/wx/config_dialog.cc:278
+#: src/wx/config_dialog.cc:284
msgid "Default container"
msgstr "Contenedor por defecto"
-#: src/wx/config_dialog.cc:282
+#: src/wx/config_dialog.cc:288
msgid "Default content type"
msgstr "Tipo de contenido por defecto"
-#: src/wx/config_dialog.cc:262
+#: src/wx/config_dialog.cc:268
msgid "Default directory for new films"
msgstr "Carpeta por defecto para nuevas pelÃculas"
-#: src/wx/config_dialog.cc:254
+#: src/wx/config_dialog.cc:260
msgid "Default duration of still images"
msgstr "Duración por defecto de las imágenes fijas"
-#: src/wx/config_dialog.cc:304
+#: src/wx/config_dialog.cc:310
msgid "Default issuer"
msgstr "Emisor por defecto"
-#: src/wx/config_dialog.cc:274
+#: src/wx/config_dialog.cc:280
msgid "Default scale to"
msgstr ""
-#: src/wx/config_dialog.cc:235
+#: src/wx/config_dialog.cc:241
msgid "Defaults"
msgstr "Por defecto"
-#: src/wx/audio_panel.cc:67
+#: src/wx/audio_panel.cc:70
#, fuzzy
msgid "Delay"
msgstr "Retardo del audio"
-#: src/wx/film_editor.cc:125 src/wx/job_manager_view.cc:79
+#: src/wx/dcp_panel.cc:68 src/wx/job_manager_view.cc:79
msgid "Details..."
msgstr "Detalles..."
msgid "Doremi serial numbers must have 6 digits"
msgstr "Los números de serie de Doremi deben tener 6 cifras"
-#: src/wx/film_editor.cc:288
+#: src/wx/content_panel.cc:75
msgid "Down"
msgstr "Bajar"
msgid "Edit Screen..."
msgstr "Editar pantalla..."
-#: src/wx/audio_mapping_view.cc:135 src/wx/config_dialog.cc:271
-#: src/wx/video_panel.cc:155 src/wx/video_panel.cc:172
+#: src/wx/audio_mapping_view.cc:143 src/wx/config_dialog.cc:277
+#: src/wx/video_panel.cc:163 src/wx/video_panel.cc:170
#: src/wx/editable_list.h:66
msgid "Edit..."
msgstr "Editar..."
msgid "Encoding Servers"
msgstr "Servidores de codificación"
-#: src/wx/film_editor.cc:162
+#: src/wx/dcp_panel.cc:92
msgid "Encrypted"
msgstr "Encriptado"
-#: src/wx/config_dialog.cc:817
+#: src/wx/subtitle_view.cc:47
+msgid "End"
+msgstr "Fin"
+
+#: src/wx/config_dialog.cc:1159
msgid "Errors"
msgstr ""
+#: src/wx/config_dialog.cc:651
+msgid "Export DCP decryption certificate..."
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:50
msgid "Facility (e.g. DLA)"
msgstr "CompañÃa (ej. DLA)"
+#: src/wx/video_panel.cc:133
+msgid "Fade in"
+msgstr ""
+
+#: src/wx/video_panel.cc:138
+msgid "Fade out"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:76
#: src/wx/dolby_certificate_dialog.cc:100
#: src/wx/dolby_certificate_dialog.cc:123
msgid "Film name"
msgstr "Nombre de la pelÃcula"
-#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:146
+#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:160
msgid "Filters"
msgstr "Filtros"
-#: src/wx/content_menu.cc:52
+#: src/wx/content_menu.cc:55
msgid "Find missing..."
msgstr "Buscar ausentes..."
-#: src/wx/film_editor.cc:145
+#: src/wx/dcp_panel.cc:538
msgid "Frame Rate"
msgstr "Velocidad"
msgid "Frames already encoded"
msgstr "Fotogramas ya codificados"
-#: src/wx/about_dialog.cc:61
+#: src/wx/about_dialog.cc:65
msgid "Free, open-source DCP generation from almost anything."
msgstr ""
"Generación de DCP a partir de casi cualquier cosa, libre y de código abierto."
msgid "From"
msgstr "De"
-#: src/wx/config_dialog.cc:675
+#: src/wx/config_dialog.cc:1014
#, fuzzy
msgid "From address"
msgstr "Dirección IP"
-#: src/wx/audio_mapping_view.cc:133
+#: src/wx/audio_mapping_view.cc:141
msgid "Full"
msgstr "Completo"
msgid "Full length"
msgstr "Duración completa"
-#: src/wx/audio_panel.cc:52
+#: src/wx/audio_panel.cc:55
msgid "Gain"
msgstr ""
msgid "Gain for content channel %d in DCP channel %d"
msgstr "Ganancia del canal %d en el canal %d del DCP"
-#: src/wx/properties_dialog.cc:52
+#: src/wx/properties_dialog.cc:51
msgid "Gb"
msgstr "Gb"
-#: src/wx/config_dialog.cc:813
+#: src/wx/config_dialog.cc:1155
msgid "General"
msgstr ""
-#: src/wx/audio_mapping_view.cc:301
+#: src/wx/audio_mapping_view.cc:309
msgid "HI"
msgstr "HI"
msgid "Host name or IP address"
msgstr "Nombre o dirección IP"
-#: src/wx/audio_panel.cc:242
-msgid "Hz"
-msgstr "Hz"
-
#: src/wx/gain_calculator_dialog.cc:29
msgid "I want to play this back at fader"
msgstr "Quiero reproducir con el fader a"
-#: src/wx/config_dialog.cc:560
+#: src/wx/config_dialog.cc:899
msgid "IP address"
msgstr "Dirección IP"
-#: src/wx/config_dialog.cc:456
+#: src/wx/config_dialog.cc:462
msgid "IP address / host name"
msgstr "Dirección IP / nombre"
msgid "Input gamma"
msgstr "Gamma de entrada"
-#: src/wx/film_editor.cc:228
+#: src/wx/config_dialog.cc:727
+msgid "Intermediate"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:31
+msgid "Intermediate common name"
+msgstr ""
+
+#: src/wx/dcp_panel.cc:115
msgid "Interop"
msgstr "Interop"
-#: src/wx/film_editor.cc:181
+#: src/wx/dcp_panel.cc:565
msgid "JPEG2000 bandwidth"
msgstr "Ancho de banda JPEG2000"
-#: src/wx/content_menu.cc:51
+#: src/wx/content_menu.cc:54
msgid "Join"
msgstr "Unir"
-#: src/wx/config_dialog.cc:627
+#: src/wx/config_dialog.cc:966
msgid "KDM Email"
msgstr "Email KDM"
msgid "KDM|Timing"
msgstr "Tiempo"
-#: src/wx/film_editor.cc:298
+#: src/wx/content_panel.cc:85
msgid "Keep video in sequence"
msgstr "Mantener el video secuencia"
-#: src/wx/audio_mapping_view.cc:277
+#: src/wx/config_dialog.cc:548
+msgid "Keys"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:285
msgid "L"
msgstr "L"
-#: src/wx/audio_mapping_view.cc:309
+#: src/wx/audio_mapping_view.cc:317
msgid "Lc"
msgstr "Lc"
-#: src/wx/video_panel.cc:88
+#: src/wx/config_dialog.cc:725
+msgid "Leaf"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:33
+msgid "Leaf common name"
+msgstr ""
+
+#: src/wx/video_panel.cc:89
msgid "Left crop"
msgstr "Recorte izquierda"
-#: src/wx/audio_mapping_view.cc:289
+#: src/wx/audio_mapping_view.cc:297
msgid "Lfe"
msgstr "Lfe"
msgid "Load from file..."
msgstr "Cargar de fichero..."
-#: src/wx/config_dialog.cc:807
+#: src/wx/config_dialog.cc:620 src/wx/config_dialog.cc:633
+#: src/wx/config_dialog.cc:646
+#, fuzzy
+msgid "Load..."
+msgstr "Añadir..."
+
+#: src/wx/config_dialog.cc:1149
msgid "Log"
msgstr ""
-#: src/wx/config_dialog.cc:804
+#: src/wx/config_dialog.cc:1146
msgid "Log:"
msgstr ""
-#: src/wx/audio_mapping_view.cc:293
+#: src/wx/audio_mapping_view.cc:301
msgid "Ls"
msgstr "Ls"
-#: src/wx/film_editor.cc:784
+#: src/wx/content_panel.cc:438
msgid "MISSING: "
msgstr "FALTA:"
-#: src/wx/config_dialog.cc:660
+#: src/wx/config_dialog.cc:999
msgid "Mail password"
msgstr "Clave del correo"
-#: src/wx/config_dialog.cc:656
+#: src/wx/config_dialog.cc:995
msgid "Mail user name"
msgstr "Usuario del correo"
msgid "Make KDMs"
msgstr "Crear KDMs"
+#: src/wx/make_signer_chain_dialog.cc:23
+#, fuzzy
+msgid "Make certificate chain"
+msgstr "Seleccionar fichero de certificado"
+
#: src/wx/isdcf_metadata_dialog.cc:71
msgid "Mastered luminance (e.g. 4fl)"
msgstr ""
msgid "Matrix"
msgstr "Matriz"
-#: src/wx/config_dialog.cc:791
+#: src/wx/config_dialog.cc:1133
msgid "Maximum JPEG2000 bandwidth"
msgstr "Ancho de banda JPEG2000 máximo"
-#: src/wx/config_dialog.cc:291 src/wx/config_dialog.cc:795
-#: src/wx/film_editor.cc:185
+#: src/wx/config_dialog.cc:297 src/wx/config_dialog.cc:1137
+#: src/wx/dcp_panel.cc:569
msgid "Mbit/s"
msgstr "Mbit/s"
-#: src/wx/video_panel.cc:280
+#: src/wx/video_panel.cc:301
msgid "Multiple content selected"
msgstr "Varios contenidos seleccionados"
msgid "My Documents"
msgstr "Mis documentos"
-#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:512
-#: src/wx/film_editor.cc:113 src/wx/preset_colour_conversion_dialog.cc:38
+#: src/wx/content_panel.cc:442
+msgid "NEEDS KDM: "
+msgstr ""
+
+#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:518
+#: src/wx/dcp_panel.cc:56 src/wx/preset_colour_conversion_dialog.cc:38
#: src/wx/screen_dialog.cc:38
msgid "Name"
msgstr "Nombre"
msgid "New versions of DCP-o-matic are available."
msgstr "Nuevas versiones disponibles de DCP-o-matic."
-#: src/wx/audio_mapping_view.cc:348
+#: src/wx/audio_mapping_view.cc:356
#, c-format
msgid "No audio will be passed from content channel %d to DCP channel %d."
msgstr "No pasará audio del canal de origen %d al canal %d del DCP."
-#: src/wx/video_panel.cc:153 src/wx/video_panel.cc:249
+#: src/wx/audio_panel.cc:290 src/wx/video_panel.cc:161
+#: src/wx/video_panel.cc:248
msgid "None"
msgstr "Ninguno"
-#: src/wx/audio_mapping_view.cc:132
+#: src/wx/audio_mapping_view.cc:140
msgid "Off"
msgstr "Off"
+#: src/wx/config_dialog.cc:1167
+msgid "Open console window"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:25
+#, fuzzy
+msgid "Organisation"
+msgstr "Duración"
+
+#: src/wx/make_signer_chain_dialog.cc:27
+msgid "Organisational unit"
+msgstr ""
+
#: src/wx/screen_dialog.cc:65
msgid "Other"
msgstr "Otros"
-#: src/wx/config_dialog.cc:652
+#: src/wx/config_dialog.cc:991
msgid "Outgoing mail server"
msgstr "Servidor de salida de correo"
+#: src/wx/film_viewer.cc:61
+#, fuzzy
+msgid "Outline content"
+msgstr "Varios contenidos seleccionados"
+
#: src/wx/kdm_dialog.cc:156
#, fuzzy
msgid "Output"
msgid "Package Type (e.g. OV)"
msgstr "Tipo de paquete (ej. OV)"
-#: src/wx/video_panel.cc:325
+#: src/wx/video_panel.cc:346
#, c-format
msgid "Padded with black to %dx%d (%.2f:1)\n"
msgstr "Completado con negro hasta %dx%d (%.2f:1)\n"
-#: src/wx/config_dialog.cc:572
+#: src/wx/config_dialog.cc:911
msgid "Password"
msgstr "Clave"
msgid "Peak"
msgstr "Pico"
-#: src/wx/film_viewer.cc:64
+#: src/wx/film_viewer.cc:67
msgid "Play"
msgstr "Reproducir"
msgid "Pre-release"
msgstr ""
-#: src/wx/audio_mapping_view.cc:281
+#: src/wx/config_dialog.cc:638
+msgid "Private key for decrypting DCPs"
+msgstr ""
+
+#: src/wx/config_dialog.cc:612
+msgid "Private key for leaf certificate"
+msgstr ""
+
+#: src/wx/audio_panel.cc:89
+msgid "Process with"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:289
msgid "R"
msgstr "R"
msgid "Rating (e.g. 15)"
msgstr "Clasificación (ej. 16)"
-#: src/wx/audio_mapping_view.cc:313
+#: src/wx/audio_mapping_view.cc:321
msgid "Rc"
msgstr "Rc"
+#: src/wx/content_menu.cc:56
+msgid "Re-examine..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:608
+#, fuzzy
+msgid "Re-make certificates..."
+msgstr "Descargar certificado"
+
#: src/wx/isdcf_metadata_dialog.cc:62
msgid "Red band"
msgstr ""
-#: src/wx/content_menu.cc:54 src/wx/film_editor.cc:284
-#: src/wx/editable_list.h:68
+#: src/wx/config_dialog.cc:599 src/wx/content_menu.cc:59
+#: src/wx/content_panel.cc:71 src/wx/editable_list.h:68
msgid "Remove"
msgstr "Quitar"
msgid "Repeat Content"
msgstr "Repetir contenido"
-#: src/wx/content_menu.cc:50
+#: src/wx/content_menu.cc:53
msgid "Repeat..."
msgstr "Repetir..."
-#: src/wx/config_dialog.cc:690
+#: src/wx/config_dialog.cc:1029
msgid "Reset to default text"
msgstr ""
-#: src/wx/film_editor.cc:175
+#: src/wx/dcp_panel.cc:559
msgid "Resolution"
msgstr "Resolución"
msgid "Resume"
msgstr "Continuar"
-#: src/wx/audio_mapping_view.cc:356
+#: src/wx/audio_mapping_view.cc:364
msgid "Right click to change gain."
msgstr "Click derecho para cambiar la ganancia."
msgid "Right crop"
msgstr "Recorte derecha"
-#: src/wx/audio_mapping_view.cc:297
+#: src/wx/config_dialog.cc:723
+msgid "Root"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:29
+msgid "Root common name"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:305
msgid "Rs"
msgstr "Rs"
-#: src/wx/film_editor.cc:227
+#: src/wx/dcp_panel.cc:114
msgid "SMPTE"
msgstr "SMPTE"
-#: src/wx/video_panel.cc:132
+#: src/wx/video_panel.cc:143
msgid "Scale to"
msgstr "Redimensionar a"
-#: src/wx/video_panel.cc:316
+#: src/wx/video_panel.cc:337
#, c-format
msgid "Scaled to %dx%d (%.2f:1)\n"
msgstr "Redimensionado a %dx%d (%.2f:1)\n"
-#: src/wx/film_editor.cc:195
+#: src/wx/dcp_panel.cc:574
msgid "Scaler"
msgstr "Escalador"
msgid "Select CPL XML file"
msgstr "Seleccionar fichero de audio"
-#: src/wx/screen_dialog.cc:102
+#: src/wx/config_dialog.cc:679 src/wx/config_dialog.cc:795
+#: src/wx/config_dialog.cc:840 src/wx/screen_dialog.cc:102
msgid "Select Certificate File"
msgstr "Seleccionar fichero de certificado"
+#: src/wx/content_menu.cc:266
+msgid "Select KDM"
+msgstr ""
+
+#: src/wx/config_dialog.cc:769 src/wx/config_dialog.cc:817
+#, fuzzy
+msgid "Select Key File"
+msgstr "Seleccionar fichero de certificado"
+
#: src/wx/kdm_dialog.cc:185
msgid "Send by email"
msgstr "Enviar por email"
msgid "Server serial number"
msgstr "Número de serie del servidor"
-#: src/wx/config_dialog.cc:438
+#: src/wx/config_dialog.cc:444
msgid "Servers"
msgstr "Servidores"
msgid "Set"
msgstr "Seleccionar"
-#: src/wx/config_dialog.cc:92
+#: src/wx/config_dialog.cc:99
msgid "Set language"
msgstr "Seleccionar idioma"
-#: src/wx/audio_panel.cc:48
+#: src/wx/audio_panel.cc:51
msgid "Show Audio..."
msgstr "Mostrar audio..."
-#: src/wx/film_editor.cc:158
+#: src/wx/dcp_panel.cc:88
msgid "Signed"
msgstr "Firmado"
msgid "Smoothing"
msgstr "Suavizado"
-#: src/wx/timeline_dialog.cc:38
+#: src/wx/timeline_dialog.cc:39
msgid "Snap"
msgstr "Acoplar"
msgid "Stable version "
msgstr "Versión estable"
-#: src/wx/film_editor.cc:190
+#: src/wx/dcp_panel.cc:96
msgid "Standard"
msgstr "Estandard"
-#: src/wx/audio_panel.cc:81 src/wx/subtitle_panel.cc:79
+#: src/wx/subtitle_view.cc:39
+#, fuzzy
+msgid "Start"
+msgstr "Inicio"
+
+#: src/wx/audio_panel.cc:84 src/wx/subtitle_panel.cc:87
#, fuzzy
msgid "Stream"
msgstr "Flujo"
msgid "Studio (e.g. TCF)"
msgstr "Estudio (ej. TCF)"
-#: src/wx/config_dialog.cc:671
+#: src/wx/config_dialog.cc:1010
msgid "Subject"
msgstr ""
+#: src/wx/subtitle_view.cc:55
+#, fuzzy
+msgid "Subtitle"
+msgstr "SubtÃtulos"
+
#: src/wx/isdcf_metadata_dialog.cc:38
msgid "Subtitle Language (e.g. FR)"
msgstr "Idioma del subtÃtulo (ej. EN)"
-#: src/wx/subtitle_panel.cc:34
+#: src/wx/subtitle_panel.cc:41 src/wx/subtitle_view.cc:32
msgid "Subtitles"
msgstr "SubtÃtulos"
- #: src/wx/about_dialog.cc:168
+ #: src/wx/about_dialog.cc:165
msgid "Supported by"
msgstr "Soportado por"
-#: src/wx/config_dialog.cc:542
+#: src/wx/config_dialog.cc:881
msgid "TMS"
msgstr "TMS"
-#: src/wx/config_dialog.cc:564
+#: src/wx/config_dialog.cc:903
msgid "Target path"
msgstr "Ruta"
msgid "Test version "
msgstr "Versión en prueba"
- #: src/wx/about_dialog.cc:213
+ #: src/wx/about_dialog.cc:210
msgid "Tested by"
msgstr "Comprobado por"
-#: src/wx/content_menu.cc:223
+#: src/wx/content_menu.cc:252
msgid ""
"The content file(s) you specified are not the same as those that are "
"missing. Either try again with the correct content file or remove the "
msgid "There are no hints: everything looks good!"
msgstr "No hay recomendaciones: ¡todo parece bien!"
-#: src/wx/film_viewer.cc:134
+#: src/wx/film_viewer.cc:142
msgid "There is not enough free memory to do that."
msgstr "No hay suficiente memoria para hacer eso."
msgid "Threads"
msgstr "Hilos"
-#: src/wx/config_dialog.cc:111
+#: src/wx/config_dialog.cc:118
msgid "Threads to use for encoding on this host"
msgstr "Hilos a utilizar para la codificación en esta máquina"
+#: src/wx/config_dialog.cc:583
+msgid "Thumbprint"
+msgstr ""
+
#: src/wx/audio_plot.cc:165
msgid "Time"
msgstr "Tiempo"
-#: src/wx/timeline_dialog.cc:32
+#: src/wx/timeline_dialog.cc:33
msgid "Timeline"
msgstr "LÃnea de tiempo"
-#: src/wx/film_editor.cc:290
+#: src/wx/content_panel.cc:77
msgid "Timeline..."
msgstr "Linea de tiempo..."
msgid "Timing|Timing"
msgstr "Tiempo"
-#: src/wx/video_panel.cc:110
+#: src/wx/video_panel.cc:111
msgid "Top crop"
msgstr "Recortar arriba"
-#: src/wx/about_dialog.cc:107
+#: src/wx/about_dialog.cc:111
msgid "Translated by"
msgstr "Traducido por"
msgid "Trim from start"
msgstr "Recortar del inicio"
-#: src/wx/audio_dialog.cc:55 src/wx/video_panel.cc:75
+#: src/wx/audio_dialog.cc:55 src/wx/config_dialog.cc:575
+#: src/wx/video_panel.cc:76
msgid "Type"
msgstr "Tipo"
msgid "Until"
msgstr "Hasta"
-#: src/wx/film_editor.cc:286
+#: src/wx/content_panel.cc:73
msgid "Up"
msgstr "Subir"
msgid "Update"
msgstr "Actualizar"
-#: src/wx/film_editor.cc:123
+#: src/wx/dcp_panel.cc:66
#, fuzzy
msgid "Use ISDCF name"
msgstr "Usar el nombre DCI"
-#: src/wx/config_dialog.cc:452
+#: src/wx/config_dialog.cc:458
msgid "Use all servers"
msgstr "Usar todos los servidores"
-#: src/wx/film_editor.cc:152
+#: src/wx/dcp_panel.cc:545
msgid "Use best"
msgstr "Usar la mejor"
msgid "Use preset"
msgstr "Usar por defecto"
-#: src/wx/config_dialog.cc:568
+#: src/wx/subtitle_panel.cc:47
+#, fuzzy
+msgid "Use subtitles"
+msgstr "SubtÃtulos"
+
+#: src/wx/config_dialog.cc:907
msgid "User name"
msgstr "Nombre de usuario"
-#: src/wx/audio_mapping_view.cc:305
+#: src/wx/audio_mapping_view.cc:313
msgid "VI"
msgstr "VI"
-#: src/wx/video_panel.cc:68
+#: src/wx/dcp_panel.cc:85 src/wx/video_panel.cc:69
msgid "Video"
msgstr "VÃdeo"
msgid "Video frame rate"
msgstr "Velocidad de imagen"
-#: src/wx/config_dialog.cc:815
-msgid "Warnings"
+#: src/wx/subtitle_panel.cc:91
+msgid "View..."
msgstr ""
-#: src/wx/subtitle_panel.cc:39
-msgid "With Subtitles"
-msgstr "Con subtÃtulos"
+#: src/wx/config_dialog.cc:1157
+msgid "Warnings"
+msgstr ""
#: src/wx/kdm_dialog.cc:172
msgid "Write to"
msgstr "Escribe a"
-#: src/wx/about_dialog.cc:91
+#: src/wx/about_dialog.cc:95
msgid "Written by"
msgstr "Escrito por"
-#: src/wx/subtitle_panel.cc:44
+#: src/wx/subtitle_panel.cc:52
#, fuzzy
msgid "X Offset"
msgstr "Desplazamiento en X"
-#: src/wx/subtitle_panel.cc:62
+#: src/wx/subtitle_panel.cc:70
#, fuzzy
msgid "X Scale"
msgstr "Escalador"
-#: src/wx/subtitle_panel.cc:53
+#: src/wx/subtitle_panel.cc:61
#, fuzzy
msgid "Y Offset"
msgstr "Desplazamiento en Y"
-#: src/wx/subtitle_panel.cc:71
+#: src/wx/subtitle_panel.cc:79
#, fuzzy
msgid "Y Scale"
msgstr "Escalador"
"Tu DCP tiene menos de 6 canales de audio. Esto puede causar problemas con "
"algunos proyectores."
-#: src/wx/timeline.cc:220
+#: src/wx/timeline.cc:229
msgid "audio"
msgstr "audio"
-#: src/wx/audio_panel.cc:240
-msgid "channels"
-msgstr "canales"
-
#: src/wx/properties_dialog.cc:46
msgid "counting..."
msgstr "contando..."
-#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:62
+#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:65
msgid "dB"
msgstr "dB"
#. / TRANSLATORS: this is an abbreviation for milliseconds, the unit of time
-#: src/wx/audio_panel.cc:78 src/wx/config_dialog.cc:300
+#: src/wx/audio_panel.cc:81 src/wx/config_dialog.cc:306
msgid "ms"
msgstr "ms"
-#: src/wx/config_dialog.cc:258
+#: src/wx/config_dialog.cc:264
msgid "s"
msgstr "s"
-#: src/wx/timeline.cc:243
+#: src/wx/timeline.cc:258
msgid "still"
msgstr "fijo"
+#: src/wx/timeline.cc:289
+#, fuzzy
+msgid "subtitles"
+msgstr "SubtÃtulos"
+
#: src/wx/repeat_dialog.cc:28
msgid "times"
msgstr "veces"
-#: src/wx/timeline.cc:241
+#: src/wx/timeline.cc:260
msgid "video"
msgstr "vÃdeo"
+#~ msgid "1 channel"
+#~ msgstr "1 canal"
+
+#~ msgid "Audio channels"
+#~ msgstr "Canales de audio"
+
+#~ msgid "Could not decode video for view (%s)"
+#~ msgstr "No se pudo decodificar el vÃdeo para mostrarlo (%s)"
+
+#~ msgid "Hz"
+#~ msgstr "Hz"
+
+#~ msgid "With Subtitles"
+#~ msgstr "Con subtÃtulos"
+
+#~ msgid "channels"
+#~ msgstr "canales"
+
#~ msgid "Default creator"
#~ msgstr "Creador por defecto"
#~ msgid "Add"
#~ msgstr "Añadir"
-#~ msgid "Duration"
-#~ msgstr "Duración"
-
#~ msgid "Edit"
#~ msgstr "Editar"
#~ msgid "Running"
#~ msgstr "Ejecutando"
-#, fuzzy
-#~ msgid "Start time"
-#~ msgstr "Inicio"
-
#~ msgid "A/B"
#~ msgstr "A/B"
#~ msgid "DVD-o-matic Preferences"
#~ msgstr "Preferencias DVD-o-matic"
-#~ msgid "End"
-#~ msgstr "Fin"
-
#~ msgid "Film"
#~ msgstr "PelÃcula"
msgstr ""
"Project-Id-Version: DCP-o-matic FRENCH\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-07-14 11:27+0100\n"
"Last-Translator: Grégoire AUSINA <gregoire@gisele-productions.eu>\n"
"Language-Team: \n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.6\n"
-#: src/wx/subtitle_panel.cc:48 src/wx/subtitle_panel.cc:57
-#: src/wx/subtitle_panel.cc:66 src/wx/subtitle_panel.cc:75
+#: src/wx/subtitle_panel.cc:56 src/wx/subtitle_panel.cc:65
+#: src/wx/subtitle_panel.cc:74 src/wx/subtitle_panel.cc:83
msgid "%"
msgstr "%"
-#: src/wx/about_dialog.cc:78
+#: src/wx/about_dialog.cc:82
msgid ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
msgstr ""
"(C) 2012-2014 par Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole "
"Laursen"
-#: src/wx/config_dialog.cc:664
+#: src/wx/config_dialog.cc:1003
msgid "(password will be stored on disk in plaintext)"
msgstr "(le mot de passe sera enregistré sur le disque dur au format texte)"
-#: src/wx/config_dialog.cc:104
+#: src/wx/config_dialog.cc:111
msgid "(restart DCP-o-matic to see language changes)"
msgstr "(redémarrez DCP-o-matic pour appliquer le changement de langue)"
-#: src/wx/audio_mapping_view.cc:134
+#: src/wx/audio_mapping_view.cc:142
msgid "-6dB"
msgstr "-6dB"
msgid "1 / "
msgstr "1/"
-#: src/wx/audio_panel.cc:238
-msgid "1 channel"
-msgstr "1 canal"
-
-#: src/wx/video_panel.cc:197
+#: src/wx/video_panel.cc:193
msgid "2D"
msgstr "2D"
msgid "2D version of content available in 3D"
msgstr "Version 2D d'un contenu aussi disponible en 3D"
-#: src/wx/film_editor.cc:224
+#: src/wx/dcp_panel.cc:607
msgid "2K"
msgstr "2K"
-#: src/wx/film_editor.cc:171
+#: src/wx/dcp_panel.cc:555
msgid "3D"
msgstr "3D"
-#: src/wx/video_panel.cc:200
+#: src/wx/video_panel.cc:196
msgid "3D alternate"
msgstr "3D alternatif"
-#: src/wx/video_panel.cc:201
+#: src/wx/video_panel.cc:197
msgid "3D left only"
msgstr "3D gauche"
-#: src/wx/video_panel.cc:198
+#: src/wx/video_panel.cc:194
msgid "3D left/right"
msgstr "3D gauche/droite"
-#: src/wx/video_panel.cc:202
+#: src/wx/video_panel.cc:198
msgid "3D right only"
msgstr "3D droite"
-#: src/wx/video_panel.cc:199
+#: src/wx/video_panel.cc:195
msgid "3D top/bottom"
msgstr "3D dessus/dessous"
-#: src/wx/film_editor.cc:225
+#: src/wx/dcp_panel.cc:608
msgid "4K"
msgstr "4K"
msgid "A new version of DCP-o-matic is available."
msgstr "Une nouvelle version de DCP-o-matic est disponible"
-#: src/wx/about_dialog.cc:30
+#: src/wx/about_dialog.cc:34
msgid "About DCP-o-matic"
msgstr "À propos de DCP-o-matic"
msgid "Add Cinema..."
msgstr "Ajout cinéma"
+#: src/wx/content_menu.cc:57
+#, fuzzy
+msgid "Add KDM..."
+msgstr "Ajout cinéma"
+
#: src/wx/kdm_dialog.cc:86
msgid "Add Screen..."
msgstr "Ajout une salle"
-#: src/wx/film_editor.cc:280
+#: src/wx/content_panel.cc:67
msgid "Add file(s)..."
msgstr "Ajout fichier(s)..."
-#: src/wx/film_editor.cc:282
+#: src/wx/content_panel.cc:69
msgid "Add folder..."
msgstr "Ajout dossier..."
-#: src/wx/editable_list.h:62
+#: src/wx/config_dialog.cc:597 src/wx/editable_list.h:62
msgid "Add..."
msgstr "Ajouter..."
"tab."
msgstr ""
-#: src/wx/config_dialog.cc:799
+#: src/wx/config_dialog.cc:1141
msgid "Allow any DCP frame rate"
msgstr "Autoriser toutes cadences"
-#: src/wx/about_dialog.cc:111
+#: src/wx/about_dialog.cc:115
msgid "Artwork by"
msgstr "Thème par"
-#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:40
+#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:43 src/wx/dcp_panel.cc:86
msgid "Audio"
msgstr "Audio"
msgid "Audio Language (e.g. EN)"
msgstr "Langue audio (ex. FR)"
-#: src/wx/film_editor.cc:166
-msgid "Audio channels"
-msgstr "Canaux audios"
-
-#: src/wx/audio_mapping_view.cc:350
+#: src/wx/audio_mapping_view.cc:358
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d unaltered."
msgstr ""
"Le son du canal audio %d sera transféré au canal %d du DCP sans modification."
-#: src/wx/audio_mapping_view.cc:353
+#: src/wx/audio_mapping_view.cc:361
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d with gain "
"Le son du canal audio %d sera transféré au canal %d du DCP avec un gain de "
"%.1fdB."
-#: src/wx/config_dialog.cc:683
+#: src/wx/config_dialog.cc:1022
#, fuzzy
msgid "BCC address"
msgstr "Adresse CC"
msgid "Browse..."
msgstr "Parcourir..."
-#: src/wx/audio_mapping_view.cc:317
+#: src/wx/audio_mapping_view.cc:325
msgid "BsL"
msgstr "Ar.G"
-#: src/wx/audio_mapping_view.cc:321
+#: src/wx/audio_mapping_view.cc:329
msgid "BsR"
msgstr "Ar.D"
+#: src/wx/dcp_panel.cc:551
+msgid "Burn subtitles into image"
+msgstr ""
+
#: src/wx/gain_calculator_dialog.cc:32
msgid "But I have to use fader"
msgstr "Mais je dois mixer"
-#: src/wx/audio_mapping_view.cc:285
+#: src/wx/audio_mapping_view.cc:293
msgid "C"
msgstr "C"
-#: src/wx/config_dialog.cc:679
+#: src/wx/config_dialog.cc:1018
msgid "CC address"
msgstr "Adresse CC"
msgid "CPL annotation text"
msgstr "Commentaire CPL"
-#: src/wx/audio_panel.cc:63
+#: src/wx/audio_panel.cc:66
msgid "Calculate..."
msgstr "Calcul..."
msgid "Certificate"
msgstr "Certificat"
+#: src/wx/config_dialog.cc:564
+msgid "Certificate chain for signing DCPs and KDMs:"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:191
#: src/wx/doremi_certificate_dialog.cc:103
msgid "Certificate downloaded"
msgstr "Certificat téléchargé"
+#: src/wx/config_dialog.cc:625
+msgid "Certificate for decrypting DCPs"
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:65
msgid "Chain"
msgstr "Chaîne"
msgid "Channel gain"
msgstr "Gain Canal"
-#: src/wx/audio_dialog.cc:44
+#: src/wx/audio_dialog.cc:44 src/wx/dcp_panel.cc:623
msgid "Channels"
msgstr "Canaux"
-#: src/wx/config_dialog.cc:120
+#: src/wx/config_dialog.cc:126
msgid "Check for testing updates as well as stable ones"
msgstr "Recherche toutes mises à jour : test et stables."
-#: src/wx/config_dialog.cc:116
+#: src/wx/config_dialog.cc:122
msgid "Check for updates on startup"
msgstr "Recherche de mises à jour au démarrage."
-#: src/wx/content_menu.cc:182
+#: src/wx/content_menu.cc:198
msgid "Choose a file"
msgstr "Choisissez un fichier"
-#: src/wx/film_editor.cc:810
+#: src/wx/content_panel.cc:241
msgid "Choose a file or files"
msgstr "Choisissez un ou plusieurs fichiers"
-#: src/wx/content_menu.cc:175 src/wx/film_editor.cc:833
+#: src/wx/content_menu.cc:191 src/wx/content_panel.cc:264
msgid "Choose a folder"
msgstr "Choisissez un dossier"
msgid "Cinema"
msgstr "Cinéma"
-#: src/wx/config_dialog.cc:498
+#: src/wx/config_dialog.cc:504
msgid "Colour Conversions"
msgstr "Conversions Couleurs"
#: src/wx/content_colour_conversion_dialog.cc:34
-#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:162
+#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:167
msgid "Colour conversion"
msgstr "Espace Couleurs"
-#: src/wx/config_dialog.cc:819
+#: src/wx/config_dialog.cc:1161
msgid "Config|Timing"
msgstr "Temps"
-#: src/wx/film_editor.cc:134
+#: src/wx/dcp_panel.cc:532
msgid "Container"
msgstr "Format"
-#: src/wx/audio_mapping_view.cc:270 src/wx/film_editor.cc:85
+#: src/wx/audio_mapping_view.cc:278 src/wx/film_editor.cc:83
msgid "Content"
msgstr "Contenu"
-#: src/wx/film_editor.cc:139
+#: src/wx/dcp_panel.cc:77
msgid "Content Type"
msgstr "Type de Contenu"
-#: src/wx/video_panel.cc:332
+#: src/wx/video_panel.cc:353
#, c-format
msgid "Content frame rate %.4f\n"
msgstr "Cadence du contenu %.4f\n"
msgid "Content version"
msgstr "Version du contenu"
-#: src/wx/video_panel.cc:292
+#: src/wx/video_panel.cc:313
#, c-format
msgid "Content video is %dx%d (%.2f:1)\n"
msgstr "Le contenu vidéo est %dx%d (%.2f:1)\n"
msgid "Could not analyse audio."
msgstr "Analyse du son impossible"
-#: src/wx/film_viewer.cc:346
-#, c-format
-msgid "Could not decode video for view (%s)"
-msgstr "Décodage de la vidéo pour visualisation impossible (%s)"
+#: src/wx/content_panel.cc:280
+msgid "Could not find any images nor a DCP in that folder"
+msgstr ""
#: src/wx/job_wrapper.cc:39
#, c-format
msgid "Could not make DCP: %s"
msgstr "Impossible de créer le DCP : %s"
-#: src/wx/screen_dialog.cc:95
+#: src/wx/config_dialog.cc:688 src/wx/config_dialog.cc:783
+#: src/wx/config_dialog.cc:803 src/wx/screen_dialog.cc:95
#, c-format
msgid "Could not read certificate file (%s)"
msgstr "Lecture du ficher de certificat (%s) impossible"
+#: src/wx/config_dialog.cc:775 src/wx/config_dialog.cc:825
+#, fuzzy, c-format
+msgid "Could not read key file (%s)"
+msgstr "Lecture du ficher de certificat (%s) impossible"
+
#: src/wx/dolby_certificate_dialog.cc:39
msgid "Country"
msgstr "Pays"
msgid "Create in folder"
msgstr "Créer dans le dossier"
-#: src/wx/video_panel.cc:304
+#: src/wx/video_panel.cc:325
#, c-format
msgid "Cropped to %dx%d (%.2f:1)\n"
msgstr "Rognage de %dx%d (%.2f:1)\n"
-#: src/wx/video_panel.cc:244
+#: src/wx/video_panel.cc:243
msgid "Custom"
msgstr "Personnalisé"
-#: src/wx/film_editor.cc:87
+#: src/wx/film_editor.cc:85
msgid "DCP"
msgstr "DCP"
-#: src/wx/film_editor.cc:129
+#: src/wx/dcp_panel.cc:72
msgid "DCP Name"
msgstr "Nom du DCP"
msgid "DCP directory"
msgstr "Répertoire du DCP"
-#: src/wx/about_dialog.cc:45 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
+#: src/wx/about_dialog.cc:49 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic audio - %s"
msgstr "Son DCP-o-matic - %s"
-#: src/wx/config_dialog.cc:270
+#: src/wx/config_dialog.cc:276
msgid "Default ISDCF name details"
msgstr "Nom ISDCF par défaut"
-#: src/wx/config_dialog.cc:287
+#: src/wx/config_dialog.cc:293
msgid "Default JPEG2000 bandwidth"
msgstr "Qualité JPEG2000 par défaut"
-#: src/wx/config_dialog.cc:296
+#: src/wx/config_dialog.cc:302
msgid "Default audio delay"
msgstr "Délai audio par défaut"
-#: src/wx/config_dialog.cc:278
+#: src/wx/config_dialog.cc:284
msgid "Default container"
msgstr "Format par défaut"
-#: src/wx/config_dialog.cc:282
+#: src/wx/config_dialog.cc:288
msgid "Default content type"
msgstr "Catégorie par défaut"
-#: src/wx/config_dialog.cc:262
+#: src/wx/config_dialog.cc:268
msgid "Default directory for new films"
msgstr "Dossier par défaut pour les DCP"
-#: src/wx/config_dialog.cc:254
+#: src/wx/config_dialog.cc:260
msgid "Default duration of still images"
msgstr "Durée par défaut des images fixes"
-#: src/wx/config_dialog.cc:304
+#: src/wx/config_dialog.cc:310
msgid "Default issuer"
msgstr "Labo par défaut"
-#: src/wx/config_dialog.cc:274
+#: src/wx/config_dialog.cc:280
msgid "Default scale to"
msgstr ""
-#: src/wx/config_dialog.cc:235
+#: src/wx/config_dialog.cc:241
msgid "Defaults"
msgstr "Par défaut"
-#: src/wx/audio_panel.cc:67
+#: src/wx/audio_panel.cc:70
msgid "Delay"
msgstr "Délai"
-#: src/wx/film_editor.cc:125 src/wx/job_manager_view.cc:79
+#: src/wx/dcp_panel.cc:68 src/wx/job_manager_view.cc:79
msgid "Details..."
msgstr "Détails..."
msgid "Doremi serial numbers must have 6 digits"
msgstr "Les numéros de série Doremi doivent être composés de 6 chiffres"
-#: src/wx/film_editor.cc:288
+#: src/wx/content_panel.cc:75
msgid "Down"
msgstr "Descendre"
msgid "Edit Screen..."
msgstr "Éditer la salle"
-#: src/wx/audio_mapping_view.cc:135 src/wx/config_dialog.cc:271
-#: src/wx/video_panel.cc:155 src/wx/video_panel.cc:172
+#: src/wx/audio_mapping_view.cc:143 src/wx/config_dialog.cc:277
+#: src/wx/video_panel.cc:163 src/wx/video_panel.cc:170
#: src/wx/editable_list.h:66
msgid "Edit..."
msgstr "Éditer..."
msgid "Encoding Servers"
msgstr "Serveurs Encodage"
-#: src/wx/film_editor.cc:162
+#: src/wx/dcp_panel.cc:92
msgid "Encrypted"
msgstr "Crypté"
-#: src/wx/config_dialog.cc:817
+#: src/wx/subtitle_view.cc:47
+msgid "End"
+msgstr "Fin"
+
+#: src/wx/config_dialog.cc:1159
msgid "Errors"
msgstr "Erreurs"
+#: src/wx/config_dialog.cc:651
+msgid "Export DCP decryption certificate..."
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:50
msgid "Facility (e.g. DLA)"
msgstr "Laboratoire (ex. DLA)"
+#: src/wx/video_panel.cc:133
+msgid "Fade in"
+msgstr ""
+
+#: src/wx/video_panel.cc:138
+msgid "Fade out"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:76
#: src/wx/dolby_certificate_dialog.cc:100
#: src/wx/dolby_certificate_dialog.cc:123
msgid "Film name"
msgstr "Nom du Film"
-#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:146
+#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:160
msgid "Filters"
msgstr "Filtres"
-#: src/wx/content_menu.cc:52
+#: src/wx/content_menu.cc:55
msgid "Find missing..."
msgstr "Recherche de l'élément manquant..."
-#: src/wx/film_editor.cc:145
+#: src/wx/dcp_panel.cc:538
msgid "Frame Rate"
msgstr "Cadence image"
msgid "Frames already encoded"
msgstr "Images déjà encodées"
-#: src/wx/about_dialog.cc:61
+#: src/wx/about_dialog.cc:65
msgid "Free, open-source DCP generation from almost anything."
msgstr "Création de DCP libre et gratuit depuis presque tout."
msgid "From"
msgstr "À partir du"
-#: src/wx/config_dialog.cc:675
+#: src/wx/config_dialog.cc:1014
msgid "From address"
msgstr "Adresse source"
-#: src/wx/audio_mapping_view.cc:133
+#: src/wx/audio_mapping_view.cc:141
msgid "Full"
msgstr "Plein"
msgid "Full length"
msgstr "Durée totale"
-#: src/wx/audio_panel.cc:52
+#: src/wx/audio_panel.cc:55
msgid "Gain"
msgstr "Gain"
msgid "Gain for content channel %d in DCP channel %d"
msgstr "Gain pour le canal audio %d dans le canal du DCP %d"
-#: src/wx/properties_dialog.cc:52
+#: src/wx/properties_dialog.cc:51
msgid "Gb"
msgstr "Gb"
-#: src/wx/config_dialog.cc:813
+#: src/wx/config_dialog.cc:1155
msgid "General"
msgstr "Général"
-#: src/wx/audio_mapping_view.cc:301
+#: src/wx/audio_mapping_view.cc:309
msgid "HI"
msgstr "HI"
msgid "Host name or IP address"
msgstr "Nom de l'hôte ou adresse IP"
-#: src/wx/audio_panel.cc:242
-msgid "Hz"
-msgstr "Hz"
-
#: src/wx/gain_calculator_dialog.cc:29
msgid "I want to play this back at fader"
msgstr "Je veux lire avec une table de mixage"
-#: src/wx/config_dialog.cc:560
+#: src/wx/config_dialog.cc:899
msgid "IP address"
msgstr "Adresse IP"
-#: src/wx/config_dialog.cc:456
+#: src/wx/config_dialog.cc:462
msgid "IP address / host name"
msgstr "Adresse IP / Nom d'Hôte"
msgid "Input gamma"
msgstr "gamma source"
-#: src/wx/film_editor.cc:228
+#: src/wx/config_dialog.cc:727
+msgid "Intermediate"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:31
+msgid "Intermediate common name"
+msgstr ""
+
+#: src/wx/dcp_panel.cc:115
msgid "Interop"
msgstr "MXF-Interop"
-#: src/wx/film_editor.cc:181
+#: src/wx/dcp_panel.cc:565
msgid "JPEG2000 bandwidth"
msgstr "Qualité JPEG2000"
-#: src/wx/content_menu.cc:51
+#: src/wx/content_menu.cc:54
msgid "Join"
msgstr "Ajouter"
-#: src/wx/config_dialog.cc:627
+#: src/wx/config_dialog.cc:966
msgid "KDM Email"
msgstr "e-mail KDM"
msgid "KDM|Timing"
msgstr "Temps"
-#: src/wx/film_editor.cc:298
+#: src/wx/content_panel.cc:85
msgid "Keep video in sequence"
msgstr "Conserver la vidéo dans la séquence"
-#: src/wx/audio_mapping_view.cc:277
+#: src/wx/config_dialog.cc:548
+msgid "Keys"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:285
msgid "L"
msgstr "G"
-#: src/wx/audio_mapping_view.cc:309
+#: src/wx/audio_mapping_view.cc:317
msgid "Lc"
msgstr "CG"
-#: src/wx/video_panel.cc:88
+#: src/wx/config_dialog.cc:725
+msgid "Leaf"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:33
+msgid "Leaf common name"
+msgstr ""
+
+#: src/wx/video_panel.cc:89
msgid "Left crop"
msgstr "Rogner à gauche"
-#: src/wx/audio_mapping_view.cc:289
+#: src/wx/audio_mapping_view.cc:297
msgid "Lfe"
msgstr "BF"
msgid "Load from file..."
msgstr "Chargement depuis fichier..."
-#: src/wx/config_dialog.cc:807
+#: src/wx/config_dialog.cc:620 src/wx/config_dialog.cc:633
+#: src/wx/config_dialog.cc:646
+#, fuzzy
+msgid "Load..."
+msgstr "Ajouter..."
+
+#: src/wx/config_dialog.cc:1149
msgid "Log"
msgstr "Rapport"
-#: src/wx/config_dialog.cc:804
+#: src/wx/config_dialog.cc:1146
msgid "Log:"
msgstr ""
-#: src/wx/audio_mapping_view.cc:293
+#: src/wx/audio_mapping_view.cc:301
msgid "Ls"
msgstr "Sr.G"
-#: src/wx/film_editor.cc:784
+#: src/wx/content_panel.cc:438
msgid "MISSING: "
msgstr "MANQUANT:"
-#: src/wx/config_dialog.cc:660
+#: src/wx/config_dialog.cc:999
msgid "Mail password"
msgstr "Mot de passe Mail"
-#: src/wx/config_dialog.cc:656
+#: src/wx/config_dialog.cc:995
msgid "Mail user name"
msgstr "Nom Utilisateur Mail"
msgid "Make KDMs"
msgstr "Générer KDMs"
+#: src/wx/make_signer_chain_dialog.cc:23
+#, fuzzy
+msgid "Make certificate chain"
+msgstr "Sélectionner le certificat"
+
#: src/wx/isdcf_metadata_dialog.cc:71
msgid "Mastered luminance (e.g. 4fl)"
msgstr "Luminance masterisée (ex: 4fl)"
msgid "Matrix"
msgstr "Matrice"
-#: src/wx/config_dialog.cc:791
+#: src/wx/config_dialog.cc:1133
msgid "Maximum JPEG2000 bandwidth"
msgstr "Qualité JPEG2000 Maxi"
-#: src/wx/config_dialog.cc:291 src/wx/config_dialog.cc:795
-#: src/wx/film_editor.cc:185
+#: src/wx/config_dialog.cc:297 src/wx/config_dialog.cc:1137
+#: src/wx/dcp_panel.cc:569
msgid "Mbit/s"
msgstr "Mbit/s"
-#: src/wx/video_panel.cc:280
+#: src/wx/video_panel.cc:301
msgid "Multiple content selected"
msgstr "Contenus multiples sélectionnés"
msgid "My Documents"
msgstr "Mes Documents"
-#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:512
-#: src/wx/film_editor.cc:113 src/wx/preset_colour_conversion_dialog.cc:38
+#: src/wx/content_panel.cc:442
+msgid "NEEDS KDM: "
+msgstr ""
+
+#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:518
+#: src/wx/dcp_panel.cc:56 src/wx/preset_colour_conversion_dialog.cc:38
#: src/wx/screen_dialog.cc:38
msgid "Name"
msgstr "Nom"
msgid "New versions of DCP-o-matic are available."
msgstr "De nouvelles versions de DCP-o-matic sont disponibles."
-#: src/wx/audio_mapping_view.cc:348
+#: src/wx/audio_mapping_view.cc:356
#, c-format
msgid "No audio will be passed from content channel %d to DCP channel %d."
msgstr "Aucun son ne passera du canal audio %d au canal %d du DCP."
-#: src/wx/video_panel.cc:153 src/wx/video_panel.cc:249
+#: src/wx/audio_panel.cc:290 src/wx/video_panel.cc:161
+#: src/wx/video_panel.cc:248
msgid "None"
msgstr "Aucun"
-#: src/wx/audio_mapping_view.cc:132
+#: src/wx/audio_mapping_view.cc:140
msgid "Off"
msgstr "Eteint"
+#: src/wx/config_dialog.cc:1167
+msgid "Open console window"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:25
+#, fuzzy
+msgid "Organisation"
+msgstr "Durée"
+
+#: src/wx/make_signer_chain_dialog.cc:27
+msgid "Organisational unit"
+msgstr ""
+
#: src/wx/screen_dialog.cc:65
msgid "Other"
msgstr "Autre"
-#: src/wx/config_dialog.cc:652
+#: src/wx/config_dialog.cc:991
msgid "Outgoing mail server"
msgstr "Serveurs de messagerie sortant"
+#: src/wx/film_viewer.cc:61
+#, fuzzy
+msgid "Outline content"
+msgstr "Contenus multiples sélectionnés"
+
#: src/wx/kdm_dialog.cc:156
msgid "Output"
msgstr "Sortie"
msgid "Package Type (e.g. OV)"
msgstr "Type de paquet (ex. OV)"
-#: src/wx/video_panel.cc:325
+#: src/wx/video_panel.cc:346
#, c-format
msgid "Padded with black to %dx%d (%.2f:1)\n"
msgstr "Enveloppe noire de %dx%d (%.2f:1)\n"
-#: src/wx/config_dialog.cc:572
+#: src/wx/config_dialog.cc:911
msgid "Password"
msgstr "Mot de passe"
msgid "Peak"
msgstr "Crête"
-#: src/wx/film_viewer.cc:64
+#: src/wx/film_viewer.cc:67
msgid "Play"
msgstr "Lecture"
msgid "Pre-release"
msgstr "Avant sortie"
-#: src/wx/audio_mapping_view.cc:281
+#: src/wx/config_dialog.cc:638
+msgid "Private key for decrypting DCPs"
+msgstr ""
+
+#: src/wx/config_dialog.cc:612
+msgid "Private key for leaf certificate"
+msgstr ""
+
+#: src/wx/audio_panel.cc:89
+msgid "Process with"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:289
msgid "R"
msgstr "D"
msgid "Rating (e.g. 15)"
msgstr "Rating (ex. 15)"
-#: src/wx/audio_mapping_view.cc:313
+#: src/wx/audio_mapping_view.cc:321
msgid "Rc"
msgstr "CD"
+#: src/wx/content_menu.cc:56
+msgid "Re-examine..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:608
+#, fuzzy
+msgid "Re-make certificates..."
+msgstr "Téléchargement Certificat"
+
#: src/wx/isdcf_metadata_dialog.cc:62
msgid "Red band"
msgstr "Red Band"
-#: src/wx/content_menu.cc:54 src/wx/film_editor.cc:284
-#: src/wx/editable_list.h:68
+#: src/wx/config_dialog.cc:599 src/wx/content_menu.cc:59
+#: src/wx/content_panel.cc:71 src/wx/editable_list.h:68
msgid "Remove"
msgstr "Supprimer"
msgid "Repeat Content"
msgstr "Répéter le contenu"
-#: src/wx/content_menu.cc:50
+#: src/wx/content_menu.cc:53
msgid "Repeat..."
msgstr "Répéter..."
-#: src/wx/config_dialog.cc:690
+#: src/wx/config_dialog.cc:1029
msgid "Reset to default text"
msgstr "texte par défaut"
-#: src/wx/film_editor.cc:175
+#: src/wx/dcp_panel.cc:559
msgid "Resolution"
msgstr "Résolution"
msgid "Resume"
msgstr "Reprendre"
-#: src/wx/audio_mapping_view.cc:356
+#: src/wx/audio_mapping_view.cc:364
msgid "Right click to change gain."
msgstr "Cliquez droit pour modifier le gain."
msgid "Right crop"
msgstr "Rogner à droite"
-#: src/wx/audio_mapping_view.cc:297
+#: src/wx/config_dialog.cc:723
+msgid "Root"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:29
+msgid "Root common name"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:305
msgid "Rs"
msgstr "Sr.D"
-#: src/wx/film_editor.cc:227
+#: src/wx/dcp_panel.cc:114
msgid "SMPTE"
msgstr "SMPTE"
-#: src/wx/video_panel.cc:132
+#: src/wx/video_panel.cc:143
msgid "Scale to"
msgstr "Mise à l'échelle"
-#: src/wx/video_panel.cc:316
+#: src/wx/video_panel.cc:337
#, c-format
msgid "Scaled to %dx%d (%.2f:1)\n"
msgstr "Mis à l'échelle de %dx%d (%.2f:1)\n"
-#: src/wx/film_editor.cc:195
+#: src/wx/dcp_panel.cc:574
msgid "Scaler"
msgstr "Mise à l'échelle"
msgid "Select CPL XML file"
msgstr "Sélectionner le fichier CPL.xml"
-#: src/wx/screen_dialog.cc:102
+#: src/wx/config_dialog.cc:679 src/wx/config_dialog.cc:795
+#: src/wx/config_dialog.cc:840 src/wx/screen_dialog.cc:102
msgid "Select Certificate File"
msgstr "Sélectionner le certificat"
+#: src/wx/content_menu.cc:266
+msgid "Select KDM"
+msgstr ""
+
+#: src/wx/config_dialog.cc:769 src/wx/config_dialog.cc:817
+#, fuzzy
+msgid "Select Key File"
+msgstr "Sélectionner le certificat"
+
#: src/wx/kdm_dialog.cc:185
msgid "Send by email"
msgstr "Envoyé par e-mail"
msgid "Server serial number"
msgstr "Numéro de Série du Serveur"
-#: src/wx/config_dialog.cc:438
+#: src/wx/config_dialog.cc:444
msgid "Servers"
msgstr "Serveurs"
msgid "Set"
msgstr "Sélection"
-#: src/wx/config_dialog.cc:92
+#: src/wx/config_dialog.cc:99
msgid "Set language"
msgstr "Sélectionnez la langue"
-#: src/wx/audio_panel.cc:48
+#: src/wx/audio_panel.cc:51
msgid "Show Audio..."
msgstr "Afficher le son..."
-#: src/wx/film_editor.cc:158
+#: src/wx/dcp_panel.cc:88
msgid "Signed"
msgstr "Signé"
msgid "Smoothing"
msgstr "Lissage"
-#: src/wx/timeline_dialog.cc:38
+#: src/wx/timeline_dialog.cc:39
msgid "Snap"
msgstr "Magnetisme"
msgid "Stable version "
msgstr "Version Stable"
-#: src/wx/film_editor.cc:190
+#: src/wx/dcp_panel.cc:96
msgid "Standard"
msgstr "Standard"
-#: src/wx/audio_panel.cc:81 src/wx/subtitle_panel.cc:79
+#: src/wx/subtitle_view.cc:39
+#, fuzzy
+msgid "Start"
+msgstr "Début"
+
+#: src/wx/audio_panel.cc:84 src/wx/subtitle_panel.cc:87
msgid "Stream"
msgstr "Flux"
msgid "Studio (e.g. TCF)"
msgstr "Studio (ex. TCF)"
-#: src/wx/config_dialog.cc:671
+#: src/wx/config_dialog.cc:1010
msgid "Subject"
msgstr ""
+#: src/wx/subtitle_view.cc:55
+#, fuzzy
+msgid "Subtitle"
+msgstr "Sous-titres"
+
#: src/wx/isdcf_metadata_dialog.cc:38
msgid "Subtitle Language (e.g. FR)"
msgstr "Langue de sous-titres (ex. FR)"
-#: src/wx/subtitle_panel.cc:34
+#: src/wx/subtitle_panel.cc:41 src/wx/subtitle_view.cc:32
msgid "Subtitles"
msgstr "Sous-titres"
- #: src/wx/about_dialog.cc:168
+ #: src/wx/about_dialog.cc:165
msgid "Supported by"
msgstr "Soutenu par"
-#: src/wx/config_dialog.cc:542
+#: src/wx/config_dialog.cc:881
msgid "TMS"
msgstr "TMS"
-#: src/wx/config_dialog.cc:564
+#: src/wx/config_dialog.cc:903
msgid "Target path"
msgstr "Chemin cible"
msgid "Test version "
msgstr "Version test"
- #: src/wx/about_dialog.cc:213
+ #: src/wx/about_dialog.cc:210
msgid "Tested by"
msgstr "Testé par"
-#: src/wx/content_menu.cc:223
+#: src/wx/content_menu.cc:252
msgid ""
"The content file(s) you specified are not the same as those that are "
"missing. Either try again with the correct content file or remove the "
msgid "There are no hints: everything looks good!"
msgstr "Il n'y a aucun avertissement: tout semble correct!"
-#: src/wx/film_viewer.cc:134
+#: src/wx/film_viewer.cc:142
msgid "There is not enough free memory to do that."
msgstr "Il n'y a pas assez de mémoire pour faire cela."
msgid "Threads"
msgstr "Processus"
-#: src/wx/config_dialog.cc:111
+#: src/wx/config_dialog.cc:118
msgid "Threads to use for encoding on this host"
msgstr "Nombre de processus à utiliser sur cet hôte"
+#: src/wx/config_dialog.cc:583
+msgid "Thumbprint"
+msgstr ""
+
#: src/wx/audio_plot.cc:165
msgid "Time"
msgstr "Durée"
-#: src/wx/timeline_dialog.cc:32
+#: src/wx/timeline_dialog.cc:33
msgid "Timeline"
msgstr "Timeline"
-#: src/wx/film_editor.cc:290
+#: src/wx/content_panel.cc:77
msgid "Timeline..."
msgstr "Timeline..."
msgid "Timing|Timing"
msgstr "Temps"
-#: src/wx/video_panel.cc:110
+#: src/wx/video_panel.cc:111
msgid "Top crop"
msgstr "Rogner en haut"
-#: src/wx/about_dialog.cc:107
+#: src/wx/about_dialog.cc:111
msgid "Translated by"
msgstr "Traduit par"
msgid "Trim from start"
msgstr "Rogner au début"
-#: src/wx/audio_dialog.cc:55 src/wx/video_panel.cc:75
+#: src/wx/audio_dialog.cc:55 src/wx/config_dialog.cc:575
+#: src/wx/video_panel.cc:76
msgid "Type"
msgstr "Type"
msgid "Until"
msgstr "Jusqu'au"
-#: src/wx/film_editor.cc:286
+#: src/wx/content_panel.cc:73
msgid "Up"
msgstr "Monter"
msgid "Update"
msgstr "Mise à jour"
-#: src/wx/film_editor.cc:123
+#: src/wx/dcp_panel.cc:66
msgid "Use ISDCF name"
msgstr "Utiliser le nom ISDCF"
-#: src/wx/config_dialog.cc:452
+#: src/wx/config_dialog.cc:458
msgid "Use all servers"
msgstr "Utiliser tous les serveurs"
-#: src/wx/film_editor.cc:152
+#: src/wx/dcp_panel.cc:545
msgid "Use best"
msgstr "Automatique"
msgid "Use preset"
msgstr "Utiliser le préréglage"
-#: src/wx/config_dialog.cc:568
+#: src/wx/subtitle_panel.cc:47
+#, fuzzy
+msgid "Use subtitles"
+msgstr "Sous-titres"
+
+#: src/wx/config_dialog.cc:907
msgid "User name"
msgstr "Nom d'utilisateur"
-#: src/wx/audio_mapping_view.cc:305
+#: src/wx/audio_mapping_view.cc:313
msgid "VI"
msgstr "VI"
-#: src/wx/video_panel.cc:68
+#: src/wx/dcp_panel.cc:85 src/wx/video_panel.cc:69
msgid "Video"
msgstr "Vidéo"
msgid "Video frame rate"
msgstr "Cadence vidéo"
-#: src/wx/config_dialog.cc:815
+#: src/wx/subtitle_panel.cc:91
+msgid "View..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:1157
msgid "Warnings"
msgstr "Avertissements"
-#: src/wx/subtitle_panel.cc:39
-msgid "With Subtitles"
-msgstr "Avec sous-titres"
-
#: src/wx/kdm_dialog.cc:172
msgid "Write to"
msgstr "Ecrire à "
-#: src/wx/about_dialog.cc:91
+#: src/wx/about_dialog.cc:95
msgid "Written by"
msgstr "Développé par"
-#: src/wx/subtitle_panel.cc:44
+#: src/wx/subtitle_panel.cc:52
msgid "X Offset"
msgstr "Position horizontale"
-#: src/wx/subtitle_panel.cc:62
+#: src/wx/subtitle_panel.cc:70
#, fuzzy
msgid "X Scale"
msgstr "Mise à l'échelle"
-#: src/wx/subtitle_panel.cc:53
+#: src/wx/subtitle_panel.cc:61
msgid "Y Offset"
msgstr "Position verticale"
-#: src/wx/subtitle_panel.cc:71
+#: src/wx/subtitle_panel.cc:79
#, fuzzy
msgid "Y Scale"
msgstr "Mise à l'échelle"
"Votre DCP a moins de 6 canaux audio. Cela peut créer des problèmes de "
"lecture sur certains projecteurs."
-#: src/wx/timeline.cc:220
+#: src/wx/timeline.cc:229
msgid "audio"
msgstr "audio"
-#: src/wx/audio_panel.cc:240
-msgid "channels"
-msgstr "canaux"
-
#: src/wx/properties_dialog.cc:46
msgid "counting..."
msgstr "calcul..."
-#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:62
+#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:65
msgid "dB"
msgstr "dB"
#. / TRANSLATORS: this is an abbreviation for milliseconds, the unit of time
-#: src/wx/audio_panel.cc:78 src/wx/config_dialog.cc:300
+#: src/wx/audio_panel.cc:81 src/wx/config_dialog.cc:306
msgid "ms"
msgstr "ms"
-#: src/wx/config_dialog.cc:258
+#: src/wx/config_dialog.cc:264
msgid "s"
msgstr "s"
-#: src/wx/timeline.cc:243
+#: src/wx/timeline.cc:258
msgid "still"
msgstr "fixe"
+#: src/wx/timeline.cc:289
+#, fuzzy
+msgid "subtitles"
+msgstr "Sous-titres"
+
#: src/wx/repeat_dialog.cc:28
msgid "times"
msgstr "fois"
-#: src/wx/timeline.cc:241
+#: src/wx/timeline.cc:260
msgid "video"
msgstr "vidéo"
+#~ msgid "1 channel"
+#~ msgstr "1 canal"
+
+#~ msgid "Audio channels"
+#~ msgstr "Canaux audios"
+
+#~ msgid "Could not decode video for view (%s)"
+#~ msgstr "Décodage de la vidéo pour visualisation impossible (%s)"
+
+#~ msgid "Hz"
+#~ msgstr "Hz"
+
+#~ msgid "With Subtitles"
+#~ msgstr "Avec sous-titres"
+
+#~ msgid "channels"
+#~ msgstr "canaux"
+
#~ msgid "Default creator"
#~ msgstr "Créateur par défaut"
#~ msgid "Add"
#~ msgstr "Ajouter"
-#~ msgid "Duration"
-#~ msgstr "Durée"
-
#~ msgid "Edit"
#~ msgstr "Édition"
#~ msgid "Running"
#~ msgstr "Progression"
-#~ msgid "Start time"
-#~ msgstr "Début"
-
#~ msgid "A/B"
#~ msgstr "A/B"
#~ msgid "DVD-o-matic Preferences"
#~ msgstr "Préférences de DCP-o-matic"
-#~ msgid "End"
-#~ msgstr "Fin"
-
#~ msgid "Film"
#~ msgstr "Film"
msgstr ""
"Project-Id-Version: IT VERSION\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-02-03 10:46+0100\n"
"Last-Translator: William Fanelli <william.f@impronte.com>\n"
"Language-Team: \n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.3\n"
-#: src/wx/subtitle_panel.cc:48 src/wx/subtitle_panel.cc:57
-#: src/wx/subtitle_panel.cc:66 src/wx/subtitle_panel.cc:75
+#: src/wx/subtitle_panel.cc:56 src/wx/subtitle_panel.cc:65
+#: src/wx/subtitle_panel.cc:74 src/wx/subtitle_panel.cc:83
msgid "%"
msgstr "%"
-#: src/wx/about_dialog.cc:78
+#: src/wx/about_dialog.cc:82
msgid ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
msgstr ""
-#: src/wx/config_dialog.cc:664
+#: src/wx/config_dialog.cc:1003
msgid "(password will be stored on disk in plaintext)"
msgstr ""
-#: src/wx/config_dialog.cc:104
+#: src/wx/config_dialog.cc:111
msgid "(restart DCP-o-matic to see language changes)"
msgstr "(riavviare DCP-o-matic per vedere i cambiamenti di lingua)"
-#: src/wx/audio_mapping_view.cc:134
+#: src/wx/audio_mapping_view.cc:142
msgid "-6dB"
msgstr ""
msgid "1 / "
msgstr ""
-#: src/wx/audio_panel.cc:238
-msgid "1 channel"
-msgstr "1 canale"
-
-#: src/wx/video_panel.cc:197
+#: src/wx/video_panel.cc:193
msgid "2D"
msgstr ""
msgid "2D version of content available in 3D"
msgstr "Una nuova versione di DCP-o-matic è disponibile."
-#: src/wx/film_editor.cc:224
+#: src/wx/dcp_panel.cc:607
msgid "2K"
msgstr ""
-#: src/wx/film_editor.cc:171
+#: src/wx/dcp_panel.cc:555
msgid "3D"
msgstr ""
-#: src/wx/video_panel.cc:200
+#: src/wx/video_panel.cc:196
msgid "3D alternate"
msgstr ""
-#: src/wx/video_panel.cc:201
+#: src/wx/video_panel.cc:197
msgid "3D left only"
msgstr ""
-#: src/wx/video_panel.cc:198
+#: src/wx/video_panel.cc:194
msgid "3D left/right"
msgstr ""
-#: src/wx/video_panel.cc:202
+#: src/wx/video_panel.cc:198
msgid "3D right only"
msgstr ""
-#: src/wx/video_panel.cc:199
+#: src/wx/video_panel.cc:195
msgid "3D top/bottom"
msgstr ""
-#: src/wx/film_editor.cc:225
+#: src/wx/dcp_panel.cc:608
msgid "4K"
msgstr ""
msgid "A new version of DCP-o-matic is available."
msgstr "Una nuova versione di DCP-o-matic è disponibile"
-#: src/wx/about_dialog.cc:30
+#: src/wx/about_dialog.cc:34
msgid "About DCP-o-matic"
msgstr "Su DCP-o-matic"
msgid "Add Cinema..."
msgstr "Aggiungi Cinema"
+#: src/wx/content_menu.cc:57
+#, fuzzy
+msgid "Add KDM..."
+msgstr "Aggiungi Cinema"
+
#: src/wx/kdm_dialog.cc:86
msgid "Add Screen..."
msgstr "Aggiungi Schermo"
-#: src/wx/film_editor.cc:280
+#: src/wx/content_panel.cc:67
msgid "Add file(s)..."
msgstr "Aggiungi File"
-#: src/wx/film_editor.cc:282
+#: src/wx/content_panel.cc:69
msgid "Add folder..."
msgstr "Aggiungi cartella"
-#: src/wx/editable_list.h:62
+#: src/wx/config_dialog.cc:597 src/wx/editable_list.h:62
msgid "Add..."
msgstr "Aggiungi..."
"tab."
msgstr ""
-#: src/wx/config_dialog.cc:799
+#: src/wx/config_dialog.cc:1141
#, fuzzy
msgid "Allow any DCP frame rate"
msgstr "Frequenza fotogrammi video"
-#: src/wx/about_dialog.cc:111
+#: src/wx/about_dialog.cc:115
msgid "Artwork by"
msgstr ""
-#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:40
+#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:43 src/wx/dcp_panel.cc:86
msgid "Audio"
msgstr "Audio"
msgid "Audio Language (e.g. EN)"
msgstr "Lingua dell'audio (es. EN)"
-#: src/wx/film_editor.cc:166
-msgid "Audio channels"
-msgstr "Canali audio"
-
-#: src/wx/audio_mapping_view.cc:350
+#: src/wx/audio_mapping_view.cc:358
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d unaltered."
msgstr ""
"L' audio sarà trasferito dal canale %d sorgente al canale %d DCP inalterato."
-#: src/wx/audio_mapping_view.cc:353
+#: src/wx/audio_mapping_view.cc:361
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d with gain "
"L' audio sarà trasferito dal canale %d sorgente al canale %d DCP con "
"guadagno di %.1fdB."
-#: src/wx/config_dialog.cc:683
+#: src/wx/config_dialog.cc:1022
#, fuzzy
msgid "BCC address"
msgstr "Indirizzo IP"
msgid "Browse..."
msgstr "Sfoglia..."
-#: src/wx/audio_mapping_view.cc:317
+#: src/wx/audio_mapping_view.cc:325
msgid "BsL"
msgstr "BsL"
-#: src/wx/audio_mapping_view.cc:321
+#: src/wx/audio_mapping_view.cc:329
msgid "BsR"
msgstr "BsR"
+#: src/wx/dcp_panel.cc:551
+msgid "Burn subtitles into image"
+msgstr ""
+
#: src/wx/gain_calculator_dialog.cc:32
msgid "But I have to use fader"
msgstr "Ma dovrò riprodurre con il fader a"
-#: src/wx/audio_mapping_view.cc:285
+#: src/wx/audio_mapping_view.cc:293
msgid "C"
msgstr "C"
-#: src/wx/config_dialog.cc:679
+#: src/wx/config_dialog.cc:1018
#, fuzzy
msgid "CC address"
msgstr "Indirizzo IP"
msgid "CPL annotation text"
msgstr ""
-#: src/wx/audio_panel.cc:63
+#: src/wx/audio_panel.cc:66
msgid "Calculate..."
msgstr "Calcola..."
msgid "Certificate"
msgstr "Seleziona il file del Certificato"
+#: src/wx/config_dialog.cc:564
+msgid "Certificate chain for signing DCPs and KDMs:"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:191
#: src/wx/doremi_certificate_dialog.cc:103
#, fuzzy
msgid "Certificate downloaded"
msgstr "Seleziona il file del Certificato"
+#: src/wx/config_dialog.cc:625
+msgid "Certificate for decrypting DCPs"
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:65
msgid "Chain"
msgstr ""
msgid "Channel gain"
msgstr "Guadagno audio"
-#: src/wx/audio_dialog.cc:44
+#: src/wx/audio_dialog.cc:44 src/wx/dcp_panel.cc:623
msgid "Channels"
msgstr "Canali"
-#: src/wx/config_dialog.cc:120
+#: src/wx/config_dialog.cc:126
msgid "Check for testing updates as well as stable ones"
msgstr "Controlla per aggiornamenti test o stabili"
-#: src/wx/config_dialog.cc:116
+#: src/wx/config_dialog.cc:122
msgid "Check for updates on startup"
msgstr "Controlla gli aggiornamentio alla partenza"
-#: src/wx/content_menu.cc:182
+#: src/wx/content_menu.cc:198
msgid "Choose a file"
msgstr "Scegli un file"
-#: src/wx/film_editor.cc:810
+#: src/wx/content_panel.cc:241
msgid "Choose a file or files"
msgstr "Scegli uno o più file"
-#: src/wx/content_menu.cc:175 src/wx/film_editor.cc:833
+#: src/wx/content_menu.cc:191 src/wx/content_panel.cc:264
msgid "Choose a folder"
msgstr "Scegli una cartella"
msgid "Cinema"
msgstr "Aggiungi Cinema"
-#: src/wx/config_dialog.cc:498
+#: src/wx/config_dialog.cc:504
#, fuzzy
msgid "Colour Conversions"
msgstr "Conversioni colore"
#: src/wx/content_colour_conversion_dialog.cc:34
-#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:162
+#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:167
msgid "Colour conversion"
msgstr "Conversione colore"
-#: src/wx/config_dialog.cc:819
+#: src/wx/config_dialog.cc:1161
msgid "Config|Timing"
msgstr ""
-#: src/wx/film_editor.cc:134
+#: src/wx/dcp_panel.cc:532
msgid "Container"
msgstr "Contenitore"
-#: src/wx/audio_mapping_view.cc:270 src/wx/film_editor.cc:85
+#: src/wx/audio_mapping_view.cc:278 src/wx/film_editor.cc:83
msgid "Content"
msgstr "Sorgente"
-#: src/wx/film_editor.cc:139
+#: src/wx/dcp_panel.cc:77
msgid "Content Type"
msgstr "Tipo di sorgente"
-#: src/wx/video_panel.cc:332
+#: src/wx/video_panel.cc:353
#, c-format
msgid "Content frame rate %.4f\n"
msgstr "Freq. fotogrammi sorgente %.4f\n"
msgid "Content version"
msgstr "Tipo di sorgente"
-#: src/wx/video_panel.cc:292
+#: src/wx/video_panel.cc:313
#, fuzzy, c-format
msgid "Content video is %dx%d (%.2f:1)\n"
msgstr "Il video originale è %dx%d (%.2f:1)\n"
msgid "Could not analyse audio."
msgstr "Non posso analizzare l'audio."
-#: src/wx/film_viewer.cc:346
-#, c-format
-msgid "Could not decode video for view (%s)"
-msgstr "Non posso decodificare il video per guardarlo (%s)"
+#: src/wx/content_panel.cc:280
+msgid "Could not find any images nor a DCP in that folder"
+msgstr ""
#: src/wx/job_wrapper.cc:39
#, c-format
msgid "Could not make DCP: %s"
msgstr "Non posso creare il DCP: %s"
-#: src/wx/screen_dialog.cc:95
+#: src/wx/config_dialog.cc:688 src/wx/config_dialog.cc:783
+#: src/wx/config_dialog.cc:803 src/wx/screen_dialog.cc:95
#, fuzzy, c-format
msgid "Could not read certificate file (%s)"
msgstr "Non posso aprire il file del contenuto (%s)"
+#: src/wx/config_dialog.cc:775 src/wx/config_dialog.cc:825
+#, fuzzy, c-format
+msgid "Could not read key file (%s)"
+msgstr "Non posso aprire il file del contenuto (%s)"
+
#: src/wx/dolby_certificate_dialog.cc:39
msgid "Country"
msgstr ""
msgid "Create in folder"
msgstr "Crea nella cartella"
-#: src/wx/video_panel.cc:304
+#: src/wx/video_panel.cc:325
#, c-format
msgid "Cropped to %dx%d (%.2f:1)\n"
msgstr "Tagliato da %dx%d (%.2f:1)\n"
-#: src/wx/video_panel.cc:244
+#: src/wx/video_panel.cc:243
msgid "Custom"
msgstr ""
-#: src/wx/film_editor.cc:87
+#: src/wx/film_editor.cc:85
msgid "DCP"
msgstr ""
-#: src/wx/film_editor.cc:129
+#: src/wx/dcp_panel.cc:72
msgid "DCP Name"
msgstr "Nome del DCP"
msgid "DCP directory"
msgstr ""
-#: src/wx/about_dialog.cc:45 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
+#: src/wx/about_dialog.cc:49 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic audio - %s"
msgstr "Audio DCP-o-matic - %s"
-#: src/wx/config_dialog.cc:270
+#: src/wx/config_dialog.cc:276
#, fuzzy
msgid "Default ISDCF name details"
msgstr "Dettagli del nome DCI predefinito"
-#: src/wx/config_dialog.cc:287
+#: src/wx/config_dialog.cc:293
#, fuzzy
msgid "Default JPEG2000 bandwidth"
msgstr "Banda passante JPEG2000"
-#: src/wx/config_dialog.cc:296
+#: src/wx/config_dialog.cc:302
msgid "Default audio delay"
msgstr "Ritardo audio predefinito"
-#: src/wx/config_dialog.cc:278
+#: src/wx/config_dialog.cc:284
msgid "Default container"
msgstr "Contenitore predefinito"
-#: src/wx/config_dialog.cc:282
+#: src/wx/config_dialog.cc:288
msgid "Default content type"
msgstr "Tipo sorgente predefinito"
-#: src/wx/config_dialog.cc:262
+#: src/wx/config_dialog.cc:268
msgid "Default directory for new films"
msgstr "Cartella predefinita per i nuovi films"
-#: src/wx/config_dialog.cc:254
+#: src/wx/config_dialog.cc:260
msgid "Default duration of still images"
msgstr "Durata predefinita immagini statiche"
-#: src/wx/config_dialog.cc:304
+#: src/wx/config_dialog.cc:310
#, fuzzy
msgid "Default issuer"
msgstr "Predefiniti"
-#: src/wx/config_dialog.cc:274
+#: src/wx/config_dialog.cc:280
msgid "Default scale to"
msgstr ""
-#: src/wx/config_dialog.cc:235
+#: src/wx/config_dialog.cc:241
msgid "Defaults"
msgstr "Predefiniti"
-#: src/wx/audio_panel.cc:67
+#: src/wx/audio_panel.cc:70
#, fuzzy
msgid "Delay"
msgstr "Ritardo dell'audio"
-#: src/wx/film_editor.cc:125 src/wx/job_manager_view.cc:79
+#: src/wx/dcp_panel.cc:68 src/wx/job_manager_view.cc:79
msgid "Details..."
msgstr "Dettagli"
msgid "Doremi serial numbers must have 6 digits"
msgstr ""
-#: src/wx/film_editor.cc:288
+#: src/wx/content_panel.cc:75
msgid "Down"
msgstr ""
msgid "Edit Screen..."
msgstr "Modifica Schermo..."
-#: src/wx/audio_mapping_view.cc:135 src/wx/config_dialog.cc:271
-#: src/wx/video_panel.cc:155 src/wx/video_panel.cc:172
+#: src/wx/audio_mapping_view.cc:143 src/wx/config_dialog.cc:277
+#: src/wx/video_panel.cc:163 src/wx/video_panel.cc:170
#: src/wx/editable_list.h:66
msgid "Edit..."
msgstr "Modifica..."
msgid "Encoding Servers"
msgstr "Servers di codifica"
-#: src/wx/film_editor.cc:162
+#: src/wx/dcp_panel.cc:92
msgid "Encrypted"
msgstr "Criptato"
-#: src/wx/config_dialog.cc:817
+#: src/wx/subtitle_view.cc:47
+msgid "End"
+msgstr "Fine"
+
+#: src/wx/config_dialog.cc:1159
msgid "Errors"
msgstr ""
+#: src/wx/config_dialog.cc:651
+msgid "Export DCP decryption certificate..."
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:50
msgid "Facility (e.g. DLA)"
msgstr "Facility (es. DLA)"
+#: src/wx/video_panel.cc:133
+msgid "Fade in"
+msgstr ""
+
+#: src/wx/video_panel.cc:138
+msgid "Fade out"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:76
#: src/wx/dolby_certificate_dialog.cc:100
#: src/wx/dolby_certificate_dialog.cc:123
msgid "Film name"
msgstr "Nome del film"
-#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:146
+#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:160
msgid "Filters"
msgstr "Filtri"
-#: src/wx/content_menu.cc:52
+#: src/wx/content_menu.cc:55
msgid "Find missing..."
msgstr "Trova mancante..."
-#: src/wx/film_editor.cc:145
+#: src/wx/dcp_panel.cc:538
msgid "Frame Rate"
msgstr "Frequenza fotogrammi"
msgid "Frames already encoded"
msgstr "Fotogrammi già codificati"
-#: src/wx/about_dialog.cc:61
+#: src/wx/about_dialog.cc:65
msgid "Free, open-source DCP generation from almost anything."
msgstr ""
msgid "From"
msgstr "Da"
-#: src/wx/config_dialog.cc:675
+#: src/wx/config_dialog.cc:1014
#, fuzzy
msgid "From address"
msgstr "Indirizzo IP"
-#: src/wx/audio_mapping_view.cc:133
+#: src/wx/audio_mapping_view.cc:141
msgid "Full"
msgstr ""
msgid "Full length"
msgstr ""
-#: src/wx/audio_panel.cc:52
+#: src/wx/audio_panel.cc:55
msgid "Gain"
msgstr ""
msgid "Gain for content channel %d in DCP channel %d"
msgstr "Guadagno per il canale sorgente %d nel canale DCP %d"
-#: src/wx/properties_dialog.cc:52
+#: src/wx/properties_dialog.cc:51
msgid "Gb"
msgstr "Gb"
-#: src/wx/config_dialog.cc:813
+#: src/wx/config_dialog.cc:1155
msgid "General"
msgstr ""
-#: src/wx/audio_mapping_view.cc:301
+#: src/wx/audio_mapping_view.cc:309
msgid "HI"
msgstr "HI"
msgid "Host name or IP address"
msgstr "Nome dell'Host o indirizzo IP"
-#: src/wx/audio_panel.cc:242
-msgid "Hz"
-msgstr "Hz"
-
#: src/wx/gain_calculator_dialog.cc:29
msgid "I want to play this back at fader"
msgstr "Sto usando il fader a"
-#: src/wx/config_dialog.cc:560
+#: src/wx/config_dialog.cc:899
msgid "IP address"
msgstr "Indirizzo IP"
-#: src/wx/config_dialog.cc:456
+#: src/wx/config_dialog.cc:462
#, fuzzy
msgid "IP address / host name"
msgstr "Indirizzo IP"
msgid "Input gamma"
msgstr ""
-#: src/wx/film_editor.cc:228
+#: src/wx/config_dialog.cc:727
+msgid "Intermediate"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:31
+msgid "Intermediate common name"
+msgstr ""
+
+#: src/wx/dcp_panel.cc:115
msgid "Interop"
msgstr ""
-#: src/wx/film_editor.cc:181
+#: src/wx/dcp_panel.cc:565
msgid "JPEG2000 bandwidth"
msgstr "Banda passante JPEG2000"
-#: src/wx/content_menu.cc:51
+#: src/wx/content_menu.cc:54
msgid "Join"
msgstr ""
-#: src/wx/config_dialog.cc:627
+#: src/wx/config_dialog.cc:966
msgid "KDM Email"
msgstr ""
msgid "KDM|Timing"
msgstr ""
-#: src/wx/film_editor.cc:298
+#: src/wx/content_panel.cc:85
msgid "Keep video in sequence"
msgstr "Tieni i video in sequenza"
-#: src/wx/audio_mapping_view.cc:277
+#: src/wx/config_dialog.cc:548
+msgid "Keys"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:285
msgid "L"
msgstr "L"
-#: src/wx/audio_mapping_view.cc:309
+#: src/wx/audio_mapping_view.cc:317
msgid "Lc"
msgstr "Lc"
-#: src/wx/video_panel.cc:88
+#: src/wx/config_dialog.cc:725
+msgid "Leaf"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:33
+msgid "Leaf common name"
+msgstr ""
+
+#: src/wx/video_panel.cc:89
msgid "Left crop"
msgstr "Taglio a sinistra"
-#: src/wx/audio_mapping_view.cc:289
+#: src/wx/audio_mapping_view.cc:297
msgid "Lfe"
msgstr "Lfe"
msgid "Load from file..."
msgstr ""
-#: src/wx/config_dialog.cc:807
+#: src/wx/config_dialog.cc:620 src/wx/config_dialog.cc:633
+#: src/wx/config_dialog.cc:646
+#, fuzzy
+msgid "Load..."
+msgstr "Aggiungi..."
+
+#: src/wx/config_dialog.cc:1149
msgid "Log"
msgstr ""
-#: src/wx/config_dialog.cc:804
+#: src/wx/config_dialog.cc:1146
msgid "Log:"
msgstr ""
-#: src/wx/audio_mapping_view.cc:293
+#: src/wx/audio_mapping_view.cc:301
msgid "Ls"
msgstr "Ls"
-#: src/wx/film_editor.cc:784
+#: src/wx/content_panel.cc:438
msgid "MISSING: "
msgstr "MANCANTE:"
-#: src/wx/config_dialog.cc:660
+#: src/wx/config_dialog.cc:999
#, fuzzy
msgid "Mail password"
msgstr "Password del TMS"
-#: src/wx/config_dialog.cc:656
+#: src/wx/config_dialog.cc:995
#, fuzzy
msgid "Mail user name"
msgstr "Nome utente del TMS"
msgid "Make KDMs"
msgstr "Crea KDM"
+#: src/wx/make_signer_chain_dialog.cc:23
+#, fuzzy
+msgid "Make certificate chain"
+msgstr "Seleziona il file del Certificato"
+
#: src/wx/isdcf_metadata_dialog.cc:71
msgid "Mastered luminance (e.g. 4fl)"
msgstr ""
msgid "Matrix"
msgstr "Matrice"
-#: src/wx/config_dialog.cc:791
+#: src/wx/config_dialog.cc:1133
#, fuzzy
msgid "Maximum JPEG2000 bandwidth"
msgstr "Banda passante JPEG2000"
-#: src/wx/config_dialog.cc:291 src/wx/config_dialog.cc:795
-#: src/wx/film_editor.cc:185
+#: src/wx/config_dialog.cc:297 src/wx/config_dialog.cc:1137
+#: src/wx/dcp_panel.cc:569
msgid "Mbit/s"
msgstr ""
-#: src/wx/video_panel.cc:280
+#: src/wx/video_panel.cc:301
msgid "Multiple content selected"
msgstr "Molteplici sorgenti selezionate"
msgid "My Documents"
msgstr "Documenti"
-#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:512
-#: src/wx/film_editor.cc:113 src/wx/preset_colour_conversion_dialog.cc:38
+#: src/wx/content_panel.cc:442
+msgid "NEEDS KDM: "
+msgstr ""
+
+#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:518
+#: src/wx/dcp_panel.cc:56 src/wx/preset_colour_conversion_dialog.cc:38
#: src/wx/screen_dialog.cc:38
msgid "Name"
msgstr "Nome"
msgid "New versions of DCP-o-matic are available."
msgstr "Una nuova versione di DCP-o-matic è disponibile."
-#: src/wx/audio_mapping_view.cc:348
+#: src/wx/audio_mapping_view.cc:356
#, c-format
msgid "No audio will be passed from content channel %d to DCP channel %d."
msgstr "Nessun audio sarà passato dal canale %d sorgente al canale %d del DCP"
-#: src/wx/video_panel.cc:153 src/wx/video_panel.cc:249
+#: src/wx/audio_panel.cc:290 src/wx/video_panel.cc:161
+#: src/wx/video_panel.cc:248
msgid "None"
msgstr "Nessuno"
-#: src/wx/audio_mapping_view.cc:132
+#: src/wx/audio_mapping_view.cc:140
msgid "Off"
msgstr ""
+#: src/wx/config_dialog.cc:1167
+msgid "Open console window"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:25
+#, fuzzy
+msgid "Organisation"
+msgstr "Durata"
+
+#: src/wx/make_signer_chain_dialog.cc:27
+msgid "Organisational unit"
+msgstr ""
+
#: src/wx/screen_dialog.cc:65
msgid "Other"
msgstr ""
-#: src/wx/config_dialog.cc:652
+#: src/wx/config_dialog.cc:991
msgid "Outgoing mail server"
msgstr "Mail server posta in uscita"
+#: src/wx/film_viewer.cc:61
+#, fuzzy
+msgid "Outline content"
+msgstr "Molteplici sorgenti selezionate"
+
#: src/wx/kdm_dialog.cc:156
#, fuzzy
msgid "Output"
msgid "Package Type (e.g. OV)"
msgstr "Tipo di Package (es. OV)"
-#: src/wx/video_panel.cc:325
+#: src/wx/video_panel.cc:346
#, c-format
msgid "Padded with black to %dx%d (%.2f:1)\n"
msgstr "Riempito con nero a %dx%d (%.2f:1)\n"
-#: src/wx/config_dialog.cc:572
+#: src/wx/config_dialog.cc:911
#, fuzzy
msgid "Password"
msgstr "Password del TMS"
msgid "Peak"
msgstr "Picco"
-#: src/wx/film_viewer.cc:64
+#: src/wx/film_viewer.cc:67
msgid "Play"
msgstr "Riproduci"
msgid "Pre-release"
msgstr ""
-#: src/wx/audio_mapping_view.cc:281
+#: src/wx/config_dialog.cc:638
+msgid "Private key for decrypting DCPs"
+msgstr ""
+
+#: src/wx/config_dialog.cc:612
+msgid "Private key for leaf certificate"
+msgstr ""
+
+#: src/wx/audio_panel.cc:89
+msgid "Process with"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:289
msgid "R"
msgstr "R"
msgid "Rating (e.g. 15)"
msgstr "Classificazione (es. 15)"
-#: src/wx/audio_mapping_view.cc:313
+#: src/wx/audio_mapping_view.cc:321
msgid "Rc"
msgstr "Rc"
+#: src/wx/content_menu.cc:56
+msgid "Re-examine..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:608
+msgid "Re-make certificates..."
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:62
msgid "Red band"
msgstr ""
-#: src/wx/content_menu.cc:54 src/wx/film_editor.cc:284
-#: src/wx/editable_list.h:68
+#: src/wx/config_dialog.cc:599 src/wx/content_menu.cc:59
+#: src/wx/content_panel.cc:71 src/wx/editable_list.h:68
msgid "Remove"
msgstr "Rimuovi"
msgid "Repeat Content"
msgstr "Ripeti il contenuto"
-#: src/wx/content_menu.cc:50
+#: src/wx/content_menu.cc:53
msgid "Repeat..."
msgstr ""
-#: src/wx/config_dialog.cc:690
+#: src/wx/config_dialog.cc:1029
msgid "Reset to default text"
msgstr ""
-#: src/wx/film_editor.cc:175
+#: src/wx/dcp_panel.cc:559
msgid "Resolution"
msgstr "Risoluzione"
msgid "Resume"
msgstr ""
-#: src/wx/audio_mapping_view.cc:356
+#: src/wx/audio_mapping_view.cc:364
msgid "Right click to change gain."
msgstr "Clicca il tasto destro per cambiare guadagno."
msgid "Right crop"
msgstr "Taglio a destra"
-#: src/wx/audio_mapping_view.cc:297
+#: src/wx/config_dialog.cc:723
+msgid "Root"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:29
+msgid "Root common name"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:305
msgid "Rs"
msgstr "Rs"
-#: src/wx/film_editor.cc:227
+#: src/wx/dcp_panel.cc:114
msgid "SMPTE"
msgstr ""
-#: src/wx/video_panel.cc:132
+#: src/wx/video_panel.cc:143
msgid "Scale to"
msgstr "Scala a"
-#: src/wx/video_panel.cc:316
+#: src/wx/video_panel.cc:337
#, c-format
msgid "Scaled to %dx%d (%.2f:1)\n"
msgstr "Scalato a %dx%d (%.2f:1)\n"
-#: src/wx/film_editor.cc:195
+#: src/wx/dcp_panel.cc:574
msgid "Scaler"
msgstr "Scaler"
msgid "Select CPL XML file"
msgstr "Seleziona file audio"
-#: src/wx/screen_dialog.cc:102
+#: src/wx/config_dialog.cc:679 src/wx/config_dialog.cc:795
+#: src/wx/config_dialog.cc:840 src/wx/screen_dialog.cc:102
msgid "Select Certificate File"
msgstr "Seleziona il file del Certificato"
+#: src/wx/content_menu.cc:266
+msgid "Select KDM"
+msgstr ""
+
+#: src/wx/config_dialog.cc:769 src/wx/config_dialog.cc:817
+#, fuzzy
+msgid "Select Key File"
+msgstr "Seleziona il file del Certificato"
+
#: src/wx/kdm_dialog.cc:185
msgid "Send by email"
msgstr "Manda per email"
msgid "Server serial number"
msgstr ""
-#: src/wx/config_dialog.cc:438
+#: src/wx/config_dialog.cc:444
#, fuzzy
msgid "Servers"
msgstr "Server"
msgid "Set"
msgstr ""
-#: src/wx/config_dialog.cc:92
+#: src/wx/config_dialog.cc:99
msgid "Set language"
msgstr "Seleziona la lingua"
-#: src/wx/audio_panel.cc:48
+#: src/wx/audio_panel.cc:51
msgid "Show Audio..."
msgstr "Mostra Audio..."
-#: src/wx/film_editor.cc:158
+#: src/wx/dcp_panel.cc:88
msgid "Signed"
msgstr ""
msgid "Smoothing"
msgstr "Levigatura"
-#: src/wx/timeline_dialog.cc:38
+#: src/wx/timeline_dialog.cc:39
msgid "Snap"
msgstr ""
msgid "Stable version "
msgstr "Versione stabile"
-#: src/wx/film_editor.cc:190
+#: src/wx/dcp_panel.cc:96
msgid "Standard"
msgstr ""
-#: src/wx/audio_panel.cc:81 src/wx/subtitle_panel.cc:79
+#: src/wx/subtitle_view.cc:39
+#, fuzzy
+msgid "Start"
+msgstr "Inizio"
+
+#: src/wx/audio_panel.cc:84 src/wx/subtitle_panel.cc:87
#, fuzzy
msgid "Stream"
msgstr "Traccia"
msgid "Studio (e.g. TCF)"
msgstr "Studio (es. TCF)"
-#: src/wx/config_dialog.cc:671
+#: src/wx/config_dialog.cc:1010
msgid "Subject"
msgstr ""
+#: src/wx/subtitle_view.cc:55
+#, fuzzy
+msgid "Subtitle"
+msgstr "Sottotitoli"
+
#: src/wx/isdcf_metadata_dialog.cc:38
msgid "Subtitle Language (e.g. FR)"
msgstr "Lingua dei Sottotitoli (es. FR)"
-#: src/wx/subtitle_panel.cc:34
+#: src/wx/subtitle_panel.cc:41 src/wx/subtitle_view.cc:32
msgid "Subtitles"
msgstr "Sottotitoli"
- #: src/wx/about_dialog.cc:168
+ #: src/wx/about_dialog.cc:165
msgid "Supported by"
msgstr ""
-#: src/wx/config_dialog.cc:542
+#: src/wx/config_dialog.cc:881
msgid "TMS"
msgstr "TMS"
-#: src/wx/config_dialog.cc:564
+#: src/wx/config_dialog.cc:903
#, fuzzy
msgid "Target path"
msgstr "Percorso di destinazione del TMS"
msgid "Test version "
msgstr "Versione di test"
- #: src/wx/about_dialog.cc:213
+ #: src/wx/about_dialog.cc:210
msgid "Tested by"
msgstr ""
-#: src/wx/content_menu.cc:223
+#: src/wx/content_menu.cc:252
msgid ""
"The content file(s) you specified are not the same as those that are "
"missing. Either try again with the correct content file or remove the "
msgid "There are no hints: everything looks good!"
msgstr "Non ci sono suggerimenti: sembra tutto a posto!"
-#: src/wx/film_viewer.cc:134
+#: src/wx/film_viewer.cc:142
msgid "There is not enough free memory to do that."
msgstr ""
msgid "Threads"
msgstr "Threads"
-#: src/wx/config_dialog.cc:111
+#: src/wx/config_dialog.cc:118
msgid "Threads to use for encoding on this host"
msgstr "Threads da usare per codificare su questo host"
+#: src/wx/config_dialog.cc:583
+msgid "Thumbprint"
+msgstr ""
+
#: src/wx/audio_plot.cc:165
msgid "Time"
msgstr "Tempo"
-#: src/wx/timeline_dialog.cc:32
+#: src/wx/timeline_dialog.cc:33
msgid "Timeline"
msgstr "Timeline"
-#: src/wx/film_editor.cc:290
+#: src/wx/content_panel.cc:77
msgid "Timeline..."
msgstr ""
msgid "Timing|Timing"
msgstr ""
-#: src/wx/video_panel.cc:110
+#: src/wx/video_panel.cc:111
msgid "Top crop"
msgstr "Taglio in alto"
-#: src/wx/about_dialog.cc:107
+#: src/wx/about_dialog.cc:111
msgid "Translated by"
msgstr ""
msgid "Trim from start"
msgstr "Taglia dall'inizio"
-#: src/wx/audio_dialog.cc:55 src/wx/video_panel.cc:75
+#: src/wx/audio_dialog.cc:55 src/wx/config_dialog.cc:575
+#: src/wx/video_panel.cc:76
msgid "Type"
msgstr "Tipo"
msgid "Until"
msgstr "Fino a"
-#: src/wx/film_editor.cc:286
+#: src/wx/content_panel.cc:73
msgid "Up"
msgstr "Su"
msgid "Update"
msgstr "Aggiorna"
-#: src/wx/film_editor.cc:123
+#: src/wx/dcp_panel.cc:66
#, fuzzy
msgid "Use ISDCF name"
msgstr "Usa nome DCI"
-#: src/wx/config_dialog.cc:452
+#: src/wx/config_dialog.cc:458
msgid "Use all servers"
msgstr "Usa tutti i server"
-#: src/wx/film_editor.cc:152
+#: src/wx/dcp_panel.cc:545
msgid "Use best"
msgstr "Usa la migliore"
msgid "Use preset"
msgstr "Usa predefinito"
-#: src/wx/config_dialog.cc:568
+#: src/wx/subtitle_panel.cc:47
+#, fuzzy
+msgid "Use subtitles"
+msgstr "Sottotitoli"
+
+#: src/wx/config_dialog.cc:907
msgid "User name"
msgstr "Nome utente"
-#: src/wx/audio_mapping_view.cc:305
+#: src/wx/audio_mapping_view.cc:313
msgid "VI"
msgstr "VI"
-#: src/wx/video_panel.cc:68
+#: src/wx/dcp_panel.cc:85 src/wx/video_panel.cc:69
msgid "Video"
msgstr "Video"
msgid "Video frame rate"
msgstr "Frequenza fotogrammi video"
-#: src/wx/config_dialog.cc:815
-msgid "Warnings"
+#: src/wx/subtitle_panel.cc:91
+msgid "View..."
msgstr ""
-#: src/wx/subtitle_panel.cc:39
-msgid "With Subtitles"
-msgstr "Con sottotitoli"
+#: src/wx/config_dialog.cc:1157
+msgid "Warnings"
+msgstr ""
#: src/wx/kdm_dialog.cc:172
msgid "Write to"
msgstr ""
-#: src/wx/about_dialog.cc:91
+#: src/wx/about_dialog.cc:95
msgid "Written by"
msgstr ""
-#: src/wx/subtitle_panel.cc:44
+#: src/wx/subtitle_panel.cc:52
msgid "X Offset"
msgstr "Spostamento X"
-#: src/wx/subtitle_panel.cc:62
+#: src/wx/subtitle_panel.cc:70
#, fuzzy
msgid "X Scale"
msgstr "Scaler"
-#: src/wx/subtitle_panel.cc:53
+#: src/wx/subtitle_panel.cc:61
msgid "Y Offset"
msgstr "Spostamento Y"
-#: src/wx/subtitle_panel.cc:71
+#: src/wx/subtitle_panel.cc:79
#, fuzzy
msgid "Y Scale"
msgstr "Scaler"
"Il vostro DCP ha meno di 6 canali audio. Questo può causare problemi su "
"alcuni proiettori."
-#: src/wx/timeline.cc:220
+#: src/wx/timeline.cc:229
#, fuzzy
msgid "audio"
msgstr "Audio"
-#: src/wx/audio_panel.cc:240
-msgid "channels"
-msgstr "canali"
-
#: src/wx/properties_dialog.cc:46
msgid "counting..."
msgstr "conteggio..."
-#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:62
+#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:65
msgid "dB"
msgstr "dB"
#. / TRANSLATORS: this is an abbreviation for milliseconds, the unit of time
-#: src/wx/audio_panel.cc:78 src/wx/config_dialog.cc:300
+#: src/wx/audio_panel.cc:81 src/wx/config_dialog.cc:306
msgid "ms"
msgstr "ms"
-#: src/wx/config_dialog.cc:258
+#: src/wx/config_dialog.cc:264
msgid "s"
msgstr "s"
-#: src/wx/timeline.cc:243
+#: src/wx/timeline.cc:258
msgid "still"
msgstr ""
+#: src/wx/timeline.cc:289
+#, fuzzy
+msgid "subtitles"
+msgstr "Sottotitoli"
+
#: src/wx/repeat_dialog.cc:28
msgid "times"
msgstr ""
-#: src/wx/timeline.cc:241
+#: src/wx/timeline.cc:260
#, fuzzy
msgid "video"
msgstr "Video"
+#~ msgid "1 channel"
+#~ msgstr "1 canale"
+
+#~ msgid "Audio channels"
+#~ msgstr "Canali audio"
+
+#~ msgid "Could not decode video for view (%s)"
+#~ msgstr "Non posso decodificare il video per guardarlo (%s)"
+
+#~ msgid "Hz"
+#~ msgstr "Hz"
+
+#~ msgid "With Subtitles"
+#~ msgstr "Con sottotitoli"
+
+#~ msgid "channels"
+#~ msgstr "canali"
+
#, fuzzy
#~ msgid "Default creator"
#~ msgstr "Contenitore predefinito"
#~ msgid "Add"
#~ msgstr "Aggiungi"
-#~ msgid "Duration"
-#~ msgstr "Durata"
-
#~ msgid "Edit"
#~ msgstr "Modifica"
#~ msgid "Running"
#~ msgstr "In corso"
-#, fuzzy
-#~ msgid "Start time"
-#~ msgstr "Inizio"
-
#~ msgid "A/B"
#~ msgstr "A/B"
#~ msgid "DVD-o-matic Preferences"
#~ msgstr "Preferenze DVD-o-matic"
-#~ msgid "End"
-#~ msgstr "Fine"
-
#~ msgid "Film"
#~ msgstr "Film"
msgstr ""
"Project-Id-Version: DCP-o-matic\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-09-04 20:17+0100\n"
"Last-Translator: Cherif Ben Brahim <firehc@mac.com>\n"
"Language-Team: UniversalDV <TKooijmans@universaldv.nl>\n"
"X-Generator: Poedit 1.6.9\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: src/wx/subtitle_panel.cc:48 src/wx/subtitle_panel.cc:57
-#: src/wx/subtitle_panel.cc:66 src/wx/subtitle_panel.cc:75
+#: src/wx/subtitle_panel.cc:56 src/wx/subtitle_panel.cc:65
+#: src/wx/subtitle_panel.cc:74 src/wx/subtitle_panel.cc:83
msgid "%"
msgstr "%"
-#: src/wx/about_dialog.cc:78
+#: src/wx/about_dialog.cc:82
msgid ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
msgstr ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
-#: src/wx/config_dialog.cc:664
+#: src/wx/config_dialog.cc:1003
msgid "(password will be stored on disk in plaintext)"
msgstr "(wachtwoord wordt opgeslagen op disk in leesbare tekst)"
-#: src/wx/config_dialog.cc:104
+#: src/wx/config_dialog.cc:111
msgid "(restart DCP-o-matic to see language changes)"
msgstr "(herstart DCP-o-matic voor taal wijziging)"
-#: src/wx/audio_mapping_view.cc:134
+#: src/wx/audio_mapping_view.cc:142
msgid "-6dB"
msgstr "-6dB"
msgid "1 / "
msgstr "1 / "
-#: src/wx/audio_panel.cc:238
-msgid "1 channel"
-msgstr "1 channel"
-
-#: src/wx/video_panel.cc:197
+#: src/wx/video_panel.cc:193
msgid "2D"
msgstr "2D"
msgid "2D version of content available in 3D"
msgstr "2D versie van 3D content beschikbaar"
-#: src/wx/film_editor.cc:224
+#: src/wx/dcp_panel.cc:607
msgid "2K"
msgstr "2K"
-#: src/wx/film_editor.cc:171
+#: src/wx/dcp_panel.cc:555
msgid "3D"
msgstr "3D"
-#: src/wx/video_panel.cc:200
+#: src/wx/video_panel.cc:196
msgid "3D alternate"
msgstr "3D alternate"
-#: src/wx/video_panel.cc:201
+#: src/wx/video_panel.cc:197
msgid "3D left only"
msgstr "3D enkel Links"
-#: src/wx/video_panel.cc:198
+#: src/wx/video_panel.cc:194
msgid "3D left/right"
msgstr "3D links/rechts"
-#: src/wx/video_panel.cc:202
+#: src/wx/video_panel.cc:198
msgid "3D right only"
msgstr "3D enkel rechts"
-#: src/wx/video_panel.cc:199
+#: src/wx/video_panel.cc:195
msgid "3D top/bottom"
msgstr "3D boven/beneden"
-#: src/wx/film_editor.cc:225
+#: src/wx/dcp_panel.cc:608
msgid "4K"
msgstr "4K"
msgid "A new version of DCP-o-matic is available."
msgstr "Een nieuwe versie van DCP-o-matic is beschikbaar."
-#: src/wx/about_dialog.cc:30
+#: src/wx/about_dialog.cc:34
msgid "About DCP-o-matic"
msgstr "Over DCP-o-matic"
msgid "Add Cinema..."
msgstr "Voeg Bioscoop toe..."
+#: src/wx/content_menu.cc:57
+#, fuzzy
+msgid "Add KDM..."
+msgstr "Voeg Bioscoop toe..."
+
#: src/wx/kdm_dialog.cc:86
msgid "Add Screen..."
msgstr "Voeg Scherm toe..."
-#: src/wx/film_editor.cc:280
+#: src/wx/content_panel.cc:67
msgid "Add file(s)..."
msgstr "Voeg bestande(n) toe..."
-#: src/wx/film_editor.cc:282
+#: src/wx/content_panel.cc:69
msgid "Add folder..."
msgstr "Voeg map toe..."
-#: src/wx/editable_list.h:62
+#: src/wx/config_dialog.cc:597 src/wx/editable_list.h:62
msgid "Add..."
msgstr "Toevoegen.."
"beeld zullen komen. U kan best de DCP's container instellen in Scope "
"(2.39:1) in de \"DCP\"tab."
-#: src/wx/config_dialog.cc:799
+#: src/wx/config_dialog.cc:1141
msgid "Allow any DCP frame rate"
msgstr "Sta om het welke frame rate toe in DCP"
-#: src/wx/about_dialog.cc:111
+#: src/wx/about_dialog.cc:115
msgid "Artwork by"
msgstr "Artwork door"
-#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:40
+#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:43 src/wx/dcp_panel.cc:86
msgid "Audio"
msgstr "Audio"
msgid "Audio Language (e.g. EN)"
msgstr "AudioTaal (e.g. NL)"
-#: src/wx/film_editor.cc:166
-msgid "Audio channels"
-msgstr "Audio kanalen"
-
-#: src/wx/audio_mapping_view.cc:350
+#: src/wx/audio_mapping_view.cc:358
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d unaltered."
"Audio van content kanaal %d wordt onveranderd doorgestuurd naar DCP kanaal "
"%d"
-#: src/wx/audio_mapping_view.cc:353
+#: src/wx/audio_mapping_view.cc:361
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d with gain "
"Audio wordt doorgestuurd van content kanaal %d naar DCP kanaal %d met gain "
"%1fdB."
-#: src/wx/config_dialog.cc:683
+#: src/wx/config_dialog.cc:1022
msgid "BCC address"
msgstr "BCC adres"
msgid "Browse..."
msgstr "Verkennen..."
-#: src/wx/audio_mapping_view.cc:317
+#: src/wx/audio_mapping_view.cc:325
msgid "BsL"
msgstr "BsL"
-#: src/wx/audio_mapping_view.cc:321
+#: src/wx/audio_mapping_view.cc:329
msgid "BsR"
msgstr "BsR"
+#: src/wx/dcp_panel.cc:551
+msgid "Burn subtitles into image"
+msgstr ""
+
#: src/wx/gain_calculator_dialog.cc:32
msgid "But I have to use fader"
msgstr "Maak ik gebruik een fader"
-#: src/wx/audio_mapping_view.cc:285
+#: src/wx/audio_mapping_view.cc:293
msgid "C"
msgstr "C"
-#: src/wx/config_dialog.cc:679
+#: src/wx/config_dialog.cc:1018
msgid "CC address"
msgstr "CC adres"
msgid "CPL annotation text"
msgstr "CPL opmerkingen tekst"
-#: src/wx/audio_panel.cc:63
+#: src/wx/audio_panel.cc:66
msgid "Calculate..."
msgstr "Bereken..."
msgid "Certificate"
msgstr "certificaat"
+#: src/wx/config_dialog.cc:564
+msgid "Certificate chain for signing DCPs and KDMs:"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:191
#: src/wx/doremi_certificate_dialog.cc:103
msgid "Certificate downloaded"
msgstr "Certificaat gedownload"
+#: src/wx/config_dialog.cc:625
+msgid "Certificate for decrypting DCPs"
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:65
msgid "Chain"
msgstr "Ketting"
msgid "Channel gain"
msgstr "Kanaal versterking"
-#: src/wx/audio_dialog.cc:44
+#: src/wx/audio_dialog.cc:44 src/wx/dcp_panel.cc:623
msgid "Channels"
msgstr "Kanalen"
-#: src/wx/config_dialog.cc:120
+#: src/wx/config_dialog.cc:126
msgid "Check for testing updates as well as stable ones"
msgstr "Selecteer voor Test updates en Stabiele versies "
-#: src/wx/config_dialog.cc:116
+#: src/wx/config_dialog.cc:122
msgid "Check for updates on startup"
msgstr "Selecteer voor updates controle bij startup"
-#: src/wx/content_menu.cc:182
+#: src/wx/content_menu.cc:198
msgid "Choose a file"
msgstr "Kies een bestand"
-#: src/wx/film_editor.cc:810
+#: src/wx/content_panel.cc:241
msgid "Choose a file or files"
msgstr "Kies bestand(en)"
-#: src/wx/content_menu.cc:175 src/wx/film_editor.cc:833
+#: src/wx/content_menu.cc:191 src/wx/content_panel.cc:264
msgid "Choose a folder"
msgstr "Kies map"
msgid "Cinema"
msgstr "Bioscoop"
-#: src/wx/config_dialog.cc:498
+#: src/wx/config_dialog.cc:504
msgid "Colour Conversions"
msgstr "Colour Conversions"
#: src/wx/content_colour_conversion_dialog.cc:34
-#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:162
+#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:167
msgid "Colour conversion"
msgstr "Colour conversion"
-#: src/wx/config_dialog.cc:819
+#: src/wx/config_dialog.cc:1161
msgid "Config|Timing"
msgstr "Configureer|Timing"
-#: src/wx/film_editor.cc:134
+#: src/wx/dcp_panel.cc:532
msgid "Container"
msgstr "Container"
-#: src/wx/audio_mapping_view.cc:270 src/wx/film_editor.cc:85
+#: src/wx/audio_mapping_view.cc:278 src/wx/film_editor.cc:83
msgid "Content"
msgstr "Content"
-#: src/wx/film_editor.cc:139
+#: src/wx/dcp_panel.cc:77
msgid "Content Type"
msgstr "Content Type"
-#: src/wx/video_panel.cc:332
+#: src/wx/video_panel.cc:353
#, c-format
msgid "Content frame rate %.4f\n"
msgstr "Content frame rate %.4f\n"
msgid "Content version"
msgstr "Content versie"
-#: src/wx/video_panel.cc:292
+#: src/wx/video_panel.cc:313
#, c-format
msgid "Content video is %dx%d (%.2f:1)\n"
msgstr "Content video is %dx%d (%.2f:1)\n"
msgid "Could not analyse audio."
msgstr "Kan audio niet analyseren"
-#: src/wx/film_viewer.cc:346
-#, c-format
-msgid "Could not decode video for view (%s)"
-msgstr "Kan video niet decoderen voor preview (%s)"
+#: src/wx/content_panel.cc:280
+msgid "Could not find any images nor a DCP in that folder"
+msgstr ""
#: src/wx/job_wrapper.cc:39
#, c-format
msgid "Could not make DCP: %s"
msgstr "Kan geen DCP maken: %s"
-#: src/wx/screen_dialog.cc:95
+#: src/wx/config_dialog.cc:688 src/wx/config_dialog.cc:783
+#: src/wx/config_dialog.cc:803 src/wx/screen_dialog.cc:95
#, c-format
msgid "Could not read certificate file (%s)"
msgstr "Onleesbaar certificaat (%s)"
+#: src/wx/config_dialog.cc:775 src/wx/config_dialog.cc:825
+#, fuzzy, c-format
+msgid "Could not read key file (%s)"
+msgstr "Onleesbaar certificaat (%s)"
+
#: src/wx/dolby_certificate_dialog.cc:39
msgid "Country"
msgstr "Land"
msgid "Create in folder"
msgstr "Maak in map"
-#: src/wx/video_panel.cc:304
+#: src/wx/video_panel.cc:325
#, c-format
msgid "Cropped to %dx%d (%.2f:1)\n"
msgstr "Cropped naar %dx%d (%.2f:1)\n"
-#: src/wx/video_panel.cc:244
+#: src/wx/video_panel.cc:243
msgid "Custom"
msgstr "aangepast"
-#: src/wx/film_editor.cc:87
+#: src/wx/film_editor.cc:85
msgid "DCP"
msgstr "DCP"
-#: src/wx/film_editor.cc:129
+#: src/wx/dcp_panel.cc:72
msgid "DCP Name"
msgstr "DCP naam"
msgid "DCP directory"
msgstr "DCP map"
-#: src/wx/about_dialog.cc:45 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
+#: src/wx/about_dialog.cc:49 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic audio - %s"
msgstr "DCP-o-matic audio - %s"
-#: src/wx/config_dialog.cc:270
+#: src/wx/config_dialog.cc:276
msgid "Default ISDCF name details"
msgstr "Standaard ISDCF naam details"
-#: src/wx/config_dialog.cc:287
+#: src/wx/config_dialog.cc:293
msgid "Default JPEG2000 bandwidth"
msgstr "Standaard JPEG2000 bandbreedte"
-#: src/wx/config_dialog.cc:296
+#: src/wx/config_dialog.cc:302
msgid "Default audio delay"
msgstr "Standaard audio delay"
-#: src/wx/config_dialog.cc:278
+#: src/wx/config_dialog.cc:284
msgid "Default container"
msgstr "Standaard container"
-#: src/wx/config_dialog.cc:282
+#: src/wx/config_dialog.cc:288
msgid "Default content type"
msgstr "Standaard content type"
-#: src/wx/config_dialog.cc:262
+#: src/wx/config_dialog.cc:268
msgid "Default directory for new films"
msgstr "Standaard map voor nieuwe films"
-#: src/wx/config_dialog.cc:254
+#: src/wx/config_dialog.cc:260
msgid "Default duration of still images"
msgstr "Standaard lengte van stills"
-#: src/wx/config_dialog.cc:304
+#: src/wx/config_dialog.cc:310
msgid "Default issuer"
msgstr "Standaard uitgever"
-#: src/wx/config_dialog.cc:274
+#: src/wx/config_dialog.cc:280
msgid "Default scale to"
msgstr "Standaard schaal naar"
-#: src/wx/config_dialog.cc:235
+#: src/wx/config_dialog.cc:241
msgid "Defaults"
msgstr "Standaard instellingen"
-#: src/wx/audio_panel.cc:67
+#: src/wx/audio_panel.cc:70
msgid "Delay"
msgstr "Vertraging"
-#: src/wx/film_editor.cc:125 src/wx/job_manager_view.cc:79
+#: src/wx/dcp_panel.cc:68 src/wx/job_manager_view.cc:79
msgid "Details..."
msgstr "Details..."
msgid "Doremi serial numbers must have 6 digits"
msgstr "Doremi serial numbers moeten bestaan uit 6 digits"
-#: src/wx/film_editor.cc:288
+#: src/wx/content_panel.cc:75
msgid "Down"
msgstr "Naar beneden"
msgid "Edit Screen..."
msgstr "Edit scherm"
-#: src/wx/audio_mapping_view.cc:135 src/wx/config_dialog.cc:271
-#: src/wx/video_panel.cc:155 src/wx/video_panel.cc:172
+#: src/wx/audio_mapping_view.cc:143 src/wx/config_dialog.cc:277
+#: src/wx/video_panel.cc:163 src/wx/video_panel.cc:170
#: src/wx/editable_list.h:66
msgid "Edit..."
msgstr "Edit..."
msgid "Encoding Servers"
msgstr "Encoding Servers"
-#: src/wx/film_editor.cc:162
+#: src/wx/dcp_panel.cc:92
msgid "Encrypted"
msgstr "Encrypted"
-#: src/wx/config_dialog.cc:817
+#: src/wx/subtitle_view.cc:47
+msgid "End"
+msgstr ""
+
+#: src/wx/config_dialog.cc:1159
msgid "Errors"
msgstr "Fouten"
+#: src/wx/config_dialog.cc:651
+msgid "Export DCP decryption certificate..."
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:50
msgid "Facility (e.g. DLA)"
msgstr "faciliteit (e.g. DLA)"
+#: src/wx/video_panel.cc:133
+msgid "Fade in"
+msgstr ""
+
+#: src/wx/video_panel.cc:138
+msgid "Fade out"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:76
#: src/wx/dolby_certificate_dialog.cc:100
#: src/wx/dolby_certificate_dialog.cc:123
msgid "Film name"
msgstr "Film naam"
-#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:146
+#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:160
msgid "Filters"
msgstr "Filters"
-#: src/wx/content_menu.cc:52
+#: src/wx/content_menu.cc:55
msgid "Find missing..."
msgstr "Zoek ontbrekende..."
-#: src/wx/film_editor.cc:145
+#: src/wx/dcp_panel.cc:538
msgid "Frame Rate"
msgstr "Frame Rate"
msgid "Frames already encoded"
msgstr "Frames zijn al omgezet"
-#: src/wx/about_dialog.cc:61
+#: src/wx/about_dialog.cc:65
msgid "Free, open-source DCP generation from almost anything."
msgstr "Gratis, open-source DCP samensteller voor bijna alles."
msgid "From"
msgstr "Van"
-#: src/wx/config_dialog.cc:675
+#: src/wx/config_dialog.cc:1014
msgid "From address"
msgstr "Van adres"
-#: src/wx/audio_mapping_view.cc:133
+#: src/wx/audio_mapping_view.cc:141
msgid "Full"
msgstr "Volledig"
msgid "Full length"
msgstr "Volledige lengte"
-#: src/wx/audio_panel.cc:52
+#: src/wx/audio_panel.cc:55
msgid "Gain"
msgstr "Versterking"
msgid "Gain for content channel %d in DCP channel %d"
msgstr "Gain voor content kanaal %d in DCP kanaal %d"
-#: src/wx/properties_dialog.cc:52
+#: src/wx/properties_dialog.cc:51
msgid "Gb"
msgstr "Gb"
-#: src/wx/config_dialog.cc:813
+#: src/wx/config_dialog.cc:1155
msgid "General"
msgstr "Algemeen"
-#: src/wx/audio_mapping_view.cc:301
+#: src/wx/audio_mapping_view.cc:309
msgid "HI"
msgstr "HI"
msgid "Host name or IP address"
msgstr "Host naam of IP address"
-#: src/wx/audio_panel.cc:242
-msgid "Hz"
-msgstr "Hz"
-
#: src/wx/gain_calculator_dialog.cc:29
msgid "I want to play this back at fader"
msgstr "Ik wil dit afspelen met fader"
-#: src/wx/config_dialog.cc:560
+#: src/wx/config_dialog.cc:899
msgid "IP address"
msgstr "IP adres"
-#: src/wx/config_dialog.cc:456
+#: src/wx/config_dialog.cc:462
msgid "IP address / host name"
msgstr "IP adres / host naam"
msgid "Input gamma"
msgstr "Input gamma"
-#: src/wx/film_editor.cc:228
+#: src/wx/config_dialog.cc:727
+msgid "Intermediate"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:31
+msgid "Intermediate common name"
+msgstr ""
+
+#: src/wx/dcp_panel.cc:115
msgid "Interop"
msgstr "Interop"
-#: src/wx/film_editor.cc:181
+#: src/wx/dcp_panel.cc:565
msgid "JPEG2000 bandwidth"
msgstr "JPEG2000 bandbreedte"
-#: src/wx/content_menu.cc:51
+#: src/wx/content_menu.cc:54
msgid "Join"
msgstr "Samenvoegen"
-#: src/wx/config_dialog.cc:627
+#: src/wx/config_dialog.cc:966
msgid "KDM Email"
msgstr "KDM Email"
msgid "KDM|Timing"
msgstr "KDM|Timing"
-#: src/wx/film_editor.cc:298
+#: src/wx/content_panel.cc:85
msgid "Keep video in sequence"
msgstr "Behoud video in tijdlijn"
-#: src/wx/audio_mapping_view.cc:277
+#: src/wx/config_dialog.cc:548
+msgid "Keys"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:285
msgid "L"
msgstr "L"
-#: src/wx/audio_mapping_view.cc:309
+#: src/wx/audio_mapping_view.cc:317
msgid "Lc"
msgstr "Lc"
-#: src/wx/video_panel.cc:88
+#: src/wx/config_dialog.cc:725
+msgid "Leaf"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:33
+msgid "Leaf common name"
+msgstr ""
+
+#: src/wx/video_panel.cc:89
msgid "Left crop"
msgstr "Left crop"
-#: src/wx/audio_mapping_view.cc:289
+#: src/wx/audio_mapping_view.cc:297
msgid "Lfe"
msgstr "Lfe"
msgid "Load from file..."
msgstr "Laad van bestand..."
-#: src/wx/config_dialog.cc:807
+#: src/wx/config_dialog.cc:620 src/wx/config_dialog.cc:633
+#: src/wx/config_dialog.cc:646
+#, fuzzy
+msgid "Load..."
+msgstr "Toevoegen.."
+
+#: src/wx/config_dialog.cc:1149
msgid "Log"
msgstr "Log"
-#: src/wx/config_dialog.cc:804
+#: src/wx/config_dialog.cc:1146
msgid "Log:"
msgstr ""
-#: src/wx/audio_mapping_view.cc:293
+#: src/wx/audio_mapping_view.cc:301
msgid "Ls"
msgstr "Ls"
-#: src/wx/film_editor.cc:784
+#: src/wx/content_panel.cc:438
msgid "MISSING: "
msgstr "ONTBREEKT:"
-#: src/wx/config_dialog.cc:660
+#: src/wx/config_dialog.cc:999
msgid "Mail password"
msgstr "Mail wachtwoord"
-#: src/wx/config_dialog.cc:656
+#: src/wx/config_dialog.cc:995
msgid "Mail user name"
msgstr "Mail gebruikersnaam"
msgid "Make KDMs"
msgstr "Maak KDM's"
+#: src/wx/make_signer_chain_dialog.cc:23
+#, fuzzy
+msgid "Make certificate chain"
+msgstr "Selecteer Certificaat bestand"
+
#: src/wx/isdcf_metadata_dialog.cc:71
msgid "Mastered luminance (e.g. 4fl)"
msgstr "Gemasterde helderheid (bv. 4fl)"
msgid "Matrix"
msgstr "Matrix"
-#: src/wx/config_dialog.cc:791
+#: src/wx/config_dialog.cc:1133
msgid "Maximum JPEG2000 bandwidth"
msgstr "Maximum JPEG2000 bandbreedte"
-#: src/wx/config_dialog.cc:291 src/wx/config_dialog.cc:795
-#: src/wx/film_editor.cc:185
+#: src/wx/config_dialog.cc:297 src/wx/config_dialog.cc:1137
+#: src/wx/dcp_panel.cc:569
msgid "Mbit/s"
msgstr "Mbit/s"
-#: src/wx/video_panel.cc:280
+#: src/wx/video_panel.cc:301
msgid "Multiple content selected"
msgstr "Meedere content geselecteerd"
msgid "My Documents"
msgstr "Mijn documenten"
-#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:512
-#: src/wx/film_editor.cc:113 src/wx/preset_colour_conversion_dialog.cc:38
+#: src/wx/content_panel.cc:442
+msgid "NEEDS KDM: "
+msgstr ""
+
+#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:518
+#: src/wx/dcp_panel.cc:56 src/wx/preset_colour_conversion_dialog.cc:38
#: src/wx/screen_dialog.cc:38
msgid "Name"
msgstr "Naam"
msgid "New versions of DCP-o-matic are available."
msgstr "Er zijn nieuwe versies van DCP -o- matic beschikbaar."
-#: src/wx/audio_mapping_view.cc:348
+#: src/wx/audio_mapping_view.cc:356
#, c-format
msgid "No audio will be passed from content channel %d to DCP channel %d."
msgstr ""
"Er wordt geen audio van het content kanaal %d doorgestuurd naar DCP kanaal "
"%d."
-#: src/wx/video_panel.cc:153 src/wx/video_panel.cc:249
+#: src/wx/audio_panel.cc:290 src/wx/video_panel.cc:161
+#: src/wx/video_panel.cc:248
msgid "None"
msgstr "Geen"
-#: src/wx/audio_mapping_view.cc:132
+#: src/wx/audio_mapping_view.cc:140
msgid "Off"
msgstr "Uit"
+#: src/wx/config_dialog.cc:1167
+msgid "Open console window"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:25
+msgid "Organisation"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:27
+msgid "Organisational unit"
+msgstr ""
+
#: src/wx/screen_dialog.cc:65
msgid "Other"
msgstr "Andere"
-#: src/wx/config_dialog.cc:652
+#: src/wx/config_dialog.cc:991
msgid "Outgoing mail server"
msgstr "Uitgaande mail server"
+#: src/wx/film_viewer.cc:61
+#, fuzzy
+msgid "Outline content"
+msgstr "Meedere content geselecteerd"
+
#: src/wx/kdm_dialog.cc:156
msgid "Output"
msgstr "Output"
msgid "Package Type (e.g. OV)"
msgstr "Package Type (e.g. OV)"
-#: src/wx/video_panel.cc:325
+#: src/wx/video_panel.cc:346
#, c-format
msgid "Padded with black to %dx%d (%.2f:1)\n"
msgstr "Opgevuld met zwart tot %dx%d (%.2f:1)\n"
-#: src/wx/config_dialog.cc:572
+#: src/wx/config_dialog.cc:911
msgid "Password"
msgstr "Wachtwoord"
msgid "Peak"
msgstr "Piek"
-#: src/wx/film_viewer.cc:64
+#: src/wx/film_viewer.cc:67
msgid "Play"
msgstr "Afspelen"
msgid "Pre-release"
msgstr "Voor-uitgave"
-#: src/wx/audio_mapping_view.cc:281
+#: src/wx/config_dialog.cc:638
+msgid "Private key for decrypting DCPs"
+msgstr ""
+
+#: src/wx/config_dialog.cc:612
+msgid "Private key for leaf certificate"
+msgstr ""
+
+#: src/wx/audio_panel.cc:89
+msgid "Process with"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:289
msgid "R"
msgstr "R"
msgid "Rating (e.g. 15)"
msgstr "Beoordeling (e.g. 15)"
-#: src/wx/audio_mapping_view.cc:313
+#: src/wx/audio_mapping_view.cc:321
msgid "Rc"
msgstr "Rc"
+#: src/wx/content_menu.cc:56
+msgid "Re-examine..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:608
+#, fuzzy
+msgid "Re-make certificates..."
+msgstr "Download certificaat"
+
#: src/wx/isdcf_metadata_dialog.cc:62
msgid "Red band"
msgstr "Rode tape"
-#: src/wx/content_menu.cc:54 src/wx/film_editor.cc:284
-#: src/wx/editable_list.h:68
+#: src/wx/config_dialog.cc:599 src/wx/content_menu.cc:59
+#: src/wx/content_panel.cc:71 src/wx/editable_list.h:68
msgid "Remove"
msgstr "Verwijder"
msgid "Repeat Content"
msgstr "Herhaal content"
-#: src/wx/content_menu.cc:50
+#: src/wx/content_menu.cc:53
msgid "Repeat..."
msgstr "Herhaal..."
-#: src/wx/config_dialog.cc:690
+#: src/wx/config_dialog.cc:1029
msgid "Reset to default text"
msgstr "Herinstellen oorspronkelijke tekst"
-#: src/wx/film_editor.cc:175
+#: src/wx/dcp_panel.cc:559
msgid "Resolution"
msgstr "Resolutie"
msgid "Resume"
msgstr "Vervolg"
-#: src/wx/audio_mapping_view.cc:356
+#: src/wx/audio_mapping_view.cc:364
msgid "Right click to change gain."
msgstr "Klik Rechtermuis om gain te veranderen"
msgid "Right crop"
msgstr "Right crop"
-#: src/wx/audio_mapping_view.cc:297
+#: src/wx/config_dialog.cc:723
+msgid "Root"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:29
+msgid "Root common name"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:305
msgid "Rs"
msgstr "Rs"
-#: src/wx/film_editor.cc:227
+#: src/wx/dcp_panel.cc:114
msgid "SMPTE"
msgstr "SMPTE"
-#: src/wx/video_panel.cc:132
+#: src/wx/video_panel.cc:143
msgid "Scale to"
msgstr "Schaal tot"
-#: src/wx/video_panel.cc:316
+#: src/wx/video_panel.cc:337
#, c-format
msgid "Scaled to %dx%d (%.2f:1)\n"
msgstr "Geschaald naar %dx%d (%.2f:1)\n"
-#: src/wx/film_editor.cc:195
+#: src/wx/dcp_panel.cc:574
msgid "Scaler"
msgstr "Schaler"
msgid "Select CPL XML file"
msgstr "Selekteer CPL XML bestand"
-#: src/wx/screen_dialog.cc:102
+#: src/wx/config_dialog.cc:679 src/wx/config_dialog.cc:795
+#: src/wx/config_dialog.cc:840 src/wx/screen_dialog.cc:102
msgid "Select Certificate File"
msgstr "Selecteer Certificaat bestand"
+#: src/wx/content_menu.cc:266
+msgid "Select KDM"
+msgstr ""
+
+#: src/wx/config_dialog.cc:769 src/wx/config_dialog.cc:817
+#, fuzzy
+msgid "Select Key File"
+msgstr "Selecteer Certificaat bestand"
+
#: src/wx/kdm_dialog.cc:185
msgid "Send by email"
msgstr "Stuur per Email"
msgid "Server serial number"
msgstr "Server serie nummer"
-#: src/wx/config_dialog.cc:438
+#: src/wx/config_dialog.cc:444
msgid "Servers"
msgstr "Servers"
msgid "Set"
msgstr "Instellen"
-#: src/wx/config_dialog.cc:92
+#: src/wx/config_dialog.cc:99
msgid "Set language"
msgstr "Taal Instellen"
-#: src/wx/audio_panel.cc:48
+#: src/wx/audio_panel.cc:51
msgid "Show Audio..."
msgstr "Toon Audio..."
-#: src/wx/film_editor.cc:158
+#: src/wx/dcp_panel.cc:88
msgid "Signed"
msgstr "Signed"
msgid "Smoothing"
msgstr "Smoothing"
-#: src/wx/timeline_dialog.cc:38
+#: src/wx/timeline_dialog.cc:39
msgid "Snap"
msgstr "Snap"
msgid "Stable version "
msgstr "Stabiele versie"
-#: src/wx/film_editor.cc:190
+#: src/wx/dcp_panel.cc:96
msgid "Standard"
msgstr "Standaard"
-#: src/wx/audio_panel.cc:81 src/wx/subtitle_panel.cc:79
+#: src/wx/subtitle_view.cc:39
+msgid "Start"
+msgstr ""
+
+#: src/wx/audio_panel.cc:84 src/wx/subtitle_panel.cc:87
msgid "Stream"
msgstr "Stroom"
msgid "Studio (e.g. TCF)"
msgstr "Studio (e.g. TCF)"
-#: src/wx/config_dialog.cc:671
+#: src/wx/config_dialog.cc:1010
msgid "Subject"
msgstr "Onderwerp"
+#: src/wx/subtitle_view.cc:55
+#, fuzzy
+msgid "Subtitle"
+msgstr "Ondertitels"
+
#: src/wx/isdcf_metadata_dialog.cc:38
msgid "Subtitle Language (e.g. FR)"
msgstr "Ondertitel Taal (vb NL)"
-#: src/wx/subtitle_panel.cc:34
+#: src/wx/subtitle_panel.cc:41 src/wx/subtitle_view.cc:32
msgid "Subtitles"
msgstr "Ondertitels"
- #: src/wx/about_dialog.cc:168
+ #: src/wx/about_dialog.cc:165
msgid "Supported by"
msgstr "Ondersteund door"
-#: src/wx/config_dialog.cc:542
+#: src/wx/config_dialog.cc:881
msgid "TMS"
msgstr "TMS"
-#: src/wx/config_dialog.cc:564
+#: src/wx/config_dialog.cc:903
msgid "Target path"
msgstr "Doel pad"
msgid "Test version "
msgstr "Test Versie"
- #: src/wx/about_dialog.cc:213
+ #: src/wx/about_dialog.cc:210
msgid "Tested by"
msgstr "Getest door"
-#: src/wx/content_menu.cc:223
+#: src/wx/content_menu.cc:252
msgid ""
"The content file(s) you specified are not the same as those that are "
"missing. Either try again with the correct content file or remove the "
msgid "There are no hints: everything looks good!"
msgstr "Er zijn geen tips, alles lijkt goed!"
-#: src/wx/film_viewer.cc:134
+#: src/wx/film_viewer.cc:142
msgid "There is not enough free memory to do that."
msgstr "Er is niet genoeg geheugen om dat te doen."
msgid "Threads"
msgstr "CPU belasting"
-#: src/wx/config_dialog.cc:111
+#: src/wx/config_dialog.cc:118
msgid "Threads to use for encoding on this host"
msgstr "CPU cores beschikbaar voor encoding op deze host"
+#: src/wx/config_dialog.cc:583
+msgid "Thumbprint"
+msgstr ""
+
#: src/wx/audio_plot.cc:165
msgid "Time"
msgstr "Tijd"
-#: src/wx/timeline_dialog.cc:32
+#: src/wx/timeline_dialog.cc:33
msgid "Timeline"
msgstr "Tijdlijn"
-#: src/wx/film_editor.cc:290
+#: src/wx/content_panel.cc:77
msgid "Timeline..."
msgstr "Tijdlijn..."
msgid "Timing|Timing"
msgstr "Timing|Timing"
-#: src/wx/video_panel.cc:110
+#: src/wx/video_panel.cc:111
msgid "Top crop"
msgstr "Top crop"
-#: src/wx/about_dialog.cc:107
+#: src/wx/about_dialog.cc:111
msgid "Translated by"
msgstr "Vertaald door"
msgid "Trim from start"
msgstr "Trim vanaf begin"
-#: src/wx/audio_dialog.cc:55 src/wx/video_panel.cc:75
+#: src/wx/audio_dialog.cc:55 src/wx/config_dialog.cc:575
+#: src/wx/video_panel.cc:76
msgid "Type"
msgstr "Type"
msgid "Until"
msgstr "Totdat"
-#: src/wx/film_editor.cc:286
+#: src/wx/content_panel.cc:73
msgid "Up"
msgstr "Omhoog"
msgid "Update"
msgstr "Update"
-#: src/wx/film_editor.cc:123
+#: src/wx/dcp_panel.cc:66
msgid "Use ISDCF name"
msgstr "Gebruik ISDCF naam"
-#: src/wx/config_dialog.cc:452
+#: src/wx/config_dialog.cc:458
msgid "Use all servers"
msgstr "Gebruik alle servers"
-#: src/wx/film_editor.cc:152
+#: src/wx/dcp_panel.cc:545
msgid "Use best"
msgstr "Gebruik de beste"
msgid "Use preset"
msgstr "Gebruik preset"
-#: src/wx/config_dialog.cc:568
+#: src/wx/subtitle_panel.cc:47
+#, fuzzy
+msgid "Use subtitles"
+msgstr "Ondertitels"
+
+#: src/wx/config_dialog.cc:907
msgid "User name"
msgstr "Gebruikersnaam"
-#: src/wx/audio_mapping_view.cc:305
+#: src/wx/audio_mapping_view.cc:313
msgid "VI"
msgstr "VI"
-#: src/wx/video_panel.cc:68
+#: src/wx/dcp_panel.cc:85 src/wx/video_panel.cc:69
msgid "Video"
msgstr "Video"
msgid "Video frame rate"
msgstr "Video frame rate"
-#: src/wx/config_dialog.cc:815
+#: src/wx/subtitle_panel.cc:91
+msgid "View..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:1157
msgid "Warnings"
msgstr "Waarschuwingen"
-#: src/wx/subtitle_panel.cc:39
-msgid "With Subtitles"
-msgstr "Met ondertiteling"
-
#: src/wx/kdm_dialog.cc:172
msgid "Write to"
msgstr "Schrijf naar"
-#: src/wx/about_dialog.cc:91
+#: src/wx/about_dialog.cc:95
msgid "Written by"
msgstr "Geschreven door"
-#: src/wx/subtitle_panel.cc:44
+#: src/wx/subtitle_panel.cc:52
msgid "X Offset"
msgstr "X offset"
-#: src/wx/subtitle_panel.cc:62
+#: src/wx/subtitle_panel.cc:70
#, fuzzy
msgid "X Scale"
msgstr "Schaal"
-#: src/wx/subtitle_panel.cc:53
+#: src/wx/subtitle_panel.cc:61
msgid "Y Offset"
msgstr "Y offset"
-#: src/wx/subtitle_panel.cc:71
+#: src/wx/subtitle_panel.cc:79
#, fuzzy
msgid "Y Scale"
msgstr "Schaal"
"Uw DCP heeft minder dan 6 audio kanalen. This kan problemen geven op sommige "
"projectors."
-#: src/wx/timeline.cc:220
+#: src/wx/timeline.cc:229
msgid "audio"
msgstr "audio"
-#: src/wx/audio_panel.cc:240
-msgid "channels"
-msgstr "kanalen"
-
#: src/wx/properties_dialog.cc:46
msgid "counting..."
msgstr "tellen..."
-#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:62
+#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:65
msgid "dB"
msgstr "dB"
#. / TRANSLATORS: this is an abbreviation for milliseconds, the unit of time
-#: src/wx/audio_panel.cc:78 src/wx/config_dialog.cc:300
+#: src/wx/audio_panel.cc:81 src/wx/config_dialog.cc:306
msgid "ms"
msgstr "ms"
-#: src/wx/config_dialog.cc:258
+#: src/wx/config_dialog.cc:264
msgid "s"
msgstr "s"
-#: src/wx/timeline.cc:243
+#: src/wx/timeline.cc:258
msgid "still"
msgstr "still"
+#: src/wx/timeline.cc:289
+#, fuzzy
+msgid "subtitles"
+msgstr "Ondertitels"
+
#: src/wx/repeat_dialog.cc:28
msgid "times"
msgstr "tijden"
-#: src/wx/timeline.cc:241
+#: src/wx/timeline.cc:260
msgid "video"
msgstr "video"
+#~ msgid "1 channel"
+#~ msgstr "1 channel"
+
+#~ msgid "Audio channels"
+#~ msgstr "Audio kanalen"
+
+#~ msgid "Could not decode video for view (%s)"
+#~ msgstr "Kan video niet decoderen voor preview (%s)"
+
+#~ msgid "Hz"
+#~ msgstr "Hz"
+
+#~ msgid "With Subtitles"
+#~ msgstr "Met ondertiteling"
+
+#~ msgid "channels"
+#~ msgstr "kanalen"
+
#~ msgid "Default creator"
#~ msgstr "Standaard maker"
msgstr ""
"Project-Id-Version: DCP-o-matic\n"
"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2014-10-15 09:37+0100\n"
+ "POT-Creation-Date: 2014-10-16 16:38+0100\n"
"PO-Revision-Date: 2014-01-19 09:14+0100\n"
"Last-Translator: Adam Klotblixt <adam.klotblixt@gmail.com>\n"
"Language-Team: \n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.3\n"
-#: src/wx/subtitle_panel.cc:48 src/wx/subtitle_panel.cc:57
-#: src/wx/subtitle_panel.cc:66 src/wx/subtitle_panel.cc:75
+#: src/wx/subtitle_panel.cc:56 src/wx/subtitle_panel.cc:65
+#: src/wx/subtitle_panel.cc:74 src/wx/subtitle_panel.cc:83
msgid "%"
msgstr "%"
-#: src/wx/about_dialog.cc:78
+#: src/wx/about_dialog.cc:82
msgid ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
msgstr ""
"(C) 2012-2014 Carl Hetherington, Terrence Meiczinger, Paul Davis, Ole Laursen"
-#: src/wx/config_dialog.cc:664
+#: src/wx/config_dialog.cc:1003
msgid "(password will be stored on disk in plaintext)"
msgstr "(lösenord sparas på disk i klartext)"
-#: src/wx/config_dialog.cc:104
+#: src/wx/config_dialog.cc:111
msgid "(restart DCP-o-matic to see language changes)"
msgstr "(starta om DCP-o-matic för att se språkändringar)"
-#: src/wx/audio_mapping_view.cc:134
+#: src/wx/audio_mapping_view.cc:142
msgid "-6dB"
msgstr ""
msgid "1 / "
msgstr "1 / "
-#: src/wx/audio_panel.cc:238
-msgid "1 channel"
-msgstr "1 kanal"
-
-#: src/wx/video_panel.cc:197
+#: src/wx/video_panel.cc:193
msgid "2D"
msgstr "2D"
msgid "2D version of content available in 3D"
msgstr "Nya versioner av DCP-o-matic finns tillgängligt."
-#: src/wx/film_editor.cc:224
+#: src/wx/dcp_panel.cc:607
msgid "2K"
msgstr "2K"
-#: src/wx/film_editor.cc:171
+#: src/wx/dcp_panel.cc:555
msgid "3D"
msgstr "3D"
-#: src/wx/video_panel.cc:200
+#: src/wx/video_panel.cc:196
msgid "3D alternate"
msgstr ""
-#: src/wx/video_panel.cc:201
+#: src/wx/video_panel.cc:197
msgid "3D left only"
msgstr ""
-#: src/wx/video_panel.cc:198
+#: src/wx/video_panel.cc:194
msgid "3D left/right"
msgstr "3D left/right"
-#: src/wx/video_panel.cc:202
+#: src/wx/video_panel.cc:198
#, fuzzy
msgid "3D right only"
msgstr "3D left/right"
-#: src/wx/video_panel.cc:199
+#: src/wx/video_panel.cc:195
msgid "3D top/bottom"
msgstr "3D top/bottom"
-#: src/wx/film_editor.cc:225
+#: src/wx/dcp_panel.cc:608
msgid "4K"
msgstr "4K"
msgid "A new version of DCP-o-matic is available."
msgstr "En ny version av DCP-o-matic finns tillgänglig."
-#: src/wx/about_dialog.cc:30
+#: src/wx/about_dialog.cc:34
msgid "About DCP-o-matic"
msgstr "Om DCP-o-matic"
msgid "Add Cinema..."
msgstr "Lägg till Cinema..."
+#: src/wx/content_menu.cc:57
+#, fuzzy
+msgid "Add KDM..."
+msgstr "Lägg till Cinema..."
+
#: src/wx/kdm_dialog.cc:86
msgid "Add Screen..."
msgstr "Lägg till Skärm..."
-#: src/wx/film_editor.cc:280
+#: src/wx/content_panel.cc:67
msgid "Add file(s)..."
msgstr "Lägg till fil(er)..."
-#: src/wx/film_editor.cc:282
+#: src/wx/content_panel.cc:69
msgid "Add folder..."
msgstr "Lägg till folder..."
-#: src/wx/editable_list.h:62
+#: src/wx/config_dialog.cc:597 src/wx/editable_list.h:62
msgid "Add..."
msgstr "Lägg till..."
"tab."
msgstr ""
-#: src/wx/config_dialog.cc:799
+#: src/wx/config_dialog.cc:1141
#, fuzzy
msgid "Allow any DCP frame rate"
msgstr "bildhastighet"
-#: src/wx/about_dialog.cc:111
+#: src/wx/about_dialog.cc:115
msgid "Artwork by"
msgstr ""
-#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:40
+#: src/wx/audio_dialog.cc:33 src/wx/audio_panel.cc:43 src/wx/dcp_panel.cc:86
msgid "Audio"
msgstr "Audio"
msgid "Audio Language (e.g. EN)"
msgstr "Audiospråk (ex. SV)"
-#: src/wx/film_editor.cc:166
-msgid "Audio channels"
-msgstr "Audio-kanaler"
-
-#: src/wx/audio_mapping_view.cc:350
+#: src/wx/audio_mapping_view.cc:358
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d unaltered."
"Audio kommer att överföras från innehållskanal %d till DCP-kanal %d "
"oförändrad."
-#: src/wx/audio_mapping_view.cc:353
+#: src/wx/audio_mapping_view.cc:361
#, c-format
msgid ""
"Audio will be passed from content channel %d to DCP channel %d with gain "
"Audio kommer att överföras från innehållskanal %d till DCP-kanal %d med "
"förstärkning %.1fdB."
-#: src/wx/config_dialog.cc:683
+#: src/wx/config_dialog.cc:1022
#, fuzzy
msgid "BCC address"
msgstr "IP-adress"
msgid "Browse..."
msgstr "Bläddra..."
-#: src/wx/audio_mapping_view.cc:317
+#: src/wx/audio_mapping_view.cc:325
msgid "BsL"
msgstr "BsL"
-#: src/wx/audio_mapping_view.cc:321
+#: src/wx/audio_mapping_view.cc:329
msgid "BsR"
msgstr "BsR"
+#: src/wx/dcp_panel.cc:551
+msgid "Burn subtitles into image"
+msgstr ""
+
#: src/wx/gain_calculator_dialog.cc:32
msgid "But I have to use fader"
msgstr "Men jag måste använda mixervolym"
-#: src/wx/audio_mapping_view.cc:285
+#: src/wx/audio_mapping_view.cc:293
msgid "C"
msgstr "C"
-#: src/wx/config_dialog.cc:679
+#: src/wx/config_dialog.cc:1018
#, fuzzy
msgid "CC address"
msgstr "IP-adress"
msgid "CPL annotation text"
msgstr ""
-#: src/wx/audio_panel.cc:63
+#: src/wx/audio_panel.cc:66
msgid "Calculate..."
msgstr "Beräkna..."
msgid "Certificate"
msgstr "Välj certifikatfil"
+#: src/wx/config_dialog.cc:564
+msgid "Certificate chain for signing DCPs and KDMs:"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:191
#: src/wx/doremi_certificate_dialog.cc:103
#, fuzzy
msgid "Certificate downloaded"
msgstr "Välj certifikatfil"
+#: src/wx/config_dialog.cc:625
+msgid "Certificate for decrypting DCPs"
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:65
msgid "Chain"
msgstr ""
msgid "Channel gain"
msgstr "Kanalförstärkning"
-#: src/wx/audio_dialog.cc:44
+#: src/wx/audio_dialog.cc:44 src/wx/dcp_panel.cc:623
msgid "Channels"
msgstr "Kanaler"
-#: src/wx/config_dialog.cc:120
+#: src/wx/config_dialog.cc:126
msgid "Check for testing updates as well as stable ones"
msgstr "sök efter både test- och stabila uppdateringar"
-#: src/wx/config_dialog.cc:116
+#: src/wx/config_dialog.cc:122
msgid "Check for updates on startup"
msgstr "Sök efter uppdateringar vid start"
-#: src/wx/content_menu.cc:182
+#: src/wx/content_menu.cc:198
msgid "Choose a file"
msgstr "Välj en fil"
-#: src/wx/film_editor.cc:810
+#: src/wx/content_panel.cc:241
msgid "Choose a file or files"
msgstr "Välj en fil eller filer"
-#: src/wx/content_menu.cc:175 src/wx/film_editor.cc:833
+#: src/wx/content_menu.cc:191 src/wx/content_panel.cc:264
msgid "Choose a folder"
msgstr "Välj en folder"
msgid "Cinema"
msgstr "Lägg till Cinema..."
-#: src/wx/config_dialog.cc:498
+#: src/wx/config_dialog.cc:504
#, fuzzy
msgid "Colour Conversions"
msgstr "Färgkonverteringar"
#: src/wx/content_colour_conversion_dialog.cc:34
-#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:162
+#: src/wx/preset_colour_conversion_dialog.cc:30 src/wx/video_panel.cc:167
msgid "Colour conversion"
msgstr "Färgkonvertering"
# Svengelska
-#: src/wx/config_dialog.cc:819
+#: src/wx/config_dialog.cc:1161
#, fuzzy
msgid "Config|Timing"
msgstr "Tajming"
-#: src/wx/film_editor.cc:134
+#: src/wx/dcp_panel.cc:532
msgid "Container"
msgstr "Innehåll"
-#: src/wx/audio_mapping_view.cc:270 src/wx/film_editor.cc:85
+#: src/wx/audio_mapping_view.cc:278 src/wx/film_editor.cc:83
msgid "Content"
msgstr "Innehåll"
-#: src/wx/film_editor.cc:139
+#: src/wx/dcp_panel.cc:77
msgid "Content Type"
msgstr "Innehållstyp"
-#: src/wx/video_panel.cc:332
+#: src/wx/video_panel.cc:353
#, c-format
msgid "Content frame rate %.4f\n"
msgstr "Innehållets bildhastighet %.4f\n"
msgid "Content version"
msgstr "Innehållsversion"
-#: src/wx/video_panel.cc:292
+#: src/wx/video_panel.cc:313
#, c-format
msgid "Content video is %dx%d (%.2f:1)\n"
msgstr "Original-videon är %dx%d (%.2f:1)\n"
msgid "Could not analyse audio."
msgstr "Kunde inte analysera audio."
-#: src/wx/film_viewer.cc:346
-#, c-format
-msgid "Could not decode video for view (%s)"
-msgstr "Kunde inte avkoda video för visning (%s)"
+#: src/wx/content_panel.cc:280
+msgid "Could not find any images nor a DCP in that folder"
+msgstr ""
#: src/wx/job_wrapper.cc:39
#, c-format
msgid "Could not make DCP: %s"
msgstr "Kunde inte skapa DCP: %s"
-#: src/wx/screen_dialog.cc:95
+#: src/wx/config_dialog.cc:688 src/wx/config_dialog.cc:783
+#: src/wx/config_dialog.cc:803 src/wx/screen_dialog.cc:95
#, fuzzy, c-format
msgid "Could not read certificate file (%s)"
msgstr "Kunde inte öppna innehållsfilen (%s)"
+#: src/wx/config_dialog.cc:775 src/wx/config_dialog.cc:825
+#, fuzzy, c-format
+msgid "Could not read key file (%s)"
+msgstr "Kunde inte öppna innehållsfilen (%s)"
+
#: src/wx/dolby_certificate_dialog.cc:39
msgid "Country"
msgstr ""
msgid "Create in folder"
msgstr "Skapa i katalog"
-#: src/wx/video_panel.cc:304
+#: src/wx/video_panel.cc:325
#, c-format
msgid "Cropped to %dx%d (%.2f:1)\n"
msgstr "Beskuren till %dx%d (%.2f:1)\n"
# sammanhang?
-#: src/wx/video_panel.cc:244
+#: src/wx/video_panel.cc:243
msgid "Custom"
msgstr "Special"
-#: src/wx/film_editor.cc:87
+#: src/wx/film_editor.cc:85
msgid "DCP"
msgstr "DCP"
-#: src/wx/film_editor.cc:129
+#: src/wx/dcp_panel.cc:72
msgid "DCP Name"
msgstr "DCP-namn"
msgid "DCP directory"
msgstr ""
-#: src/wx/about_dialog.cc:45 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
+#: src/wx/about_dialog.cc:49 src/wx/wx_util.cc:87 src/wx/wx_util.cc:95
msgid "DCP-o-matic"
msgstr "DCP-o-matic"
msgid "DCP-o-matic audio - %s"
msgstr "DCP-o-matic audio - %s"
-#: src/wx/config_dialog.cc:270
+#: src/wx/config_dialog.cc:276
#, fuzzy
msgid "Default ISDCF name details"
msgstr "Detaljer om förvalda DCI-namn"
-#: src/wx/config_dialog.cc:287
+#: src/wx/config_dialog.cc:293
msgid "Default JPEG2000 bandwidth"
msgstr "Förvald JPEG2000-bandbredd"
-#: src/wx/config_dialog.cc:296
+#: src/wx/config_dialog.cc:302
msgid "Default audio delay"
msgstr "Förvald audiofördröjning"
-#: src/wx/config_dialog.cc:278
+#: src/wx/config_dialog.cc:284
msgid "Default container"
msgstr "Förvald innehållstyp"
-#: src/wx/config_dialog.cc:282
+#: src/wx/config_dialog.cc:288
msgid "Default content type"
msgstr "Förvald innehållstyp"
-#: src/wx/config_dialog.cc:262
+#: src/wx/config_dialog.cc:268
msgid "Default directory for new films"
msgstr "Förvald katalog för nya filmer"
-#: src/wx/config_dialog.cc:254
+#: src/wx/config_dialog.cc:260
msgid "Default duration of still images"
msgstr "Förvald varaktighet på stillbilder"
-#: src/wx/config_dialog.cc:304
+#: src/wx/config_dialog.cc:310
#, fuzzy
msgid "Default issuer"
msgstr "Standardval"
-#: src/wx/config_dialog.cc:274
+#: src/wx/config_dialog.cc:280
msgid "Default scale to"
msgstr ""
-#: src/wx/config_dialog.cc:235
+#: src/wx/config_dialog.cc:241
msgid "Defaults"
msgstr "Standardval"
-#: src/wx/audio_panel.cc:67
+#: src/wx/audio_panel.cc:70
#, fuzzy
msgid "Delay"
msgstr "Audio Fördröjning"
-#: src/wx/film_editor.cc:125 src/wx/job_manager_view.cc:79
+#: src/wx/dcp_panel.cc:68 src/wx/job_manager_view.cc:79
msgid "Details..."
msgstr "Detaljer..."
msgid "Doremi serial numbers must have 6 digits"
msgstr ""
-#: src/wx/film_editor.cc:288
+#: src/wx/content_panel.cc:75
msgid "Down"
msgstr "Ner"
msgid "Edit Screen..."
msgstr "Redigera Skärm..."
-#: src/wx/audio_mapping_view.cc:135 src/wx/config_dialog.cc:271
-#: src/wx/video_panel.cc:155 src/wx/video_panel.cc:172
+#: src/wx/audio_mapping_view.cc:143 src/wx/config_dialog.cc:277
+#: src/wx/video_panel.cc:163 src/wx/video_panel.cc:170
#: src/wx/editable_list.h:66
msgid "Edit..."
msgstr "Redigera..."
msgid "Encoding Servers"
msgstr "Kodningsservrar"
-#: src/wx/film_editor.cc:162
+#: src/wx/dcp_panel.cc:92
msgid "Encrypted"
msgstr "Krypterad"
-#: src/wx/config_dialog.cc:817
+#: src/wx/subtitle_view.cc:47
+msgid "End"
+msgstr "Slut"
+
+#: src/wx/config_dialog.cc:1159
msgid "Errors"
msgstr ""
+#: src/wx/config_dialog.cc:651
+msgid "Export DCP decryption certificate..."
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:50
msgid "Facility (e.g. DLA)"
msgstr "Företag (ex. DLA)"
+#: src/wx/video_panel.cc:133
+msgid "Fade in"
+msgstr ""
+
+#: src/wx/video_panel.cc:138
+msgid "Fade out"
+msgstr ""
+
#: src/wx/dolby_certificate_dialog.cc:76
#: src/wx/dolby_certificate_dialog.cc:100
#: src/wx/dolby_certificate_dialog.cc:123
msgid "Film name"
msgstr "Filmnamn"
-#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:146
+#: src/wx/filter_dialog.cc:32 src/wx/video_panel.cc:160
msgid "Filters"
msgstr "Filter"
-#: src/wx/content_menu.cc:52
+#: src/wx/content_menu.cc:55
msgid "Find missing..."
msgstr "Hitta saknade..."
-#: src/wx/film_editor.cc:145
+#: src/wx/dcp_panel.cc:538
msgid "Frame Rate"
msgstr "Bildhastighet"
msgid "Frames already encoded"
msgstr "Bildrutor redan kodade"
-#: src/wx/about_dialog.cc:61
+#: src/wx/about_dialog.cc:65
msgid "Free, open-source DCP generation from almost anything."
msgstr "Fri, öppen-källkods DCP-generering från nästan vad som helst."
msgid "From"
msgstr "Avsändare"
-#: src/wx/config_dialog.cc:675
+#: src/wx/config_dialog.cc:1014
#, fuzzy
msgid "From address"
msgstr "IP-adress"
-#: src/wx/audio_mapping_view.cc:133
+#: src/wx/audio_mapping_view.cc:141
msgid "Full"
msgstr "Full"
msgid "Full length"
msgstr "Full längd"
-#: src/wx/audio_panel.cc:52
+#: src/wx/audio_panel.cc:55
msgid "Gain"
msgstr ""
msgid "Gain for content channel %d in DCP channel %d"
msgstr "Förstärkning för innehållskanal %d i DCP-kanal %d"
-#: src/wx/properties_dialog.cc:52
+#: src/wx/properties_dialog.cc:51
msgid "Gb"
msgstr "Gb"
-#: src/wx/config_dialog.cc:813
+#: src/wx/config_dialog.cc:1155
msgid "General"
msgstr ""
-#: src/wx/audio_mapping_view.cc:301
+#: src/wx/audio_mapping_view.cc:309
msgid "HI"
msgstr "HI"
msgid "Host name or IP address"
msgstr "Datornamn eller IP-adress"
-#: src/wx/audio_panel.cc:242
-msgid "Hz"
-msgstr "Hz"
-
#: src/wx/gain_calculator_dialog.cc:29
msgid "I want to play this back at fader"
msgstr "Jag vill spela upp detta med mixervolym"
-#: src/wx/config_dialog.cc:560
+#: src/wx/config_dialog.cc:899
msgid "IP address"
msgstr "IP-adress"
-#: src/wx/config_dialog.cc:456
+#: src/wx/config_dialog.cc:462
msgid "IP address / host name"
msgstr "IP-adress / datornamn"
msgid "Input gamma"
msgstr "Indata gamma"
-#: src/wx/film_editor.cc:228
+#: src/wx/config_dialog.cc:727
+msgid "Intermediate"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:31
+msgid "Intermediate common name"
+msgstr ""
+
+#: src/wx/dcp_panel.cc:115
msgid "Interop"
msgstr "Interop"
-#: src/wx/film_editor.cc:181
+#: src/wx/dcp_panel.cc:565
msgid "JPEG2000 bandwidth"
msgstr "JPEG2000-bandbredd"
-#: src/wx/content_menu.cc:51
+#: src/wx/content_menu.cc:54
msgid "Join"
msgstr "Anslut"
-#: src/wx/config_dialog.cc:627
+#: src/wx/config_dialog.cc:966
#, fuzzy
msgid "KDM Email"
msgstr "KDM mejl"
msgstr "Tajming"
# "sekvens" eller "ordning"?
-#: src/wx/film_editor.cc:298
+#: src/wx/content_panel.cc:85
msgid "Keep video in sequence"
msgstr "Behåll video i sekvens"
-#: src/wx/audio_mapping_view.cc:277
+#: src/wx/config_dialog.cc:548
+msgid "Keys"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:285
msgid "L"
msgstr "V"
-#: src/wx/audio_mapping_view.cc:309
+#: src/wx/audio_mapping_view.cc:317
msgid "Lc"
msgstr "Vc"
-#: src/wx/video_panel.cc:88
+#: src/wx/config_dialog.cc:725
+msgid "Leaf"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:33
+msgid "Leaf common name"
+msgstr ""
+
+#: src/wx/video_panel.cc:89
msgid "Left crop"
msgstr "Vänster beskärning"
-#: src/wx/audio_mapping_view.cc:289
+#: src/wx/audio_mapping_view.cc:297
msgid "Lfe"
msgstr "Lfe"
msgid "Load from file..."
msgstr ""
-#: src/wx/config_dialog.cc:807
+#: src/wx/config_dialog.cc:620 src/wx/config_dialog.cc:633
+#: src/wx/config_dialog.cc:646
+#, fuzzy
+msgid "Load..."
+msgstr "Lägg till..."
+
+#: src/wx/config_dialog.cc:1149
msgid "Log"
msgstr ""
-#: src/wx/config_dialog.cc:804
+#: src/wx/config_dialog.cc:1146
msgid "Log:"
msgstr ""
-#: src/wx/audio_mapping_view.cc:293
+#: src/wx/audio_mapping_view.cc:301
msgid "Ls"
msgstr "Vs"
-#: src/wx/film_editor.cc:784
+#: src/wx/content_panel.cc:438
msgid "MISSING: "
msgstr "SAKNAS:"
-#: src/wx/config_dialog.cc:660
+#: src/wx/config_dialog.cc:999
msgid "Mail password"
msgstr "Mejl-lösenord"
-#: src/wx/config_dialog.cc:656
+#: src/wx/config_dialog.cc:995
msgid "Mail user name"
msgstr "Mejl-användarnamn"
msgid "Make KDMs"
msgstr "Skapa KDM:er"
+#: src/wx/make_signer_chain_dialog.cc:23
+#, fuzzy
+msgid "Make certificate chain"
+msgstr "Välj certifikatfil"
+
#: src/wx/isdcf_metadata_dialog.cc:71
msgid "Mastered luminance (e.g. 4fl)"
msgstr ""
msgid "Matrix"
msgstr "Matris"
-#: src/wx/config_dialog.cc:791
+#: src/wx/config_dialog.cc:1133
#, fuzzy
msgid "Maximum JPEG2000 bandwidth"
msgstr "JPEG2000-bandbredd"
-#: src/wx/config_dialog.cc:291 src/wx/config_dialog.cc:795
-#: src/wx/film_editor.cc:185
+#: src/wx/config_dialog.cc:297 src/wx/config_dialog.cc:1137
+#: src/wx/dcp_panel.cc:569
msgid "Mbit/s"
msgstr ""
# LÃ¥ter mysko
-#: src/wx/video_panel.cc:280
+#: src/wx/video_panel.cc:301
msgid "Multiple content selected"
msgstr "Flera innehåll valda"
msgid "My Documents"
msgstr "Mina Dokument"
-#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:512
-#: src/wx/film_editor.cc:113 src/wx/preset_colour_conversion_dialog.cc:38
+#: src/wx/content_panel.cc:442
+msgid "NEEDS KDM: "
+msgstr ""
+
+#: src/wx/cinema_dialog.cc:28 src/wx/config_dialog.cc:518
+#: src/wx/dcp_panel.cc:56 src/wx/preset_colour_conversion_dialog.cc:38
#: src/wx/screen_dialog.cc:38
msgid "Name"
msgstr "Namn"
msgid "New versions of DCP-o-matic are available."
msgstr "Nya versioner av DCP-o-matic finns tillgängligt."
-#: src/wx/audio_mapping_view.cc:348
+#: src/wx/audio_mapping_view.cc:356
#, c-format
msgid "No audio will be passed from content channel %d to DCP channel %d."
msgstr ""
"Ingen audio kommer att överföras från innehållskanalen %d till DCP-kanalen "
"%d."
-#: src/wx/video_panel.cc:153 src/wx/video_panel.cc:249
+#: src/wx/audio_panel.cc:290 src/wx/video_panel.cc:161
+#: src/wx/video_panel.cc:248
msgid "None"
msgstr "Inget"
-#: src/wx/audio_mapping_view.cc:132
+#: src/wx/audio_mapping_view.cc:140
msgid "Off"
msgstr "Av"
+#: src/wx/config_dialog.cc:1167
+msgid "Open console window"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:25
+#, fuzzy
+msgid "Organisation"
+msgstr "Längd"
+
+#: src/wx/make_signer_chain_dialog.cc:27
+msgid "Organisational unit"
+msgstr ""
+
#: src/wx/screen_dialog.cc:65
msgid "Other"
msgstr ""
-#: src/wx/config_dialog.cc:652
+#: src/wx/config_dialog.cc:991
msgid "Outgoing mail server"
msgstr "Utgående mejlserver"
+# LÃ¥ter mysko
+#: src/wx/film_viewer.cc:61
+#, fuzzy
+msgid "Outline content"
+msgstr "Flera innehåll valda"
+
#: src/wx/kdm_dialog.cc:156
#, fuzzy
msgid "Output"
msgid "Package Type (e.g. OV)"
msgstr "Förpackningstyp (ex. OV)"
-#: src/wx/video_panel.cc:325
+#: src/wx/video_panel.cc:346
#, c-format
msgid "Padded with black to %dx%d (%.2f:1)\n"
msgstr "Svarta kanter tillagda för %dx%d (%.2f:1)\n"
-#: src/wx/config_dialog.cc:572
+#: src/wx/config_dialog.cc:911
msgid "Password"
msgstr "Lösenord"
msgid "Peak"
msgstr "Topp"
-#: src/wx/film_viewer.cc:64
+#: src/wx/film_viewer.cc:67
msgid "Play"
msgstr "Spela"
msgid "Pre-release"
msgstr ""
-#: src/wx/audio_mapping_view.cc:281
+#: src/wx/config_dialog.cc:638
+msgid "Private key for decrypting DCPs"
+msgstr ""
+
+#: src/wx/config_dialog.cc:612
+msgid "Private key for leaf certificate"
+msgstr ""
+
+#: src/wx/audio_panel.cc:89
+msgid "Process with"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:289
msgid "R"
msgstr "H"
msgid "Rating (e.g. 15)"
msgstr "Klassificering (ex. 15)"
-#: src/wx/audio_mapping_view.cc:313
+#: src/wx/audio_mapping_view.cc:321
msgid "Rc"
msgstr "Hc"
+#: src/wx/content_menu.cc:56
+msgid "Re-examine..."
+msgstr ""
+
+#: src/wx/config_dialog.cc:608
+msgid "Re-make certificates..."
+msgstr ""
+
#: src/wx/isdcf_metadata_dialog.cc:62
msgid "Red band"
msgstr ""
-#: src/wx/content_menu.cc:54 src/wx/film_editor.cc:284
-#: src/wx/editable_list.h:68
+#: src/wx/config_dialog.cc:599 src/wx/content_menu.cc:59
+#: src/wx/content_panel.cc:71 src/wx/editable_list.h:68
msgid "Remove"
msgstr "Ta bort"
msgid "Repeat Content"
msgstr "Repetera Innehåll"
-#: src/wx/content_menu.cc:50
+#: src/wx/content_menu.cc:53
msgid "Repeat..."
msgstr "Upprepa..."
-#: src/wx/config_dialog.cc:690
+#: src/wx/config_dialog.cc:1029
msgid "Reset to default text"
msgstr ""
-#: src/wx/film_editor.cc:175
+#: src/wx/dcp_panel.cc:559
msgid "Resolution"
msgstr "Upplösning"
msgid "Resume"
msgstr "Fortsätt"
-#: src/wx/audio_mapping_view.cc:356
+#: src/wx/audio_mapping_view.cc:364
msgid "Right click to change gain."
msgstr "Högerklicka för att ändra förstärkning."
msgid "Right crop"
msgstr "Höger beskärning"
-#: src/wx/audio_mapping_view.cc:297
+#: src/wx/config_dialog.cc:723
+msgid "Root"
+msgstr ""
+
+#: src/wx/make_signer_chain_dialog.cc:29
+msgid "Root common name"
+msgstr ""
+
+#: src/wx/audio_mapping_view.cc:305
msgid "Rs"
msgstr "Hs"
-#: src/wx/film_editor.cc:227
+#: src/wx/dcp_panel.cc:114
msgid "SMPTE"
msgstr "SMPTE"
-#: src/wx/video_panel.cc:132
+#: src/wx/video_panel.cc:143
msgid "Scale to"
msgstr "Skala om till"
-#: src/wx/video_panel.cc:316
+#: src/wx/video_panel.cc:337
#, c-format
msgid "Scaled to %dx%d (%.2f:1)\n"
msgstr "Skalad till %dx%d (%.2f:1)\n"
-#: src/wx/film_editor.cc:195
+#: src/wx/dcp_panel.cc:574
msgid "Scaler"
msgstr "Omskalare"
msgid "Select CPL XML file"
msgstr "Välj audiofil"
-#: src/wx/screen_dialog.cc:102
+#: src/wx/config_dialog.cc:679 src/wx/config_dialog.cc:795
+#: src/wx/config_dialog.cc:840 src/wx/screen_dialog.cc:102
msgid "Select Certificate File"
msgstr "Välj certifikatfil"
+#: src/wx/content_menu.cc:266
+msgid "Select KDM"
+msgstr ""
+
+#: src/wx/config_dialog.cc:769 src/wx/config_dialog.cc:817
+#, fuzzy
+msgid "Select Key File"
+msgstr "Välj certifikatfil"
+
#: src/wx/kdm_dialog.cc:185
msgid "Send by email"
msgstr "Skicka med mejl"
msgid "Server serial number"
msgstr ""
-#: src/wx/config_dialog.cc:438
+#: src/wx/config_dialog.cc:444
#, fuzzy
msgid "Servers"
msgstr "Server"
msgid "Set"
msgstr "Sätt"
-#: src/wx/config_dialog.cc:92
+#: src/wx/config_dialog.cc:99
msgid "Set language"
msgstr "Välj språk"
-#: src/wx/audio_panel.cc:48
+#: src/wx/audio_panel.cc:51
msgid "Show Audio..."
msgstr "Visa Audio..."
-#: src/wx/film_editor.cc:158
+#: src/wx/dcp_panel.cc:88
msgid "Signed"
msgstr "Signerad"
msgstr "Utjämning"
# sammanhang?
-#: src/wx/timeline_dialog.cc:38
+#: src/wx/timeline_dialog.cc:39
msgid "Snap"
msgstr "Snap"
msgid "Stable version "
msgstr "Stabil version"
-#: src/wx/film_editor.cc:190
+#: src/wx/dcp_panel.cc:96
msgid "Standard"
msgstr "Standard"
-#: src/wx/audio_panel.cc:81 src/wx/subtitle_panel.cc:79
+#: src/wx/subtitle_view.cc:39
+#, fuzzy
+msgid "Start"
+msgstr "Start"
+
+#: src/wx/audio_panel.cc:84 src/wx/subtitle_panel.cc:87
#, fuzzy
msgid "Stream"
msgstr "Audioström"
msgid "Studio (e.g. TCF)"
msgstr "Studio (ex. TCF)"
-#: src/wx/config_dialog.cc:671
+#: src/wx/config_dialog.cc:1010
msgid "Subject"
msgstr ""
+#: src/wx/subtitle_view.cc:55
+#, fuzzy
+msgid "Subtitle"
+msgstr "Undertexter"
+
#: src/wx/isdcf_metadata_dialog.cc:38
msgid "Subtitle Language (e.g. FR)"
msgstr "Undertextspråk (ex. SV)"
-#: src/wx/subtitle_panel.cc:34
+#: src/wx/subtitle_panel.cc:41 src/wx/subtitle_view.cc:32
msgid "Subtitles"
msgstr "Undertexter"
- #: src/wx/about_dialog.cc:168
+ #: src/wx/about_dialog.cc:165
msgid "Supported by"
msgstr "Stöd från"
-#: src/wx/config_dialog.cc:542
+#: src/wx/config_dialog.cc:881
msgid "TMS"
msgstr "TMS"
-#: src/wx/config_dialog.cc:564
+#: src/wx/config_dialog.cc:903
msgid "Target path"
msgstr "Målsökväg"
msgid "Test version "
msgstr "Testversion"
- #: src/wx/about_dialog.cc:213
+ #: src/wx/about_dialog.cc:210
#, fuzzy
msgid "Tested by"
msgstr "Översatt av"
-#: src/wx/content_menu.cc:223
+#: src/wx/content_menu.cc:252
msgid ""
"The content file(s) you specified are not the same as those that are "
"missing. Either try again with the correct content file or remove the "
msgid "There are no hints: everything looks good!"
msgstr "Det finns inga råd: allt verkar bra!"
-#: src/wx/film_viewer.cc:134
+#: src/wx/film_viewer.cc:142
msgid "There is not enough free memory to do that."
msgstr ""
msgid "Threads"
msgstr "Trådar"
-#: src/wx/config_dialog.cc:111
+#: src/wx/config_dialog.cc:118
msgid "Threads to use for encoding on this host"
msgstr "Antal trådar att använda vid kodning på denna maskin"
+#: src/wx/config_dialog.cc:583
+msgid "Thumbprint"
+msgstr ""
+
#: src/wx/audio_plot.cc:165
msgid "Time"
msgstr "Tid"
-#: src/wx/timeline_dialog.cc:32
+#: src/wx/timeline_dialog.cc:33
msgid "Timeline"
msgstr "Tidslinje"
-#: src/wx/film_editor.cc:290
+#: src/wx/content_panel.cc:77
msgid "Timeline..."
msgstr "Tidslinje..."
msgid "Timing|Timing"
msgstr "Tajming"
-#: src/wx/video_panel.cc:110
+#: src/wx/video_panel.cc:111
msgid "Top crop"
msgstr "Övre beskärning"
-#: src/wx/about_dialog.cc:107
+#: src/wx/about_dialog.cc:111
msgid "Translated by"
msgstr "Översatt av"
msgid "Trim from start"
msgstr "Trimma från start"
-#: src/wx/audio_dialog.cc:55 src/wx/video_panel.cc:75
+#: src/wx/audio_dialog.cc:55 src/wx/config_dialog.cc:575
+#: src/wx/video_panel.cc:76
msgid "Type"
msgstr "Typ"
msgid "Until"
msgstr "Tills"
-#: src/wx/film_editor.cc:286
+#: src/wx/content_panel.cc:73
msgid "Up"
msgstr "Upp"
msgid "Update"
msgstr "Uppdatera"
-#: src/wx/film_editor.cc:123
+#: src/wx/dcp_panel.cc:66
#, fuzzy
msgid "Use ISDCF name"
msgstr "Använd DCI-namnet"
-#: src/wx/config_dialog.cc:452
+#: src/wx/config_dialog.cc:458
msgid "Use all servers"
msgstr "Använd alla servrar"
-#: src/wx/film_editor.cc:152
+#: src/wx/dcp_panel.cc:545
msgid "Use best"
msgstr "Använd bästa"
msgid "Use preset"
msgstr "Använd förhandsinställning"
-#: src/wx/config_dialog.cc:568
+#: src/wx/subtitle_panel.cc:47
+#, fuzzy
+msgid "Use subtitles"
+msgstr "Undertexter"
+
+#: src/wx/config_dialog.cc:907
msgid "User name"
msgstr "Användarnamn"
-#: src/wx/audio_mapping_view.cc:305
+#: src/wx/audio_mapping_view.cc:313
msgid "VI"
msgstr "VI"
-#: src/wx/video_panel.cc:68
+#: src/wx/dcp_panel.cc:85 src/wx/video_panel.cc:69
msgid "Video"
msgstr "Video"
msgid "Video frame rate"
msgstr "bildhastighet"
-#: src/wx/config_dialog.cc:815
-msgid "Warnings"
+#: src/wx/subtitle_panel.cc:91
+msgid "View..."
msgstr ""
-#: src/wx/subtitle_panel.cc:39
-msgid "With Subtitles"
-msgstr "Med Undertexter"
+#: src/wx/config_dialog.cc:1157
+msgid "Warnings"
+msgstr ""
#: src/wx/kdm_dialog.cc:172
msgid "Write to"
msgstr "Skriv till"
-#: src/wx/about_dialog.cc:91
+#: src/wx/about_dialog.cc:95
msgid "Written by"
msgstr "Skriven av"
-#: src/wx/subtitle_panel.cc:44
+#: src/wx/subtitle_panel.cc:52
#, fuzzy
msgid "X Offset"
msgstr "Undertext Förskjutning"
-#: src/wx/subtitle_panel.cc:62
+#: src/wx/subtitle_panel.cc:70
#, fuzzy
msgid "X Scale"
msgstr "Omskalare"
-#: src/wx/subtitle_panel.cc:53
+#: src/wx/subtitle_panel.cc:61
#, fuzzy
msgid "Y Offset"
msgstr "Undertext Förskjutning"
-#: src/wx/subtitle_panel.cc:71
+#: src/wx/subtitle_panel.cc:79
#, fuzzy
msgid "Y Scale"
msgstr "Omskalare"
"Din DCP har mindre än 6 audiokanaler. Detta kan medföra problem på vissa "
"projektorer."
-#: src/wx/timeline.cc:220
+#: src/wx/timeline.cc:229
msgid "audio"
msgstr "audio"
-#: src/wx/audio_panel.cc:240
-msgid "channels"
-msgstr "kanaler"
-
#: src/wx/properties_dialog.cc:46
msgid "counting..."
msgstr "räknar..."
-#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:62
+#: src/wx/audio_gain_dialog.cc:30 src/wx/audio_panel.cc:65
msgid "dB"
msgstr "dB"
#. / TRANSLATORS: this is an abbreviation for milliseconds, the unit of time
-#: src/wx/audio_panel.cc:78 src/wx/config_dialog.cc:300
+#: src/wx/audio_panel.cc:81 src/wx/config_dialog.cc:306
msgid "ms"
msgstr "ms"
-#: src/wx/config_dialog.cc:258
+#: src/wx/config_dialog.cc:264
msgid "s"
msgstr "s"
-#: src/wx/timeline.cc:243
+#: src/wx/timeline.cc:258
msgid "still"
msgstr "stillbild"
+#: src/wx/timeline.cc:289
+#, fuzzy
+msgid "subtitles"
+msgstr "Undertexter"
+
# Sammanhang?
#: src/wx/repeat_dialog.cc:28
msgid "times"
msgstr "tider"
-#: src/wx/timeline.cc:241
+#: src/wx/timeline.cc:260
msgid "video"
msgstr "video"
+#~ msgid "1 channel"
+#~ msgstr "1 kanal"
+
+#~ msgid "Audio channels"
+#~ msgstr "Audio-kanaler"
+
+#~ msgid "Could not decode video for view (%s)"
+#~ msgstr "Kunde inte avkoda video för visning (%s)"
+
+#~ msgid "Hz"
+#~ msgstr "Hz"
+
+#~ msgid "With Subtitles"
+#~ msgstr "Med Undertexter"
+
+#~ msgid "channels"
+#~ msgstr "kanaler"
+
#, fuzzy
#~ msgid "Default creator"
#~ msgstr "Förvald innehållstyp"
#~ msgid "Add"
#~ msgstr "Lägg till"
-#~ msgid "Duration"
-#~ msgstr "Längd"
-
#~ msgid "Edit"
#~ msgstr "Redigera"
#~ msgid "Running"
#~ msgstr "Körs"
-#, fuzzy
-#~ msgid "Start time"
-#~ msgstr "Start"
-
#~ msgid "A/B"
#~ msgstr "A/B"
#~ msgid "DVD-o-matic Preferences"
#~ msgstr "DVD-o-matic Inställningar"
-#~ msgid "End"
-#~ msgstr "Slut"
-
#~ msgid "Film"
#~ msgstr "Film"
config_dialog.cc
content_colour_conversion_dialog.cc
content_menu.cc
+ content_panel.cc
+ content_sub_panel.cc
+ dcp_panel.cc
isdcf_metadata_dialog.cc
dir_picker_ctrl.cc
dolby_certificate_dialog.cc
doremi_certificate_dialog.cc
download_certificate_dialog.cc
film_editor.cc
- film_editor_panel.cc
film_viewer.cc
filter_dialog.cc
filter_editor.cc
job_manager_view.cc
job_wrapper.cc
kdm_dialog.cc
+ make_signer_chain_dialog.cc
new_film_dialog.cc
preset_colour_conversion_dialog.cc
properties_dialog.cc
server_dialog.cc
servers_list_dialog.cc
subtitle_panel.cc
+ subtitle_view.cc
table_dialog.cc
timecode.cc
timeline.cc
'wx_gtk2u_adv-3.0', 'wx_gtk2u_core-3.0', 'wx_baseu_xml-3.0', 'wx_baseu-3.0']
conf.env.LIB_WXWIDGETS = ['tiff', 'SM', 'dl', 'jpeg', 'png', 'X11', 'expat']
if conf.env.TARGET_DEBIAN and conf.env.DEBIAN_UNSTABLE:
- conf.env.LIB_WXWIDGETS.append('Xxf86vm')
conf.env.LIB_WXWIDGETS.append('Xext')
conf.env.LIB_WXWIDGETS.append('X11')
else:
obj = bld(features = 'cxx cxxshlib')
- obj.name = 'libdcpomatic-wx'
+ obj.name = 'libdcpomatic2-wx'
obj.export_includes = ['..']
obj.uselib = 'WXWIDGETS DCP'
if bld.env.TARGET_LINUX:
obj.uselib += ' GTK'
- obj.use = 'libdcpomatic'
+ obj.use = 'libdcpomatic2'
obj.source = sources
- obj.target = 'dcpomatic-wx'
+ obj.target = 'dcpomatic2-wx'
- i18n.po_to_mo(os.path.join('src', 'wx'), 'libdcpomatic-wx', bld)
+ i18n.po_to_mo(os.path.join('src', 'wx'), 'libdcpomatic2-wx', bld)
def pot(bld):
i18n.pot(os.path.join('src', 'wx'), sources + " editable_list.h", 'libdcpomatic-wx')
/*
- Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2014 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
*/
+/** @file test/image_test.cc
+ * @brief Tests of the Image class.
+ *
+ * @see test/make_black_test.cc, test/pixel_formats_test.cc
+ */
+
#include <boost/test/unit_test.hpp>
#include <Magick++.h>
#include "lib/image.h"
#include "lib/scaler.h"
using std::string;
+using std::list;
using std::cout;
using boost::shared_ptr;
BOOST_AUTO_TEST_CASE (aligned_image_test)
{
- Image* s = new Image (PIX_FMT_RGB24, libdcp::Size (50, 50), true);
+ Image* s = new Image (PIX_FMT_RGB24, dcp::Size (50, 50), true);
BOOST_CHECK_EQUAL (s->components(), 1);
/* 160 is 150 aligned to the nearest 32 bytes */
BOOST_CHECK_EQUAL (s->stride()[0], 160);
BOOST_CHECK (t->data() != s->data());
BOOST_CHECK (t->data()[0] != s->data()[0]);
BOOST_CHECK (t->line_size() != s->line_size());
- BOOST_CHECK (t->line_size()[0] == s->line_size()[0]);
+ BOOST_CHECK_EQUAL (t->line_size()[0], s->line_size()[0]);
BOOST_CHECK (t->stride() != s->stride());
- BOOST_CHECK (t->stride()[0] == s->stride()[0]);
+ BOOST_CHECK_EQUAL (t->stride()[0], s->stride()[0]);
/* assignment operator */
- Image* u = new Image (PIX_FMT_YUV422P, libdcp::Size (150, 150), false);
+ Image* u = new Image (PIX_FMT_YUV422P, dcp::Size (150, 150), false);
*u = *s;
BOOST_CHECK_EQUAL (u->components(), 1);
BOOST_CHECK_EQUAL (u->stride()[0], 160);
BOOST_CHECK (u->data() != s->data());
BOOST_CHECK (u->data()[0] != s->data()[0]);
BOOST_CHECK (u->line_size() != s->line_size());
- BOOST_CHECK (u->line_size()[0] == s->line_size()[0]);
+ BOOST_CHECK_EQUAL (u->line_size()[0], s->line_size()[0]);
BOOST_CHECK (u->stride() != s->stride());
- BOOST_CHECK (u->stride()[0] == s->stride()[0]);
+ BOOST_CHECK_EQUAL (u->stride()[0], s->stride()[0]);
delete s;
delete t;
BOOST_AUTO_TEST_CASE (compact_image_test)
{
- Image* s = new Image (PIX_FMT_RGB24, libdcp::Size (50, 50), false);
+ Image* s = new Image (PIX_FMT_RGB24, dcp::Size (50, 50), false);
BOOST_CHECK_EQUAL (s->components(), 1);
BOOST_CHECK_EQUAL (s->stride()[0], 50 * 3);
BOOST_CHECK_EQUAL (s->line_size()[0], 50 * 3);
BOOST_CHECK (t->data() != s->data());
BOOST_CHECK (t->data()[0] != s->data()[0]);
BOOST_CHECK (t->line_size() != s->line_size());
- BOOST_CHECK (t->line_size()[0] == s->line_size()[0]);
+ BOOST_CHECK_EQUAL (t->line_size()[0], s->line_size()[0]);
BOOST_CHECK (t->stride() != s->stride());
- BOOST_CHECK (t->stride()[0] == s->stride()[0]);
+ BOOST_CHECK_EQUAL (t->stride()[0], s->stride()[0]);
/* assignment operator */
- Image* u = new Image (PIX_FMT_YUV422P, libdcp::Size (150, 150), true);
+ Image* u = new Image (PIX_FMT_YUV422P, dcp::Size (150, 150), true);
*u = *s;
BOOST_CHECK_EQUAL (u->components(), 1);
BOOST_CHECK_EQUAL (u->stride()[0], 50 * 3);
BOOST_CHECK (u->data() != s->data());
BOOST_CHECK (u->data()[0] != s->data()[0]);
BOOST_CHECK (u->line_size() != s->line_size());
- BOOST_CHECK (u->line_size()[0] == s->line_size()[0]);
+ BOOST_CHECK_EQUAL (u->line_size()[0], s->line_size()[0]);
BOOST_CHECK (u->stride() != s->stride());
- BOOST_CHECK (u->stride()[0] == s->stride()[0]);
+ BOOST_CHECK_EQUAL (u->stride()[0], s->stride()[0]);
delete s;
delete t;
BOOST_AUTO_TEST_CASE (crop_image_test)
{
/* This was to check out a bug with valgrind, and is probably not very useful */
- shared_ptr<Image> image (new Image (PIX_FMT_YUV420P, libdcp::Size (16, 16), true));
+ shared_ptr<Image> image (new Image (PIX_FMT_YUV420P, dcp::Size (16, 16), true));
image->make_black ();
Crop crop;
crop.top = 3;
BOOST_AUTO_TEST_CASE (crop_image_test2)
{
/* Here's a 1998 x 1080 image which is black */
- shared_ptr<Image> image (new Image (PIX_FMT_YUV420P, libdcp::Size (1998, 1080), true));
+ shared_ptr<Image> image (new Image (PIX_FMT_YUV420P, dcp::Size (1998, 1080), true));
image->make_black ();
/* Crop it by 1 pixel */
read_file (string file)
{
Magick::Image magick_image (file.c_str ());
- libdcp::Size size (magick_image.columns(), magick_image.rows());
+ dcp::Size size (magick_image.columns(), magick_image.rows());
boost::shared_ptr<Image> image (new Image (PIX_FMT_RGB24, size, true));
+ #ifdef DCPOMATIC_IMAGE_MAGICK
using namespace MagickCore;
+ #endif
uint8_t* p = image->data()[0];
for (int y = 0; y < size.height; ++y) {
uint8_t* q = p;
for (int x = 0; x < size.width; ++x) {
Magick::Color c = magick_image.pixelColor (x, y);
+ #ifdef DCPOMATIC_IMAGE_MAGICK
*q++ = c.redQuantum() * 255 / QuantumRange;
*q++ = c.greenQuantum() * 255 / QuantumRange;
*q++ = c.blueQuantum() * 255 / QuantumRange;
+ #else
+ *q++ = c.redQuantum() * 255 / MaxRGB;
+ *q++ = c.greenQuantum() * 255 / MaxRGB;
+ *q++ = c.blueQuantum() * 255 / MaxRGB;
+ #endif
}
p += image->stride()[0];
}
void
write_file (shared_ptr<Image> image, string file)
{
+ #ifdef DCPOMATIC_IMAGE_MAGICK
using namespace MagickCore;
+ #endif
Magick::Image magick_image (Magick::Geometry (image->size().width, image->size().height), Magick::Color (0, 0, 0));
uint8_t*p = image->data()[0];
for (int y = 0; y < image->size().height; ++y) {
uint8_t* q = p;
for (int x = 0; x < image->size().width; ++x) {
+ #ifdef DCPOMATIC_IMAGE_MAGICK
Magick::Color c (q[0] * QuantumRange / 256, q[1] * QuantumRange / 256, q[2] * QuantumRange / 256);
+ #else
+ Magick::Color c (q[0] * MaxRGB / 256, q[1] * MaxRGB / 256, q[2] * MaxRGB / 256);
+ #endif
magick_image.pixelColor (x, y, c);
q += 3;
}
static
void
-crop_scale_window_single (AVPixelFormat in_format, libdcp::Size in_size, Crop crop, libdcp::Size inter_size, libdcp::Size out_size)
+crop_scale_window_single (AVPixelFormat in_format, dcp::Size in_size, Crop crop, dcp::Size inter_size, dcp::Size out_size)
{
/* Set up our test image */
shared_ptr<Image> test (new Image (in_format, in_size, true));
/** Test Image::crop_scale_window against separate calls to crop/scale/copy */
BOOST_AUTO_TEST_CASE (crop_scale_window_test)
{
- crop_scale_window_single (AV_PIX_FMT_YUV422P, libdcp::Size (640, 480), Crop (), libdcp::Size (640, 480), libdcp::Size (640, 480));
- crop_scale_window_single (AV_PIX_FMT_YUV422P, libdcp::Size (640, 480), Crop (2, 4, 6, 8), libdcp::Size (640, 480), libdcp::Size (640, 480));
- crop_scale_window_single (AV_PIX_FMT_YUV422P, libdcp::Size (640, 480), Crop (2, 4, 6, 8), libdcp::Size (1920, 1080), libdcp::Size (1998, 1080));
- crop_scale_window_single (AV_PIX_FMT_YUV422P, libdcp::Size (640, 480), Crop (1, 4, 6, 8), libdcp::Size (1920, 1080), libdcp::Size (1998, 1080));
- crop_scale_window_single (AV_PIX_FMT_YUV420P, libdcp::Size (640, 480), Crop (16, 16, 0, 0), libdcp::Size (1920, 1080), libdcp::Size (1998, 1080));
- crop_scale_window_single (AV_PIX_FMT_YUV420P, libdcp::Size (640, 480), Crop (16, 3, 3, 0), libdcp::Size (1920, 1080), libdcp::Size (1998, 1080));
- crop_scale_window_single (AV_PIX_FMT_RGB24, libdcp::Size (1000, 800), Crop (0, 0, 0, 0), libdcp::Size (1920, 1080), libdcp::Size (1998, 1080));
- crop_scale_window_single (AV_PIX_FMT_RGB24, libdcp::Size (1000, 800), Crop (55, 0, 1, 9), libdcp::Size (1920, 1080), libdcp::Size (1998, 1080));
+ crop_scale_window_single (AV_PIX_FMT_YUV422P, dcp::Size (640, 480), Crop (), dcp::Size (640, 480), dcp::Size (640, 480));
+ crop_scale_window_single (AV_PIX_FMT_YUV422P, dcp::Size (640, 480), Crop (2, 4, 6, 8), dcp::Size (640, 480), dcp::Size (640, 480));
+ crop_scale_window_single (AV_PIX_FMT_YUV422P, dcp::Size (640, 480), Crop (2, 4, 6, 8), dcp::Size (1920, 1080), dcp::Size (1998, 1080));
+ crop_scale_window_single (AV_PIX_FMT_YUV422P, dcp::Size (640, 480), Crop (1, 4, 6, 8), dcp::Size (1920, 1080), dcp::Size (1998, 1080));
+ crop_scale_window_single (AV_PIX_FMT_YUV420P, dcp::Size (640, 480), Crop (16, 16, 0, 0), dcp::Size (1920, 1080), dcp::Size (1998, 1080));
+ crop_scale_window_single (AV_PIX_FMT_YUV420P, dcp::Size (640, 480), Crop (16, 3, 3, 0), dcp::Size (1920, 1080), dcp::Size (1998, 1080));
+ crop_scale_window_single (AV_PIX_FMT_RGB24, dcp::Size (1000, 800), Crop (0, 0, 0, 0), dcp::Size (1920, 1080), dcp::Size (1998, 1080));
+ crop_scale_window_single (AV_PIX_FMT_RGB24, dcp::Size (1000, 800), Crop (55, 0, 1, 9), dcp::Size (1920, 1080), dcp::Size (1998, 1080));
+}
+
+/** Test Image::alpha_blend */
+BOOST_AUTO_TEST_CASE (alpha_blend_test)
+{
+ int const stride = 48 * 4;
+
+ shared_ptr<Image> A (new Image (AV_PIX_FMT_RGBA, dcp::Size (48, 48), false));
+ A->make_black ();
+ uint8_t* a = A->data()[0];
+
+ for (int y = 0; y < 48; ++y) {
+ uint8_t* p = a + y * stride;
+ for (int x = 0; x < 16; ++x) {
+ p[x * 4] = 255;
+ p[(x + 16) * 4 + 1] = 255;
+ p[(x + 32) * 4 + 2] = 255;
+ }
+ }
+
+ shared_ptr<Image> B (new Image (AV_PIX_FMT_RGBA, dcp::Size (48, 48), true));
+ B->make_transparent ();
+ uint8_t* b = B->data()[0];
+
+ for (int y = 32; y < 48; ++y) {
+ uint8_t* p = b + y * stride;
+ for (int x = 0; x < 48; ++x) {
+ p[x * 4] = 255;
+ p[x * 4 + 1] = 255;
+ p[x * 4 + 2] = 255;
+ p[x * 4 + 3] = 255;
+ }
+ }
+
+ A->alpha_blend (B, Position<int> (0, 0));
+
+ for (int y = 0; y < 32; ++y) {
+ uint8_t* p = a + y * stride;
+ for (int x = 0; x < 16; ++x) {
+ BOOST_CHECK_EQUAL (p[x * 4], 255);
+ BOOST_CHECK_EQUAL (p[(x + 16) * 4 + 1], 255);
+ BOOST_CHECK_EQUAL (p[(x + 32) * 4 + 2], 255);
+ }
+ }
+
+ for (int y = 32; y < 48; ++y) {
+ uint8_t* p = a + y * stride;
+ for (int x = 0; x < 48; ++x) {
+ BOOST_CHECK_EQUAL (p[x * 4], 255);
+ BOOST_CHECK_EQUAL (p[x * 4 + 1], 255);
+ BOOST_CHECK_EQUAL (p[x * 4 + 2], 255);
+ BOOST_CHECK_EQUAL (p[x * 4 + 3], 255);
+ }
+ }
+}
+
+/** Test merge (list<PositionImage>) with a single image */
+BOOST_AUTO_TEST_CASE (merge_test1)
+{
+ int const stride = 48 * 4;
+
+ shared_ptr<Image> A (new Image (AV_PIX_FMT_RGBA, dcp::Size (48, 48), false));
+ A->make_transparent ();
+ uint8_t* a = A->data()[0];
+
+ for (int y = 0; y < 48; ++y) {
+ uint8_t* p = a + y * stride;
+ for (int x = 0; x < 16; ++x) {
+ /* red */
+ p[x * 4] = 255;
+ /* opaque */
+ p[x * 4 + 3] = 255;
+ }
+ }
+
+ list<PositionImage> all;
+ all.push_back (PositionImage (A, Position<int> (0, 0)));
+ PositionImage merged = merge (all);
+
+ BOOST_CHECK (merged.position == Position<int> (0, 0));
+ BOOST_CHECK_EQUAL (memcmp (merged.image->data()[0], A->data()[0], stride * 48), 0);
+}
+
+/** Test merge (list<PositionImage>) with two images */
+BOOST_AUTO_TEST_CASE (merge_test2)
+{
+ shared_ptr<Image> A (new Image (AV_PIX_FMT_RGBA, dcp::Size (48, 1), false));
+ A->make_transparent ();
+ uint8_t* a = A->data()[0];
+ for (int x = 0; x < 16; ++x) {
+ /* red */
+ a[x * 4] = 255;
+ /* opaque */
+ a[x * 4 + 3] = 255;
+ }
+
+ shared_ptr<Image> B (new Image (AV_PIX_FMT_RGBA, dcp::Size (48, 1), false));
+ B->make_transparent ();
+ uint8_t* b = B->data()[0];
+ for (int x = 0; x < 16; ++x) {
+ /* blue */
+ b[(x + 32) * 4 + 2] = 255;
+ /* opaque */
+ b[(x + 32) * 4 + 3] = 255;
+ }
+
+ list<PositionImage> all;
+ all.push_back (PositionImage (A, Position<int> (0, 0)));
+ all.push_back (PositionImage (B, Position<int> (0, 0)));
+ PositionImage merged = merge (all);
+
+ BOOST_CHECK (merged.position == Position<int> (0, 0));
+
+ uint8_t* m = merged.image->data()[0];
+
+ for (int x = 0; x < 16; ++x) {
+ BOOST_CHECK_EQUAL (m[x * 4], 255);
+ BOOST_CHECK_EQUAL (m[x * 4 + 3], 255);
+ BOOST_CHECK_EQUAL (m[(x + 16) * 4 + 3], 0);
+ BOOST_CHECK_EQUAL (m[(x + 32) * 4 + 2], 255);
+ BOOST_CHECK_EQUAL (m[(x + 32) * 4 + 3], 255);
+ }
}
import subprocess
import os
import sys
+ import distutils
+ import distutils.spawn
APPNAME = 'dcpomatic'
-VERSION = '1.76.2devel'
+VERSION = '2.0.14devel'
def options(opt):
opt.load('compiler_cxx')
conf.check_cfg(package='libavfilter', args='--cflags', uselib_store='AVFILTER', mandatory=True)
conf.env.STLIB_AVFILTER = ['avfilter', 'swresample']
conf.check_cfg(package='libavcodec', args='--cflags', uselib_store='AVCODEC', mandatory=True)
+ # lzma link is needed by Centos 7, at least
conf.env.STLIB_AVCODEC = ['avcodec']
- conf.env.LIB_AVCODEC = ['z']
+ conf.env.LIB_AVCODEC = ['z', 'lzma']
conf.check_cfg(package='libavutil', args='--cflags', uselib_store='AVUTIL', mandatory=True)
conf.env.STLIB_AVUTIL = ['avutil']
conf.check_cfg(package='libswscale', args='--cflags', uselib_store='SWSCALE', mandatory=True)
conf.check_cfg(package='libopenjpeg', args='--cflags --libs', atleast_version='1.5.0', uselib_store='OPENJPEG', mandatory=True)
conf.check_cfg(package='libopenjpeg', args='--cflags --libs', max_version='1.5.2', mandatory=True)
+def static_sub(conf):
+ conf.check_cfg(package='libsub', atleast_version='0.01.0', args='--cflags', uselib_store='SUB', mandatory=True)
+ conf.env.DEFINES_SUB = [f.replace('\\', '') for f in conf.env.DEFINES_SUB]
+ conf.env.STLIB_SUB = ['sub']
+
def static_dcp(conf, static_boost, static_xmlpp, static_xmlsec, static_ssh):
- conf.check_cfg(package='libdcp-1.0', atleast_version='0.96', args='--cflags', uselib_store='DCP', mandatory=True)
- conf.check_cfg(package='libdcp', atleast_version='0.98', args='--cflags', uselib_store='DCP', mandatory=True)
++ conf.check_cfg(package='libdcp-1.0', atleast_version='1.0', args='--cflags', uselib_store='DCP', mandatory=True)
conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP]
- conf.env.STLIB_DCP = ['dcp', 'asdcp-libdcp', 'kumu-libdcp']
+ conf.env.STLIB_DCP = ['dcp-1.0', 'asdcp-libdcp-1.0', 'kumu-libdcp-1.0']
conf.env.LIB_DCP = ['glibmm-2.4', 'ssl', 'crypto', 'bz2', 'xslt']
if static_boost:
conf.env.LIB_DCP.append('ssh')
def dynamic_dcp(conf):
- conf.check_cfg(package='libdcp', atleast_version='0.97.0', args='--cflags --libs', uselib_store='DCP', mandatory=True)
+ conf.check_cfg(package='libdcp-1.0', atleast_version='0.92', args='--cflags --libs', uselib_store='DCP', mandatory=True)
conf.env.DEFINES_DCP = [f.replace('\\', '') for f in conf.env.DEFINES_DCP]
+def dynamic_sub(conf):
+ conf.check_cfg(package='libsub', atleast_version='0.01.0', args='--cflags --libs', uselib_store='SUB', mandatory=True)
+ conf.env.DEFINES_SUB = [f.replace('\\', '') for f in conf.env.DEFINES_SUB]
+
def dynamic_ssh(conf):
conf.check_cc(fragment="""
#include <libssh/libssh.h>\n
if conf.env.TARGET_LINUX or conf.env.TARGET_OSX:
conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_POSIX')
conf.env.append_value('CXXFLAGS', '-DPOSIX_LOCALE_PREFIX="%s/share/locale"' % conf.env['INSTALL_PREFIX'])
- conf.env.append_value('CXXFLAGS', '-DPOSIX_ICON_PREFIX="%s/share/dcpomatic"' % conf.env['INSTALL_PREFIX'])
+ conf.env.append_value('CXXFLAGS', '-DPOSIX_ICON_PREFIX="%s/share/dcpomatic2"' % conf.env['INSTALL_PREFIX'])
boost_lib_suffix = ''
boost_thread = 'boost_thread'
conf.env.append_value('LINKFLAGS', '-pthread')
if conf.env.TARGET_DEBIAN:
# libxml2 seems to be linked against this on Ubuntu but it doesn't mention it in its .pc file
conf.check_cfg(package='liblzma', args='--cflags --libs', uselib_store='LZMA', mandatory=True)
+
+ if conf.env.TARGET_CENTOS_6 or conf.env.TARGET_CENTOS_7:
+ # libavcodec seems to be linked against this on Centos
+ conf.check_cfg(package='liblzma', args='--cflags --libs', uselib_store='LZMA', mandatory=True)
if not conf.env.DISABLE_GUI and conf.env.TARGET_LINUX:
conf.check_cfg(package='gtk+-2.0', args='--cflags --libs', uselib_store='GTK', mandatory=True)
conf.env.STLIB_QUICKMAIL = ['quickmail']
static_ffmpeg(conf)
static_openjpeg(conf)
+ static_sub(conf)
static_dcp(conf, False, False, False, False)
dynamic_boost(conf, boost_lib_suffix, boost_thread)
conf.env.LIB_QUICKMAIL = ['ssh2', 'idn']
static_ffmpeg(conf)
static_openjpeg(conf)
+ static_sub(conf)
static_dcp(conf, True, True, True, True)
static_boost(conf, boost_lib_suffix)
conf.env.LIB_XMLSEC = ['ltdl']
static_ffmpeg(conf)
static_openjpeg(conf)
+ static_sub(conf)
static_dcp(conf, False, True, True, True)
dynamic_boost(conf, boost_lib_suffix, boost_thread)
dynamic_ffmpeg(conf)
dynamic_openjpeg(conf)
dynamic_dcp(conf)
+ dynamic_sub(conf)
dynamic_ssh(conf)
# Not packaging; just a straight build
dynamic_boost(conf, boost_lib_suffix, boost_thread)
dynamic_ffmpeg(conf)
dynamic_dcp(conf)
+ dynamic_sub(conf)
dynamic_openjpeg(conf)
dynamic_ssh(conf)
# Dependencies which are always dynamically linked
conf.check_cfg(package='sndfile', args='--cflags --libs', uselib_store='SNDFILE', mandatory=True)
conf.check_cfg(package='glib-2.0', args='--cflags --libs', uselib_store='GLIB', mandatory=True)
- conf.check_cfg(package= '', path=conf.options.magickpp_config, args='--cppflags --cxxflags --libs', uselib_store='MAGICK', mandatory=True)
+ if distutils.spawn.find_executable(conf.options.magickpp_config):
+ conf.check_cfg(package='', path=conf.options.magickpp_config, args='--cppflags --cxxflags --libs', uselib_store='MAGICK', mandatory=True)
+ conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_IMAGE_MAGICK')
+ else:
+ conf.check_cfg(package='GraphicsMagick++', args='--cflags --libs', uselib_store='MAGICK', mandatory=True)
+ conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_GRAPHICS_MAGICK')
+
conf.check_cfg(package='libzip', args='--cflags --libs', uselib_store='ZIP', mandatory=True)
+ conf.check_cfg(package='pangomm-1.4', args='--cflags --libs', uselib_store='PANGOMM', mandatory=True)
+ conf.check_cfg(package='cairomm-1.0', args='--cflags --libs', uselib_store='CAIROMM', mandatory=True)
conf.check_cc(fragment="""
#include <glib.h>
bld.recurse('platform/osx')
for r in ['22x22', '32x32', '48x48', '64x64', '128x128']:
- bld.install_files('${PREFIX}/share/icons/hicolor/%s/apps' % r, 'icons/%s/dcpomatic.png' % r)
+ bld.install_files('${PREFIX}/share/icons/hicolor/%s/apps' % r, 'icons/%s/dcpomatic2.png' % r)
if not bld.env.TARGET_WINDOWS:
- bld.install_files('${PREFIX}/share/dcpomatic', 'icons/taskbar_icon.png')
+ bld.install_files('${PREFIX}/share/dcpomatic2', 'icons/taskbar_icon.png')
bld.add_post_fun(post)
bld.recurse('src')
def tags(bld):
- os.system('etags src/lib/*.cc src/lib/*.h src/wx/*.cc src/wx/*.h src/tools/*.cc src/tools/*.h')
+ os.system('etags src/lib/*.cc src/lib/*.h src/wx/*.cc src/wx/*.h src/tools/*.cc src/tools/*.h test/*.cc')