Merge master.
authorCarl Hetherington <cth@carlh.net>
Tue, 21 Oct 2014 18:14:58 +0000 (19:14 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 21 Oct 2014 18:14:58 +0000 (19:14 +0100)
28 files changed:
1  2 
ChangeLog
cscript
debian/changelog
src/lib/dcp_video.cc
src/lib/image.cc
src/lib/image_examiner.cc
src/lib/player_video.cc
src/lib/player_video.h
src/lib/util.cc
src/tools/dcpomatic_cli.cc
src/tools/po/de_DE.po
src/tools/po/es_ES.po
src/tools/po/fr_FR.po
src/tools/po/it_IT.po
src/tools/po/nl_NL.po
src/wx/about_dialog.cc
src/wx/audio_panel.cc
src/wx/audio_panel.h
src/wx/film_viewer.cc
src/wx/po/de_DE.po
src/wx/po/es_ES.po
src/wx/po/fr_FR.po
src/wx/po/it_IT.po
src/wx/po/nl_NL.po
src/wx/po/sv_SE.po
src/wx/wscript
test/image_test.cc
wscript

diff --combined ChangeLog
index 0d2b89a59f4a49813c5a23974035afc780535f93,5bb0711b48dda50626403c9f940268b5422490ea..873ad89dffe7361b40e682306fd9abd0c55ebb09
+++ b/ChangeLog
@@@ -1,3 -1,24 +1,24 @@@
+ 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>
  
diff --combined cscript
index 795cf0a35000f85b6ec96a220d4fa7455b97c203,495d7723ac090efbf05efad1e956cb87c4410e3b..a5c0900c121fd73a830445c3207206e3682032a9
+++ b/cscript
@@@ -8,7 -8,6 +8,6 @@@ deb_build_depends = {'debhelper': '8.0.
                       '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()
@@@ -157,8 -156,7 +156,8 @@@ def make_control(debian_version, bits, 
  
  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')
@@@ -231,7 -229,7 +230,7 @@@ def package_centos(target, cpu, version
          "%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":
diff --combined debian/changelog
index 526cae29f07b089ed28a21be132cc2a5ee1f0b50,05d8e42bf2c7a47c5e15a78d7f24f1ae7386e339..9842aacb1bde7a3ea88e935d98f511d924fcf1ec
@@@ -1,4 -1,4 +1,4 @@@
 -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
  
diff --combined src/lib/dcp_video.cc
index ccfc800c8389f275518b774d3e8e4daa7c1157dd,0000000000000000000000000000000000000000..f6c671fd14774b655acb67708b75084c6a49eaf8
mode 100644,000000..100644
--- /dev/null
@@@ -1,332 -1,0 +1,332 @@@
-               _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 (&parameters);
 +
 +      /* 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, &parameters, 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);
 +}
diff --combined src/lib/image.cc
index 0da2d1e483993ba780896a6398fc04a99963e32a,3b8c1a28ef48aa1d9b96638b708fb8a19a8f944b..bc64ba3b82373cb34bce1aff4e0f450d93ce5b29
@@@ -1,5 -1,5 +1,5 @@@
  /*
 -    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
@@@ -30,8 -30,6 +30,8 @@@ extern "C" 
  #include "image.h"
  #include "exceptions.h"
  #include "scaler.h"
 +#include "timer.h"
 +#include "rect.h"
  #include "md5_digester.h"
  
  #include "i18n.h"
@@@ -40,9 -38,8 +40,9 @@@ using std::string
  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
@@@ -86,7 -83,7 +86,7 @@@ Image::components () cons
  
  /** 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) {
@@@ -322,6 -319,8 +322,8 @@@ Image::make_black (
        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;
                }
        }
  }
@@@ -486,8 -460,8 +488,8 @@@ Image::bytes_per_pixel (int c) cons
   *  @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)
  {
@@@ -529,7 -503,7 +531,7 @@@ Image::allocate (
  }
  
  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)
  {
@@@ -599,7 -573,7 +601,7 @@@ Image::operator= (Image const & other
  void
  Image::swap (Image & other)
  {
 -      libdcp::Image::swap (other);
 +      dcp::Image::swap (other);
        
        std::swap (_pixel_format, other._pixel_format);
  
@@@ -642,7 -616,7 +644,7 @@@ Image::stride () cons
        return _stride;
  }
  
 -libdcp::Size
 +dcp::Size
  Image::size () const
  {
        return _size;
@@@ -654,31 -628,6 +656,31 @@@ Image::aligned () cons
        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);
 +      }
 +}
index 004b89e659d47ebd24cb594bc06848d2651585d4,7058ea3b282935c2a9265660500190ae770bd8d2..75ccb6a3e91fd3e21207ce26872f69f187b95170
@@@ -36,20 -36,23 +36,22 @@@ using boost::shared_ptr
  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 ();
diff --combined src/lib/player_video.cc
index 2feb52f42e9d2ef158a3dc1ad272079958bb1a48,0000000000000000000000000000000000000000..8e6fcd5f3524f8baf4e00c54f791cc92bf4778a7
mode 100644,000000..100644
--- /dev/null
@@@ -1,209 -1,0 +1,209 @@@
- 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);
 +}
diff --combined src/lib/player_video.h
index 0f5e83b10298ff93c85f0b1dee3ee5dc388d282e,0000000000000000000000000000000000000000..e9d260972824b10e58c3a4a71e2b2388b8bf97a3
mode 100644,000000..100644
--- /dev/null
@@@ -1,99 -1,0 +1,102 @@@
-       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;
 +};
diff --combined src/lib/util.cc
index e0db5de2ef2aa71558d2bc8a5b3d701e50ee254d,2e9ca66b22ccf597004b6b89892406c0d4d5da3e..7a0f1a17aec65008bf2eea3585d0bebb5cf283c9
  #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"
@@@ -101,8 -104,8 +106,8 @@@ using std::set_terminate
  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;
@@@ -267,6 -270,24 +272,6 @@@ ffmpeg_version_to_string (int v
        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)
  {
@@@ -355,16 -376,14 +360,16 @@@ dcpomatic_setup (
  
        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 ();
  }
@@@ -387,7 -406,7 +392,7 @@@ mo_path (
  boost::filesystem::path
  mo_path ()
  {
 -      return "DCP-o-matic.app/Contents/Resources";
 +      return "DCP-o-matic 2.app/Contents/Resources";
  }
  #endif
  
@@@ -472,10 -491,7 +477,10 @@@ md5_digest (vector<boost::filesystem::p
  
                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;
  
@@@ -645,17 -661,6 +650,17 @@@ stride_round_up (int c, int const * str
        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
@@@ -760,6 -765,17 +765,6 @@@ ensure_ui_thread (
        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)
  {
@@@ -810,6 -826,59 +815,6 @@@ tidy_for_filename (string f
        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 *
@@@ -894,34 -963,12 +899,34 @@@ divide_with_round (int64_t a, int64_t b
        }
  }
  
 +/** 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;
 +}
index 8c33b7d83a983f4917bf98ee413bf0cf7186d635,23ca938d4e49c7ec77d5bb0dd3b185908f891884..f55a425ce6a521d48719bee761f74a294023d878
@@@ -20,7 -20,7 +20,7 @@@
  #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"
@@@ -139,6 -139,17 +139,17 @@@ main (int argc, char* argv[]
                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 ();
diff --combined src/tools/po/de_DE.po
index 4f282e3ac64fcbcb7ff33d48cadc7d1fdf86f3eb,ba09e24da2b8f68eedd334c1116f68943e8829d4..ab8f2fca70f20d5fc6efeaf3254a869f5cb6167b
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
@@@ -18,7 -18,7 +18,7 @@@
  "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"
  
@@@ -99,7 -99,7 +99,7 @@@
  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 "
@@@ -108,7 -108,7 +108,7 @@@ msgstr "
  "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)."
@@@ -116,38 -116,38 +116,38 @@@ msgstr "
  "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 "
@@@ -205,11 -205,11 +205,11 @@@ msgstr "
  "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?"
@@@ -217,17 -217,17 +217,17 @@@ msgstr "
  "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."
@@@ -236,11 -236,11 +236,11 @@@ msgstr "
  "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."
diff --combined src/tools/po/es_ES.po
index 8059915819254c17deccfa004b1bb33d8502016f,e37d375e032a8258f610f9144625283c2a6225b9..c4074fb12b69434c066b67a35969dbea0aaa91ac
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
@@@ -17,7 -17,7 +17,7 @@@
  "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 "
@@@ -201,26 -201,26 +201,26 @@@ msgstr "
  "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."
@@@ -229,11 -229,11 +229,11 @@@ msgstr "
  "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."
diff --combined src/tools/po/fr_FR.po
index 6d1b211b2cd29cacf2beb6205ec72dc5e65b0ef0,75eed562376a96d764bba969fe40d27cf3800bdf..6d426d4327ee16bfa39510aee03d0e41e77d250b
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
@@@ -17,7 -17,7 +17,7 @@@
  "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"
  
@@@ -97,7 -97,7 +97,7 @@@
  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 "
@@@ -106,7 -106,7 +106,7 @@@ msgstr "
  "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)."
@@@ -114,37 -114,37 +114,37 @@@ msgstr "
  "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 "
@@@ -203,26 -203,26 +203,26 @@@ msgstr "
  "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."
@@@ -231,11 -231,11 +231,11 @@@ msgstr "
  "ê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."
diff --combined src/tools/po/it_IT.po
index 1885fb7fbacce1bab2ad66a980f11ee11d11e43e,07b348c13e228499a0391cfca6ea66c8ec3c7771..7f7baddaf08eabb73d1c594a5a7e523f41b2a8e8
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
@@@ -17,7 -17,7 +17,7 @@@
  "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 "
@@@ -194,35 -194,35 +194,35 @@@ msgstr "
  "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."
diff --combined src/tools/po/nl_NL.po
index e07554b48ca42db115037de3c541c42825c86a22,c77c54b950e79bdf2a61ab720079d1cc1c225b6a..02eafd9cc2aceccf4c85b53e4eadcfe7e8697340
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
@@@ -18,7 -18,7 +18,7 @@@
  "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"
  
@@@ -96,7 -96,7 +96,7 @@@
  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 "
@@@ -105,7 -105,7 +105,7 @@@ msgstr "
  "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)."
@@@ -113,37 -113,37 +113,37 @@@ msgstr "
  "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 "
@@@ -201,26 -201,26 +201,26 @@@ msgstr "
  "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."
@@@ -228,11 -228,11 +228,11 @@@ msgstr "
  "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."
diff --combined src/wx/about_dialog.cc
index 15b667f9bda20abc897b449663b8f24d63f69c3f,49e24531842564167377b85da5c48fd0055f7c85..1bbcaba799c65518a6bd65e19b714575c52d034d
@@@ -1,5 -1,5 +1,5 @@@
  /*
 -    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"
@@@ -165,6 -161,7 +165,7 @@@ AboutDialog::AboutDialog (wxWindow* par
        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)
  {
diff --combined src/wx/audio_panel.cc
index 82604763c8e690b8e3c884703617794b2e475b6f,118db7880cbeb42ca05bd4118f246eccd724ac1e..b7d6979d35f20e0988f0b3135c5f0e0acc6fac5f
@@@ -1,5 -1,5 +1,5 @@@
  /*
 -    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));
  }
@@@ -114,9 -114,12 +123,12 @@@ AudioPanel::film_changed (Film::Propert
  {
        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"));
 +              }
        }
  }
  
@@@ -172,7 -173,7 +186,7 @@@ AudioPanel::gain_calculate_button_click
        }
        
        _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 ()
                        )
@@@ -194,7 -195,7 +208,7 @@@ AudioPanel::show_clicked (
                _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 ())));
 +              }
 +      }
 +}
diff --combined src/wx/audio_panel.h
index d5821d26abd3446844bff8e8aae1b3022901f187,fa18415bdb345fccc09e78a785077e2fa2ffe382..b0218575a7f0f12ca6c5a6b59f3107626e79dbe7
@@@ -18,7 -18,7 +18,7 @@@
  */
  
  #include "lib/audio_mapping.h"
 -#include "film_editor_panel.h"
 +#include "content_sub_panel.h"
  #include "content_widget.h"
  
  class wxSpinCtrlDouble;
@@@ -28,10 -28,10 +28,10 @@@ class wxStaticText
  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);
@@@ -42,15 -42,16 +42,18 @@@ private
        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;
  };
diff --combined src/wx/film_viewer.cc
index 7ecba1903799d28ae658a7eee917bbce6d624983,54cd3e77dc30014816f35b90457d0014ea045f16..a46983a6f9972b0bf41efbc28ef1a4d03372988e
@@@ -24,7 -24,6 +24,7 @@@
  #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"
  
@@@ -53,19 -51,18 +53,19 @@@ using std::make_pair
  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);
@@@ -78,8 -75,6 +78,8 @@@
  
        _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
@@@ -130,7 -122,7 +130,7 @@@ FilmViewer::set_film (shared_ptr<Film> 
        _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);
                }
@@@ -246,29 -212,22 +246,29 @@@ FilmViewer::paint_panel (
                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
@@@ -276,9 -235,8 +276,9 @@@ FilmViewer::panel_sized (wxSizeEvent& e
  {
        _panel_size.width = ev.GetSize().GetWidth();
        _panel_size.height = ev.GetSize().GetHeight();
 +
        calculate_sizes ();
 -      fetch_current_frame_again ();
 +      get (_position, _last_get_accurate);
  }
  
  void
@@@ -296,24 -254,17 +296,24 @@@ FilmViewer::calculate_sizes (
        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);
  }
  
@@@ -338,7 -289,20 +338,7 @@@ FilmViewer::check_play_state (
  }
  
  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
@@@ -406,27 -412,5 +406,27 @@@ FilmViewer::player_changed (bool freque
        }
  
        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 ();
 +      }
  }
diff --combined src/wx/po/de_DE.po
index 5050abc0bd3cd79d5f7f403e209b5e5335c164d4,c488cab4b12ee2a34d763fb7fe7334fee67b9b98..d7353e9144857dcf7a86933968607ae543bab77c
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
  
@@@ -89,7 -93,7 +89,7 @@@
  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..."
  
@@@ -134,15 -133,15 +134,15 @@@ msgid "
  "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 "
@@@ -166,7 -169,7 +166,7 @@@ msgstr "
  "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"
  
@@@ -183,27 -186,23 +183,27 @@@ msgstr "Unten beschneiden
  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"
  
@@@ -219,7 -218,7 +219,7 @@@ msgstr "CPL ID
  msgid "CPL annotation text"
  msgstr "CPL annotation text"
  
 -#: src/wx/audio_panel.cc:63
 +#: src/wx/audio_panel.cc:66
  msgid "Calculate..."
  msgstr "Berechne..."
  
@@@ -231,19 -230,11 +231,19 @@@ msgstr "Abbrechen
  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"
@@@ -327,26 -318,21 +327,26 @@@ msgstr "
  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..."
  
@@@ -451,7 -437,7 +451,7 @@@ msgstr "Doremi
  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"
  
@@@ -476,8 -462,8 +476,8 @@@ msgstr "Kino bearbeiten...
  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..."
@@@ -490,34 -476,18 +490,34 @@@ msgstr "KDM Empfänger Email Adresse
  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
@@@ -532,15 -502,15 +532,15 @@@ msgstr "Projekt Eigenschaften
  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"
  
@@@ -552,7 -522,7 +552,7 @@@ msgstr "Bilder
  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 (+/-)"
  
@@@ -587,15 -557,15 +587,15 @@@ msgstr "Fader Rechner
  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"
  
@@@ -611,15 -581,19 +611,15 @@@ msgstr "Host
  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"
  
@@@ -631,27 -605,19 +631,27 @@@ msgstr "ISDCF 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"
  
@@@ -663,35 -629,23 +663,35 @@@ msgstr "
  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"
  
@@@ -703,33 -657,27 +703,33 @@@ msgstr "Linearisiere Eingangs Gamma fü
  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"
@@@ -785,45 -724,27 +785,45 @@@ msgstr "Neues Projekt
  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"
@@@ -836,12 -757,12 +836,12 @@@ msgstr "Ziel Gamma
  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"
  
@@@ -853,7 -774,7 +853,7 @@@ msgstr "Pause
  msgid "Peak"
  msgstr "Spitze"
  
 -#: src/wx/film_viewer.cc:64
 +#: src/wx/film_viewer.cc:67
  msgid "Play"
  msgstr "Abspielen"
  
@@@ -873,19 -794,7 +873,19 @@@ msgstr "Startposition
  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"
  
@@@ -897,25 -806,16 +897,25 @@@ msgstr "RMS
  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"
  
@@@ -935,15 -835,15 +935,15 @@@ msgstr "Wiederholen
  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"
  
@@@ -996,20 -888,10 +996,20 @@@ msgstr "Saal
  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"
@@@ -1030,7 -912,7 +1030,7 @@@ msgstr "Server Hersteller
  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"
  
@@@ -1119,11 -992,11 +1119,11 @@@ msgstr "Gebiet (z.B. UK)
  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 "
@@@ -1137,7 -1010,7 +1137,7 @@@ msgstr "
  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."
  
@@@ -1149,23 -1022,19 +1149,23 @@@ msgstr "Dies ist keine gültige CPL Dat
  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"
  
@@@ -1189,8 -1058,7 +1189,8 @@@ msgstr "Schnitt vom Ende
  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"
  
@@@ -1206,7 -1074,7 +1206,7 @@@ msgstr "Unbekannt
  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"
@@@ -1320,62 -1183,43 +1320,62 @@@ msgstr "
  "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)"
  
diff --combined src/wx/po/es_ES.po
index ea0ed5ab428e994ebc6860169c6979e2d7da1fec,88754e0a65e8770e718bebe3eca05aae93885efc..0191fc503fc9a800403257eb0b16c79bfebfe695
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
  
@@@ -90,7 -94,7 +90,7 @@@
  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..."
  
@@@ -135,16 -134,16 +135,16 @@@ msgid "
  "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"
@@@ -183,27 -186,23 +183,27 @@@ msgstr "Recortar abajo
  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"
@@@ -221,7 -220,7 +221,7 @@@ msgstr "
  msgid "CPL annotation text"
  msgstr ""
  
 -#: src/wx/audio_panel.cc:63
 +#: src/wx/audio_panel.cc:66
  msgid "Calculate..."
  msgstr "Calcular..."
  
@@@ -233,19 -232,11 +233,19 @@@ msgstr "Cancelar
  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"
@@@ -330,26 -321,21 +330,26 @@@ msgstr "
  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..."
  
@@@ -456,7 -442,7 +456,7 @@@ msgstr "Doremi
  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"
  
@@@ -481,8 -467,8 +481,8 @@@ msgstr "Editar cine...
  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..."
@@@ -495,34 -481,18 +495,34 @@@ msgstr "Remitente para los emails de KD
  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
@@@ -537,15 -507,15 +537,15 @@@ msgstr "Propiedades de la película
  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"
  
@@@ -557,7 -527,7 +557,7 @@@ msgstr "Fotogramas
  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 ""
  
@@@ -592,15 -562,15 +592,15 @@@ msgstr "Calculadora de ganancia
  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"
  
@@@ -616,15 -586,19 +616,15 @@@ msgstr "Host
  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"
  
@@@ -637,27 -611,19 +637,27 @@@ msgstr "Nombre DCI
  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"
  
@@@ -670,35 -636,23 +670,35 @@@ msgstr "
  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"
  
@@@ -710,33 -664,27 +710,33 @@@ msgstr "Hacer lineal la curva de gamma 
  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"
@@@ -792,46 -731,27 +792,46 @@@ msgstr "Nueva película
  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"
@@@ -845,12 -765,12 +845,12 @@@ msgstr "Gamma de salida
  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"
  
@@@ -862,7 -782,7 +862,7 @@@ msgstr "Pausa
  msgid "Peak"
  msgstr "Pico"
  
 -#: src/wx/film_viewer.cc:64
 +#: src/wx/film_viewer.cc:67
  msgid "Play"
  msgstr "Reproducir"
  
@@@ -882,19 -802,7 +882,19 @@@ msgstr "Posición
  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"
  
@@@ -906,25 -814,16 +906,25 @@@ msgstr "RMS
  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"
  
@@@ -944,15 -843,15 +944,15 @@@ msgstr "Repetir
  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"
  
@@@ -1007,20 -898,10 +1007,20 @@@ msgstr "Añadir pantalla...
  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"
@@@ -1042,7 -923,7 +1042,7 @@@ msgstr "Número de serie del servidor
  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"
  
@@@ -1134,11 -1005,11 +1134,11 @@@ msgstr "Territorio (ej. ES)
  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 "
@@@ -1151,7 -1022,7 +1151,7 @@@ msgstr "
  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."
  
@@@ -1163,23 -1034,19 +1163,23 @@@ msgstr "
  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"
  
@@@ -1204,8 -1071,7 +1204,8 @@@ msgstr "Recortar del final
  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"
  
@@@ -1221,7 -1087,7 +1221,7 @@@ msgstr "Desconocido
  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"
@@@ -1338,62 -1199,43 +1338,62 @@@ msgstr "
  "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"
  
diff --combined src/wx/po/fr_FR.po
index e4c2034ff4eb347bff7593e85945cd11c2298580,75fc5754aea23c16d19b06a2a25a7758de33076a..46c4822d62be04e774b03a59a0e69521685bae8f
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
  
@@@ -89,7 -93,7 +89,7 @@@
  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..."
  
@@@ -134,15 -133,15 +134,15 @@@ msgid "
  "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 "
@@@ -166,7 -169,7 +166,7 @@@ msgstr "
  "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"
@@@ -184,27 -187,23 +184,27 @@@ msgstr "Rogner en bas
  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"
  
@@@ -220,7 -219,7 +220,7 @@@ msgstr "Id du CPL
  msgid "CPL annotation text"
  msgstr "Commentaire CPL"
  
 -#: src/wx/audio_panel.cc:63
 +#: src/wx/audio_panel.cc:66
  msgid "Calculate..."
  msgstr "Calcul..."
  
@@@ -232,19 -231,11 +232,19 @@@ msgstr "Annuler
  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"
@@@ -328,26 -319,21 +328,26 @@@ msgstr "
  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..."
  
@@@ -452,7 -438,7 +452,7 @@@ msgstr "Doremi
  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"
  
@@@ -477,8 -463,8 +477,8 @@@ msgstr "Éditer le cinéma
  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..."
@@@ -491,34 -477,18 +491,34 @@@ msgstr "Adresse email pour l'envoi de K
  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
@@@ -533,15 -503,15 +533,15 @@@ msgstr "Propriétés du film
  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"
  
@@@ -553,7 -523,7 +553,7 @@@ msgstr "Images
  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"
  
@@@ -586,15 -556,15 +586,15 @@@ msgstr "Calculateur de 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"
  
@@@ -610,15 -580,19 +610,15 @@@ msgstr "Hôtes
  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"
  
@@@ -630,27 -604,19 +630,27 @@@ msgstr "Nom ISDCF
  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"
  
@@@ -662,35 -628,23 +662,35 @@@ msgstr "
  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"
  
@@@ -702,33 -656,27 +702,33 @@@ msgstr "Courbe gamma d'entrée linéair
  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"
@@@ -784,46 -723,27 +784,46 @@@ msgstr "Nouveau Film
  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"
@@@ -836,12 -756,12 +836,12 @@@ msgstr "Gamma de 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"
  
@@@ -853,7 -773,7 +853,7 @@@ msgstr "Pause
  msgid "Peak"
  msgstr "Crête"
  
 -#: src/wx/film_viewer.cc:64
 +#: src/wx/film_viewer.cc:67
  msgid "Play"
  msgstr "Lecture"
  
@@@ -873,19 -793,7 +873,19 @@@ msgstr "Position
  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"
  
@@@ -897,25 -805,16 +897,25 @@@ msgstr "RMS
  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"
  
@@@ -935,15 -834,15 +935,15 @@@ msgstr "Répéter
  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"
  
@@@ -996,20 -887,10 +996,20 @@@ msgstr "Ecrans
  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"
@@@ -1030,7 -911,7 +1030,7 @@@ msgstr "Constructeur du serveur
  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"
  
@@@ -1120,11 -991,11 +1120,11 @@@ msgstr "Territoire (ex. FR)
  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 "
@@@ -1138,7 -1009,7 +1138,7 @@@ msgstr "
  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."
  
@@@ -1150,23 -1021,19 +1150,23 @@@ msgstr "Ceci n'est pas un fichier CPL v
  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"
  
@@@ -1190,8 -1057,7 +1190,8 @@@ msgstr "Rogner par la fin
  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"
  
@@@ -1207,7 -1073,7 +1207,7 @@@ msgstr "inconnu.
  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"
@@@ -1321,62 -1182,43 +1321,62 @@@ msgstr "
  "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"
  
diff --combined src/wx/po/it_IT.po
index 35c463d3008e151971557e2626c9ec1818f32ea8,320d15e0ce5bad94a35577accd51635921416509..35cb8db88a54ac8b805f07f29e2e98dfb5783df2
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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 ""
  
@@@ -88,7 -92,7 +88,7 @@@
  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..."
  
@@@ -133,16 -132,16 +133,16 @@@ msgid "
  "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 "
@@@ -166,7 -169,7 +166,7 @@@ msgstr "
  "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"
@@@ -184,27 -187,23 +184,27 @@@ msgstr "Taglio in basso
  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"
@@@ -221,7 -220,7 +221,7 @@@ msgstr "
  msgid "CPL annotation text"
  msgstr ""
  
 -#: src/wx/audio_panel.cc:63
 +#: src/wx/audio_panel.cc:66
  msgid "Calculate..."
  msgstr "Calcola..."
  
@@@ -234,20 -233,12 +234,20 @@@ msgstr "Annulla
  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"
@@@ -333,26 -324,21 +333,26 @@@ msgstr "
  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"
  
@@@ -461,7 -447,7 +461,7 @@@ msgstr "
  msgid "Doremi serial numbers must have 6 digits"
  msgstr ""
  
 -#: src/wx/film_editor.cc:288
 +#: src/wx/content_panel.cc:75
  msgid "Down"
  msgstr ""
  
@@@ -486,8 -472,8 +486,8 @@@ msgstr "Modifica Cinema...
  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..."
@@@ -501,34 -487,18 +501,34 @@@ msgstr "Indirizzo email per consegna KD
  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
@@@ -544,15 -514,15 +544,15 @@@ msgstr "Proprietà del film
  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"
  
@@@ -564,7 -534,7 +564,7 @@@ msgstr "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 ""
  
@@@ -598,15 -568,15 +598,15 @@@ msgstr "Calcolatore del guadagno audio
  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"
  
@@@ -622,15 -592,19 +622,15 @@@ msgstr "
  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"
@@@ -644,27 -618,19 +644,27 @@@ msgstr "Nome DCI
  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 ""
  
@@@ -676,35 -642,23 +676,35 @@@ 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"
  
@@@ -716,34 -670,28 +716,34 @@@ msgstr "Linearizza la curva del gamma i
  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"
@@@ -801,46 -740,27 +801,46 @@@ msgstr "Nuovo Film
  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"
@@@ -854,12 -774,12 +854,12 @@@ msgstr "Gamma in uscita
  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"
@@@ -872,7 -792,7 +872,7 @@@ msgstr "Pausa
  msgid "Peak"
  msgstr "Picco"
  
 -#: src/wx/film_viewer.cc:64
 +#: src/wx/film_viewer.cc:67
  msgid "Play"
  msgstr "Riproduci"
  
@@@ -892,19 -812,7 +892,19 @@@ msgstr "Posizione
  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"
  
@@@ -916,24 -824,16 +916,24 @@@ msgstr "RMS
  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"
  
@@@ -953,15 -853,15 +953,15 @@@ msgstr "
  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"
  
@@@ -1016,20 -908,10 +1016,20 @@@ msgstr "Aggiungi Schermo
  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"
@@@ -1050,7 -932,7 +1050,7 @@@ msgstr "
  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"
@@@ -1144,11 -1016,11 +1144,11 @@@ msgstr "Nazione (es. UK)
  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 "
@@@ -1161,7 -1033,7 +1161,7 @@@ msgstr "
  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 ""
  
@@@ -1173,23 -1045,19 +1173,23 @@@ 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 ""
  
@@@ -1213,8 -1081,7 +1213,8 @@@ msgstr "Taglia dalla fine
  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"
  
@@@ -1232,7 -1099,7 +1232,7 @@@ msgstr "sconosciuto
  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"
@@@ -1347,64 -1209,45 +1347,64 @@@ msgstr "
  "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"
  
diff --combined src/wx/po/nl_NL.po
index aa609f1f08988e331a4521fee1a7995eccd3a272,a59f204afe1f05ee18785d4f6211b2d0c8fa19c3..e792f84be5cc6662db4909f5d11b9415486dafd9
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
  
@@@ -89,7 -93,7 +89,7 @@@
  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.."
  
@@@ -142,15 -141,15 +142,15 @@@ msgstr "
  "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."
@@@ -166,7 -169,7 +166,7 @@@ msgstr "
  "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 "
@@@ -175,7 -178,7 +175,7 @@@ msgstr "
  "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"
  
@@@ -192,27 -195,23 +192,27 @@@ msgstr "Bottom crop
  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"
  
@@@ -228,7 -227,7 +228,7 @@@ msgstr "CPL ID
  msgid "CPL annotation text"
  msgstr "CPL opmerkingen tekst"
  
 -#: src/wx/audio_panel.cc:63
 +#: src/wx/audio_panel.cc:66
  msgid "Calculate..."
  msgstr "Bereken..."
  
@@@ -240,19 -239,11 +240,19 @@@ msgstr "Afbreken
  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"
@@@ -336,26 -327,21 +336,26 @@@ msgstr "Kopieer...
  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..."
  
@@@ -460,7 -446,7 +460,7 @@@ msgstr "Doremi
  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"
  
@@@ -485,8 -471,8 +485,8 @@@ msgstr "Edit Bioscoop
  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..."
@@@ -499,34 -485,18 +499,34 @@@ msgstr "Email adres voor KDM aflevering
  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
@@@ -541,15 -511,15 +541,15 @@@ msgstr "Film Instellingen
  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"
  
@@@ -561,7 -531,7 +561,7 @@@ msgstr "Frame
  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"
  
@@@ -594,15 -564,15 +594,15 @@@ msgstr "Gain Calculator
  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"
  
@@@ -618,15 -588,19 +618,15 @@@ msgstr "Host
  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"
  
@@@ -638,27 -612,19 +638,27 @@@ msgstr "ISDCF 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"
  
@@@ -670,35 -636,23 +670,35 @@@ msgstr "soort KDM
  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"
  
@@@ -710,33 -664,27 +710,33 @@@ msgstr "Linearise input gamma curve fo
  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"
@@@ -792,47 -731,29 +792,47 @@@ msgstr "Nieuwe Film
  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"
@@@ -845,12 -766,12 +845,12 @@@ msgstr "Output gamma
  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"
  
@@@ -862,7 -783,7 +862,7 @@@ msgstr "Pauze
  msgid "Peak"
  msgstr "Piek"
  
 -#: src/wx/film_viewer.cc:64
 +#: src/wx/film_viewer.cc:67
  msgid "Play"
  msgstr "Afspelen"
  
@@@ -882,19 -803,7 +882,19 @@@ msgstr "Positie
  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"
  
@@@ -906,25 -815,16 +906,25 @@@ msgstr "RMS
  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"
  
@@@ -944,15 -844,15 +944,15 @@@ msgstr "Herhaal
  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"
  
@@@ -1005,20 -897,10 +1005,20 @@@ msgstr "Schermen
  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"
@@@ -1039,7 -921,7 +1039,7 @@@ msgstr "Server fabrikant
  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"
  
@@@ -1128,11 -1001,11 +1128,11 @@@ msgstr "Grondgebied (vb NL)
  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 "
@@@ -1146,7 -1019,7 +1146,7 @@@ msgstr "
  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."
  
@@@ -1158,23 -1031,19 +1158,23 @@@ msgstr "Dit is geen geldig CPL bestand
  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"
  
@@@ -1198,8 -1067,7 +1198,8 @@@ msgstr "Trim vanaf einde
  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"
  
@@@ -1215,7 -1083,7 +1215,7 @@@ msgstr "Onbekend
  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"
@@@ -1328,62 -1191,43 +1328,62 @@@ msgstr "
  "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"
  
diff --combined src/wx/po/sv_SE.po
index 497b9a25d03867f04117c2131610bc07a05f9e3a,81fa8c4b330c582efa30447db3fabf346bb19483..441643ccef459df953af7a562da4336cb24e434a
@@@ -7,7 -7,7 +7,7 @@@ msgid "
  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"
  
@@@ -90,7 -94,7 +90,7 @@@
  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..."
  
@@@ -135,16 -134,16 +135,16 @@@ msgid "
  "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."
@@@ -160,7 -163,7 +160,7 @@@ msgstr "
  "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 "
@@@ -169,7 -172,7 +169,7 @@@ msgstr "
  "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"
@@@ -187,27 -190,23 +187,27 @@@ msgstr "Nedre beskärning
  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"
@@@ -225,7 -224,7 +225,7 @@@ msgstr "
  msgid "CPL annotation text"
  msgstr ""
  
 -#: src/wx/audio_panel.cc:63
 +#: src/wx/audio_panel.cc:66
  msgid "Calculate..."
  msgstr "Beräkna..."
  
@@@ -238,20 -237,12 +238,20 @@@ msgstr "Avbryt
  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"
@@@ -339,26 -330,21 +339,26 @@@ msgstr "
  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..."
  
@@@ -467,7 -453,7 +467,7 @@@ msgstr "
  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"
  
@@@ -493,8 -479,8 +493,8 @@@ msgstr "Redigera Cinema...
  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..."
@@@ -507,34 -493,18 +507,34 @@@ msgstr "Mejladress för KDM-leverans
  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
@@@ -550,15 -520,15 +550,15 @@@ msgstr "Film Egenskaper
  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"
  
@@@ -570,7 -540,7 +570,7 @@@ msgstr "Bildrutor
  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 ""
  
@@@ -605,15 -575,15 +605,15 @@@ msgstr "Volym Kalkylator
  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"
  
@@@ -629,15 -599,19 +629,15 @@@ msgstr "Dator
  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"
  
@@@ -650,27 -624,19 +650,27 @@@ msgstr "DCI namn
  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"
@@@ -686,35 -652,23 +686,35 @@@ msgid "KDM|Timing
  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"
  
@@@ -726,33 -680,27 +726,33 @@@ msgstr "Linjärisera indatas gammakurv
  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"
@@@ -810,49 -749,29 +810,49 @@@ msgstr "Ny Film
  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"
@@@ -866,12 -785,12 +866,12 @@@ msgstr "Utdata gamma
  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"
  
@@@ -883,7 -802,7 +883,7 @@@ msgstr "Pausa
  msgid "Peak"
  msgstr "Topp"
  
 -#: src/wx/film_viewer.cc:64
 +#: src/wx/film_viewer.cc:67
  msgid "Play"
  msgstr "Spela"
  
@@@ -903,19 -822,7 +903,19 @@@ msgstr "Position
  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"
  
@@@ -927,24 -834,16 +927,24 @@@ msgstr "RMS
  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"
  
@@@ -965,15 -864,15 +965,15 @@@ msgstr "Upprepa
  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"
  
@@@ -1028,20 -919,10 +1028,20 @@@ msgstr "Lägg till Skärm...
  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"
@@@ -1062,7 -943,7 +1062,7 @@@ msgstr "
  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"
  
@@@ -1088,7 -969,7 +1088,7 @@@ msgid "Smoothing
  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"
  
@@@ -1156,12 -1027,12 +1156,12 @@@ msgstr "OmrÃ¥de (ex. SV)
  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 "
@@@ -1174,7 -1045,7 +1174,7 @@@ msgstr "
  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 ""
  
@@@ -1186,23 -1057,19 +1186,23 @@@ 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"
  
@@@ -1228,8 -1095,7 +1228,8 @@@ msgstr "Trimma frÃ¥n slut
  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"
  
@@@ -1248,7 -1114,7 +1248,7 @@@ msgstr "okänt
  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"
@@@ -1364,63 -1225,44 +1364,63 @@@ msgstr "
  "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"
  
diff --combined src/wx/wscript
index 0f39038a5f4873eccac693933faedee72eaeec3c,07105006904bfaa27cc0474bf5b095355e68ba1c..8801ccc75556c090b05876d91bd94743a1c88c02
@@@ -15,15 -15,13 +15,15 @@@ sources = ""
            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
@@@ -32,7 -30,6 +32,7 @@@
            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
@@@ -41,7 -38,6 +41,7 @@@
            server_dialog.cc
            servers_list_dialog.cc
            subtitle_panel.cc
 +          subtitle_view.cc
            table_dialog.cc
            timecode.cc
            timeline.cc
@@@ -68,7 -64,6 +68,6 @@@ def configure(conf)
                                      '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')
  
@@@ -87,16 -82,16 +86,16 @@@ def build(bld)
      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')
diff --combined test/image_test.cc
index ee4819d6b13998135faf7fd2322874077bd147c6,5662c729b5bd354dad0ec43cd1efc0eca769b642..44d15a8cb2ab18427f79e0d72ab1991548b7e4ca
@@@ -1,5 -1,5 +1,5 @@@
  /*
 -    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);
@@@ -74,9 -67,9 +74,9 @@@
        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;
@@@ -85,7 -78,7 +85,7 @@@
  
  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 */
@@@ -177,20 -170,28 +177,28 @@@ boost::shared_ptr<Image
  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];
        }
@@@ -202,14 -203,20 +210,20 @@@ stati
  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);
 +      }
  }
diff --combined wscript
index fccf5324532a58a945a964e933d9a6d9be407444,62b47d9a4a9427c15f9ae5a1d78633d800a89555..6b55dbdad09f5aabde6ef3dfaf8f23fcf2145175
+++ b/wscript
@@@ -1,9 -1,11 +1,11 @@@
  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')
@@@ -28,8 -30,9 +30,9 @@@ def static_ffmpeg(conf)
      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)
@@@ -57,15 -60,10 +60,15 @@@ def dynamic_openjpeg(conf)
      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
@@@ -232,7 -226,7 +235,7 @@@ def configure(conf)
      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>
@@@ -379,10 -368,10 +388,10 @@@ def build(bld)
          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)
  
@@@ -448,4 -437,4 +457,4 @@@ def pot_merge(bld)
      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')