summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-01-15 16:36:28 +0000
committerCarl Hetherington <cth@carlh.net>2014-01-15 16:36:28 +0000
commit4e5d5c7dcc6470b8dc918d03a00e30c07df60efe (patch)
treec167419e927f260348b468aae5036815a6a640a5
parente8204f55c981493b99814f71a50b3c3d62601032 (diff)
parentf71a23109d774dc65e4262e5dba41360732cf342 (diff)
Merge master.
-rw-r--r--ChangeLog61
-rw-r--r--cscript2
-rw-r--r--debian/changelog12
-rw-r--r--src/lib/encoder.cc3
-rw-r--r--src/lib/ffmpeg_decoder.cc7
-rw-r--r--src/lib/ffmpeg_examiner.cc1
-rw-r--r--src/lib/film.cc8
-rw-r--r--src/lib/player.cc15
-rw-r--r--src/lib/po/de_DE.po4
-rw-r--r--src/lib/ratio.cc6
-rw-r--r--src/lib/transcode_job.cc9
-rw-r--r--src/lib/writer.cc72
-rw-r--r--src/lib/writer.h8
-rw-r--r--src/tools/dcpomatic.cc5
-rw-r--r--src/tools/po/de_DE.po11
-rw-r--r--src/wx/audio_mapping_view.cc4
-rw-r--r--src/wx/new_film_dialog.cc2
-rw-r--r--src/wx/po/de_DE.po42
-rw-r--r--test/ratio_test.cc4
-rw-r--r--wscript2
20 files changed, 201 insertions, 77 deletions
diff --git a/ChangeLog b/ChangeLog
index 7b5a548b8..d2c10fb55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,64 @@
+2014-01-15 Carl Hetherington <cth@carlh.net>
+
+ * Hopefully fix badly-labelled MXFs when in Interop mode.
+
+2014-01-14 Carl Hetherington <cth@carlh.net>
+
+ * Version 1.63.2 released.
+
+2014-01-14 Carl Hetherington <cth@carlh.net>
+
+ * Fix problems with adding new soundtracks to FFmpeg content with
+ no audio track.
+
+ * Updated de_DE translation from Markus Raab.
+
+ * Version 1.63.1 released.
+
+2014-01-14 Carl Hetherington <cth@carlh.net>
+
+ * Try to fix subtitle problems when the video frame rate is being changed
+ from content to DCP.
+
+2014-01-13 Carl Hetherington <cth@carlh.net>
+
+ * Change 4:3 and 5:3 ratios to be precise rather than 1.33:1 and 1.66:1, and
+ also tweak 1.19:1 (#306).
+
+ * Version 1.63.0 released.
+
+2014-01-12 Carl Hetherington <cth@carlh.net>
+
+ * Fix crashes when using -3dB options in locales with a , decimal separator.
+
+ * Version 1.62.3 released.
+
+2014-01-11 Carl Hetherington <cth@carlh.net>
+
+ * Hopefully fix error on restarting a cancelled transcode job
+ on Windows.
+
+2014-01-10 Carl Hetherington <cth@carlh.net>
+
+ * Version 1.62.2 released.
+
+2014-01-10 Carl Hetherington <cth@carlh.net>
+
+ * Version 1.62.1 released.
+
+2014-01-10 Carl Hetherington <cth@carlh.net>
+
+ * Version 1.62.0 released.
+
+2014-01-10 Carl Hetherington <cth@carlh.net>
+
+ * Try to stop the queue of things to write filling up excessively
+ on fast CPUs.
+
+ * Try to fix double "are you sure" prompt on quitting with active jobs.
+
+ * Version 1.61.2 released.
+
2014-01-09 Carl Hetherington <cth@carlh.net>
* Version 1.61.1 released.
diff --git a/cscript b/cscript
index 5f36d9622..e2a55fd56 100644
--- a/cscript
+++ b/cscript
@@ -115,7 +115,7 @@ def make_control(version, bits, filename):
def dependencies(target):
return (('ffmpeg-cdist', '5ac3a6af077c10f07c31954c372a8f29e4e18e2a'),
- ('libdcp', '8803a19c6901ab3c3ff85c964343f08458e0824e'))
+ ('libdcp', '120bc84676be775e49a2ac94689ff33dce814f53'))
def build(target, options):
cmd = './waf configure --prefix=%s' % target.work_dir_cscript()
diff --git a/debian/changelog b/debian/changelog
index 1dd6076b7..1aec0f649 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-dcpomatic (1.61.1-1) UNRELEASED; urgency=low
+dcpomatic (1.63.2-1) UNRELEASED; urgency=low
* New upstream release.
* New upstream release.
@@ -66,8 +66,16 @@ dcpomatic (1.61.1-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.
+ * New upstream release.
+ * New upstream release.
- -- Carl Hetherington <carl@d1stkfactory> Thu, 09 Jan 2014 21:22:14 +0000
+ -- Carl Hetherington <carl@d1stkfactory> Tue, 14 Jan 2014 22:41:33 +0000
dcpomatic (0.87-1) UNRELEASED; urgency=low
diff --git a/src/lib/encoder.cc b/src/lib/encoder.cc
index ca9134c04..d26f77614 100644
--- a/src/lib/encoder.cc
+++ b/src/lib/encoder.cc
@@ -68,9 +68,6 @@ Encoder::Encoder (shared_ptr<const Film> f, weak_ptr<Job> j)
Encoder::~Encoder ()
{
terminate_threads ();
- if (_writer) {
- _writer->finish ();
- }
}
/** Add a worker thread for a each thread on a remote server. Caller must hold
diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc
index 8742c48ec..52afe2a27 100644
--- a/src/lib/ffmpeg_decoder.cc
+++ b/src/lib/ffmpeg_decoder.cc
@@ -160,8 +160,6 @@ FFmpegDecoder::pass ()
return true;
}
- avcodec_get_frame_defaults (_frame);
-
shared_ptr<const Film> film = _film.lock ();
assert (film);
@@ -561,8 +559,13 @@ FFmpegDecoder::decode_subtitle_packet ()
/* Subtitle PTS in seconds (within the source, not taking into account any of the
source that we may have chopped off for the DCP)
*/
+<<<<<<< HEAD
double const packet_time = (static_cast<double> (sub.pts ) / AV_TIME_BASE) + _pts_offset;
+=======
+ double const packet_time = (static_cast<double> (sub.pts ) / AV_TIME_BASE) + _video_pts_offset;
+
+>>>>>>> master
/* hence start time for this sub */
ContentTime const from = (packet_time + (double (sub.start_display_time) / 1e3)) * TIME_HZ;
ContentTime const to = (packet_time + (double (sub.end_display_time) / 1e3)) * TIME_HZ;
diff --git a/src/lib/ffmpeg_examiner.cc b/src/lib/ffmpeg_examiner.cc
index e86a82fad..38dd678bb 100644
--- a/src/lib/ffmpeg_examiner.cc
+++ b/src/lib/ffmpeg_examiner.cc
@@ -70,7 +70,6 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr<const FFmpegContent> c)
}
int frame_finished;
- avcodec_get_frame_defaults (_frame);
AVCodecContext* context = _format_context->streams[_packet.stream_index]->codec;
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 57d23ec4e..099bacfdc 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -265,6 +265,14 @@ Film::make_dcp ()
#else
log()->log ("libdcp built in optimised mode.");
#endif
+
+#ifdef DCPOMATIC_WINDOWS
+ OSVERSIONINFO info;
+ info.dwOSVersionInfoSize = sizeof (info);
+ GetVersionEx (&info);
+ log()->log (String::compose ("Windows version %1.%2.%3 SP %4", info.dwMajorVersion, info.dwMinorVersion, info.dwBuildNumber, info.szCSDVersion));
+#endif
+
log()->log (String::compose ("CPU: %1, %2 processors", cpu_info(), boost::thread::hardware_concurrency ()));
list<pair<string, string> > const m = mount_info ();
for (list<pair<string, string> >::const_iterator i = m.begin(); i != m.end(); ++i) {
diff --git a/src/lib/player.cc b/src/lib/player.cc
index 260476242..77630f0e3 100644
--- a/src/lib/player.cc
+++ b/src/lib/player.cc
@@ -291,6 +291,7 @@ Player::emit_video (weak_ptr<Piece> weak_piece, shared_ptr<DecodedVideo> video)
pi->set_subtitle (_out_subtitle.image, _out_subtitle.position + container_offset);
}
+
#ifdef DCPOMATIC_DEBUG
_last_video = piece->content;
@@ -661,8 +662,22 @@ Player::update_subtitle ()
true
);
+<<<<<<< HEAD
_out_subtitle.from = _in_subtitle.subtitle->dcp_time;
_out_subtitle.to = _in_subtitle.subtitle->dcp_time_to;
+=======
+ /* XXX: hack */
+ Time from = _in_subtitle.from;
+ Time to = _in_subtitle.to;
+ shared_ptr<VideoContent> vc = dynamic_pointer_cast<VideoContent> (piece->content);
+ if (vc) {
+ from = rint (from * vc->video_frame_rate() / _film->video_frame_rate());
+ to = rint (to * vc->video_frame_rate() / _film->video_frame_rate());
+ }
+
+ _out_subtitle.from = from * piece->content->position ();
+ _out_subtitle.to = to + piece->content->position ();
+>>>>>>> master
}
/** Re-emit the last frame that was emitted, using current settings for crop, ratio, scaler and subtitles.
diff --git a/src/lib/po/de_DE.po b/src/lib/po/de_DE.po
index 3d8a26f66..acb666099 100644
--- a/src/lib/po/de_DE.po
+++ b/src/lib/po/de_DE.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-07 20:01+0000\n"
-"PO-Revision-Date: 2014-01-05 23:06+0100\n"
+"PO-Revision-Date: 2014-01-14 19:45+0100\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de\n"
@@ -603,7 +603,7 @@ msgstr "Bild-Decoder nicht gefunden"
#: src/lib/writer.cc:387
msgid "could not move audio MXF into the DCP (%1)"
-msgstr ""
+msgstr "Ton MXF kann nicht in das DCP verschoben werden (%1)"
#: src/lib/sndfile_decoder.cc:45
msgid "could not open audio file for reading"
diff --git a/src/lib/ratio.cc b/src/lib/ratio.cc
index 41abbb760..a47b2101e 100644
--- a/src/lib/ratio.cc
+++ b/src/lib/ratio.cc
@@ -32,11 +32,11 @@ vector<Ratio const *> Ratio::_ratios;
void
Ratio::setup_ratios ()
{
- _ratios.push_back (new Ratio (float(1285) / 1080, "119", _("1.19"), "F"));
- _ratios.push_back (new Ratio (float(1436) / 1080, "133", _("4:3"), "F"));
+ _ratios.push_back (new Ratio (float(1290) / 1080, "119", _("1.19"), "F"));
+ _ratios.push_back (new Ratio (float(1440) / 1080, "133", _("4:3"), "F"));
_ratios.push_back (new Ratio (float(1480) / 1080, "137", _("Academy"), "F"));
_ratios.push_back (new Ratio (float(1485) / 1080, "138", _("1.375"), "F"));
- _ratios.push_back (new Ratio (float(1793) / 1080, "166", _("1.66"), "F"));
+ _ratios.push_back (new Ratio (float(1800) / 1080, "166", _("1.66"), "F"));
_ratios.push_back (new Ratio (float(1920) / 1080, "178", _("16:9"), "F"));
_ratios.push_back (new Ratio (float(1998) / 1080, "185", _("Flat"), "F"));
_ratios.push_back (new Ratio (float(2048) / 858, "239", _("Scope"), "S"));
diff --git a/src/lib/transcode_job.cc b/src/lib/transcode_job.cc
index fe07ba2f6..882072689 100644
--- a/src/lib/transcode_job.cc
+++ b/src/lib/transcode_job.cc
@@ -64,12 +64,11 @@ TranscodeJob::run ()
_film->log()->log (N_("Transcode job completed successfully"));
- } catch (std::exception& e) {
-
+ } catch (...) {
set_progress (1);
set_state (FINISHED_ERROR);
- _film->log()->log (String::compose (N_("Transcode job failed (%1)"), e.what()));
-
+ _film->log()->log (N_("Transcode job failed or cancelled"));
+ _transcoder.reset ();
throw;
}
}
@@ -78,7 +77,7 @@ string
TranscodeJob::status () const
{
if (!_transcoder) {
- return _("0%");
+ return Job::status ();
}
float const fps = _transcoder->current_encoding_rate ();
diff --git a/src/lib/writer.cc b/src/lib/writer.cc
index 320528682..c2a6c981b 100644
--- a/src/lib/writer.cc
+++ b/src/lib/writer.cc
@@ -45,6 +45,7 @@ using std::pair;
using std::string;
using std::list;
using std::cout;
+using std::stringstream;
using boost::shared_ptr;
using boost::weak_ptr;
@@ -86,6 +87,7 @@ Writer::Writer (shared_ptr<const Film> f, weak_ptr<Job> j)
_picture_asset->set_edit_rate (_film->video_frame_rate ());
_picture_asset->set_size (fit_ratio_within (_film->container()->ratio(), _film->full_frame ()));
+ _picture_asset->set_interop (_film->interop ());
if (_film->encrypted ()) {
_picture_asset->set_key (_film->key ());
@@ -93,25 +95,19 @@ Writer::Writer (shared_ptr<const Film> f, weak_ptr<Job> j)
_picture_asset_writer = _picture_asset->start_write (_first_nonexistant_frame > 0);
- /* Write the sound asset into the film directory so that we leave the creation
- of the DCP directory until the last minute. Some versions of windows inexplicably
- don't like overwriting existing files here, so try to remove it using boost.
- */
- boost::system::error_code ec;
- boost::filesystem::remove (_film->file (_film->audio_mxf_filename ()), ec);
- if (ec) {
- _film->log()->log (String::compose ("Could not remove existing audio MXF file (%1)", ec.value ()));
- }
-
_sound_asset.reset (new libdcp::SoundAsset (_film->directory (), _film->audio_mxf_filename ()));
_sound_asset->set_edit_rate (_film->video_frame_rate ());
_sound_asset->set_channels (_film->audio_channels ());
_sound_asset->set_sampling_rate (_film->audio_frame_rate ());
+ _sound_asset->set_interop (_film->interop ());
if (_film->encrypted ()) {
_sound_asset->set_key (_film->key ());
}
+ /* Write the sound asset into the film directory so that we leave the creation
+ of the DCP directory until the last minute.
+ */
_sound_asset_writer = _sound_asset->start_write ();
_thread = new boost::thread (boost::bind (&Writer::thread, this));
@@ -119,11 +115,20 @@ Writer::Writer (shared_ptr<const Film> f, weak_ptr<Job> j)
job->sub (_("Encoding image data"));
}
+Writer::~Writer ()
+{
+ terminate_thread (false);
+}
+
void
Writer::write (shared_ptr<const EncodedData> encoded, int frame, Eyes eyes)
{
boost::mutex::scoped_lock lock (_mutex);
+ while (_queued_full_in_memory > _maximum_frames_in_memory) {
+ _full_condition.wait (lock);
+ }
+
QueueItem qi;
qi.type = QueueItem::FULL;
qi.encoded = encoded;
@@ -143,7 +148,7 @@ Writer::write (shared_ptr<const EncodedData> encoded, int frame, Eyes eyes)
++_queued_full_in_memory;
}
- _condition.notify_all ();
+ _empty_condition.notify_all ();
}
void
@@ -151,6 +156,10 @@ Writer::fake_write (int frame, Eyes eyes)
{
boost::mutex::scoped_lock lock (_mutex);
+ while (_queued_full_in_memory > _maximum_frames_in_memory) {
+ _full_condition.wait (lock);
+ }
+
FILE* ifi = fopen_boost (_film->info_path (frame, eyes), "r");
libdcp::FrameInfo info (ifi);
fclose (ifi);
@@ -169,7 +178,7 @@ Writer::fake_write (int frame, Eyes eyes)
_queue.push_back (qi);
}
- _condition.notify_all ();
+ _empty_condition.notify_all ();
}
/** This method is not thread safe */
@@ -224,7 +233,7 @@ try
}
TIMING (N_("writer sleeps with a queue of %1"), _queue.size());
- _condition.wait (lock);
+ _empty_condition.wait (lock);
TIMING (N_("writer wakes with a queue of %1"), _queue.size());
}
@@ -324,6 +333,8 @@ try
qi.encoded.reset ();
--_queued_full_in_memory;
}
+
+ _full_condition.notify_all ();
}
}
catch (...)
@@ -332,22 +343,35 @@ catch (...)
}
void
-Writer::finish ()
+Writer::terminate_thread (bool can_throw)
{
- if (!_thread) {
+ boost::mutex::scoped_lock lock (_mutex);
+ if (_thread == 0) {
return;
}
- boost::mutex::scoped_lock lock (_mutex);
_finish = true;
- _condition.notify_all ();
+ _empty_condition.notify_all ();
+ _full_condition.notify_all ();
lock.unlock ();
- _thread->join ();
- rethrow ();
+ _thread->join ();
+ if (can_throw) {
+ rethrow ();
+ }
delete _thread;
_thread = 0;
+}
+
+void
+Writer::finish ()
+{
+ if (!_thread) {
+ return;
+ }
+
+ terminate_thread (true);
_picture_asset_writer->finalize ();
_sound_asset_writer->finalize ();
@@ -428,7 +452,9 @@ Writer::finish ()
meta.set_issue_date_now ();
dcp.write_xml (_film->interop (), meta, _film->is_signed() ? make_signer () : shared_ptr<const libdcp::Signer> ());
- _film->log()->log (String::compose (N_("Wrote %1 FULL, %2 FAKE, %3 REPEAT; %4 pushed to disk"), _full_written, _fake_written, _repeat_written, _pushed_to_disk));
+ _film->log()->log (
+ String::compose (N_("Wrote %1 FULL, %2 FAKE, %3 REPEAT; %4 pushed to disk"), _full_written, _fake_written, _repeat_written, _pushed_to_disk)
+ );
}
/** Tell the writer that frame `f' should be a repeat of the frame before it */
@@ -437,6 +463,10 @@ Writer::repeat (int f, Eyes e)
{
boost::mutex::scoped_lock lock (_mutex);
+ while (_queued_full_in_memory > _maximum_frames_in_memory) {
+ _full_condition.wait (lock);
+ }
+
QueueItem qi;
qi.type = QueueItem::REPEAT;
qi.frame = f;
@@ -450,7 +480,7 @@ Writer::repeat (int f, Eyes e)
_queue.push_back (qi);
}
- _condition.notify_all ();
+ _empty_condition.notify_all ();
}
bool
diff --git a/src/lib/writer.h b/src/lib/writer.h
index 842d6a55d..7af79a417 100644
--- a/src/lib/writer.h
+++ b/src/lib/writer.h
@@ -71,6 +71,7 @@ class Writer : public ExceptionStore, public boost::noncopyable
{
public:
Writer (boost::shared_ptr<const Film>, boost::weak_ptr<Job>);
+ ~Writer ();
bool can_fake_write (int) const;
@@ -83,6 +84,7 @@ public:
private:
void thread ();
+ void terminate_thread (bool);
void check_existing_picture_mxf ();
bool check_existing_picture_mxf_frame (FILE *, int, Eyes);
bool have_sequenced_image_at_queue_head ();
@@ -103,8 +105,10 @@ private:
int _queued_full_in_memory;
/** mutex for thread state */
mutable boost::mutex _mutex;
- /** condition to manage thread wakeups */
- boost::condition _condition;
+ /** condition to manage thread wakeups when we have nothing to do */
+ boost::condition _empty_condition;
+ /** condition to manage thread wakeups when we have too much to do */
+ boost::condition _full_condition;
/** the data of the last written frame, or 0 if there isn't one */
boost::shared_ptr<const EncodedData> _last_written[EYES_COUNT];
/** the index of the last written frame */
diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc
index 111b5769d..1e60d9690 100644
--- a/src/tools/dcpomatic.cc
+++ b/src/tools/dcpomatic.cc
@@ -429,11 +429,6 @@ private:
void file_exit ()
{
- if (!should_close ()) {
- return;
- }
-
- maybe_save_then_delete_film ();
Close (true);
}
diff --git a/src/tools/po/de_DE.po b/src/tools/po/de_DE.po
index 8604e2a4c..2de6cb871 100644
--- a/src/tools/po/de_DE.po
+++ b/src/tools/po/de_DE.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-07 20:01+0000\n"
-"PO-Revision-Date: 2014-01-02 13:17+0100\n"
+"PO-Revision-Date: 2014-01-14 19:49+0100\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de\n"
@@ -86,7 +86,7 @@ msgstr "Über DCP-o-matic"
#: src/tools/dcpomatic.cc:230
msgid "Check for updates"
-msgstr ""
+msgstr "Auf Updates überprüfen"
#: src/tools/dcpomatic.cc:638
msgid "Could not load film %1 (%2)"
@@ -111,7 +111,6 @@ msgid "DCP-o-matic"
msgstr "DCP-o-matic"
#: src/tools/dcpomatic.cc:229
-#, fuzzy
msgid "Encoding servers..."
msgstr "Encoding Server..."
@@ -150,10 +149,12 @@ msgid ""
"The DCP for this film will take up about %.1f Gb, and the disk that you are "
"using only has %.1f Gb available. Do you want to continue anyway?"
msgstr ""
+"Das DCP für diesen Film wird etwa %.1f GB groß. Auf dem ausgewählten "
+"Laufwerk sind aber nur %.1f GB frei. Möchten Sie trotzdem weitermachen ?"
#: src/tools/dcpomatic.cc:729
msgid "The DCP-o-matic download server could not be contacted."
-msgstr ""
+msgstr "Der DCP-o-matic Download Server ist nicht erreichbar."
#: src/tools/dcpomatic.cc:356
msgid ""
@@ -165,7 +166,7 @@ msgstr ""
#: src/tools/dcpomatic.cc:724
msgid "There are no new versions of DCP-o-matic available."
-msgstr ""
+msgstr "Es ist keine neue Version des DCP-o-matic verfügbar."
#: src/tools/dcpomatic.cc:558
msgid "There are unfinished jobs; are you sure you want to quit?"
diff --git a/src/wx/audio_mapping_view.cc b/src/wx/audio_mapping_view.cc
index 9fa57a1b1..c08da0912 100644
--- a/src/wx/audio_mapping_view.cc
+++ b/src/wx/audio_mapping_view.cc
@@ -58,6 +58,8 @@ public:
void Draw (wxGrid& grid, wxGridCellAttr &, wxDC& dc, const wxRect& rect, int row, int col, bool)
{
+ LocaleGuard lg;
+
dc.SetPen (*wxThePenList->FindOrCreatePen (wxColour (255, 255, 255), 1, wxPENSTYLE_SOLID));
dc.SetBrush (*wxTheBrushList->FindOrCreateBrush (wxColour (255, 255, 255), wxBRUSHSTYLE_SOLID));
dc.DrawRectangle (rect);
@@ -222,6 +224,8 @@ AudioMappingView::set (AudioMapping map)
void
AudioMappingView::update_cells ()
{
+ LocaleGuard lg;
+
if (_grid->GetNumberRows ()) {
_grid->DeleteRows (0, _grid->GetNumberRows ());
}
diff --git a/src/wx/new_film_dialog.cc b/src/wx/new_film_dialog.cc
index be5af999e..e0ad2c457 100644
--- a/src/wx/new_film_dialog.cc
+++ b/src/wx/new_film_dialog.cc
@@ -67,6 +67,8 @@ NewFilmDialog::NewFilmDialog (wxWindow* parent)
overall_sizer->Layout ();
overall_sizer->SetSizeHints (this);
+
+ _name->SetFocus ();
}
NewFilmDialog::~NewFilmDialog ()
diff --git a/src/wx/po/de_DE.po b/src/wx/po/de_DE.po
index 5a1046524..58923196d 100644
--- a/src/wx/po/de_DE.po
+++ b/src/wx/po/de_DE.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-07 20:01+0000\n"
-"PO-Revision-Date: 2014-01-05 23:08+0100\n"
+"PO-Revision-Date: 2014-01-14 20:00+0100\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de\n"
@@ -38,7 +38,7 @@ msgstr "(DCP-o-matic zum ändern der Sprache neu starten)"
#: src/wx/audio_mapping_view.cc:133
msgid "-3dB"
-msgstr ""
+msgstr "-3dB"
#: src/wx/colour_conversion_editor.cc:83
msgid "1 / "
@@ -74,7 +74,7 @@ msgstr "4K"
#: src/wx/update_dialog.cc:34
msgid "A new version of DCP-o-matic is available."
-msgstr ""
+msgstr "Es ist eine neue Version von DCP-o-matic verfügbar."
#: src/wx/about_dialog.cc:30
msgid "About DCP-o-matic"
@@ -129,6 +129,7 @@ msgstr "Ton Kanäle"
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 das DCP Kanal %d weitergegeben."
#: src/wx/audio_mapping_view.cc:324
#, c-format
@@ -136,6 +137,8 @@ msgid ""
"Audio will be passed from content channel %d to DCP channel %d with gain "
"%.1fdB."
msgstr ""
+"Der Ton von Kanal %d wird wird an das DCP Kanal %d mit %.1fdB Pegel "
+"weitergegeben."
#: src/wx/job_wrapper.cc:38
#, c-format
@@ -167,9 +170,8 @@ msgid "Cancel"
msgstr "Abbrechen"
#: src/wx/audio_gain_dialog.cc:26
-#, fuzzy
msgid "Channel gain"
-msgstr "Kanäle"
+msgstr "Kanal Pegel"
#: src/wx/audio_dialog.cc:44
msgid "Channels"
@@ -177,11 +179,11 @@ msgstr "Kanäle"
#: src/wx/config_dialog.cc:143
msgid "Check for testing updates as well as stable ones"
-msgstr ""
+msgstr "Überprüfung auf Updates auch für Test-Versionen."
#: src/wx/config_dialog.cc:139
msgid "Check for updates on startup"
-msgstr ""
+msgstr "Beim Starten auf Updates überprüfen."
#: src/wx/content_menu.cc:182
msgid "Choose a file"
@@ -349,9 +351,8 @@ msgid "Edit..."
msgstr "Bearbeiten..."
#: src/wx/cinema_dialog.cc:35
-#, fuzzy
msgid "Email address for KDM delivery"
-msgstr "Von Adresse für KDM Emails"
+msgstr "Email Adresse für KDM Zustellung"
#: src/wx/servers_list_dialog.cc:30
msgid "Encoding Servers"
@@ -411,7 +412,7 @@ msgstr "Von Adresse für KDM Emails"
#: src/wx/audio_mapping_view.cc:132
msgid "Full"
-msgstr ""
+msgstr "Ein"
#: src/wx/timing_panel.cc:42
msgid "Full length"
@@ -424,7 +425,7 @@ msgstr "Lautstärken Rechner"
#: src/wx/audio_gain_dialog.cc:31
#, c-format
msgid "Gain for content channel %d in DCP channel %d"
-msgstr ""
+msgstr "Pegel des Kanals %d im DCP Kanal %d"
#: src/wx/properties_dialog.cc:57
msgid "Gb"
@@ -557,12 +558,12 @@ msgstr "Neuer Film"
#: src/wx/update_dialog.cc:36
msgid "New versions of DCP-o-matic are available."
-msgstr ""
+msgstr "Eine neue Version von DCP-o-matic ist verfügbar."
#: src/wx/audio_mapping_view.cc:319
#, c-format
msgid "No audio will be passed from content channel %d to DCP channel %d."
-msgstr ""
+msgstr "Der Ton von Kanal %d wird nicht an das DCP Kanal %d weitergegeben."
#: src/wx/video_panel.cc:198
msgid "No stretch"
@@ -574,7 +575,7 @@ msgstr "Kein"
#: src/wx/audio_mapping_view.cc:131
msgid "Off"
-msgstr ""
+msgstr "Aus"
#: src/wx/config_dialog.cc:119
msgid "Outgoing mail server"
@@ -668,7 +669,7 @@ msgstr "Neustart"
#: src/wx/audio_mapping_view.cc:327
msgid "Right click to change gain."
-msgstr ""
+msgstr "Rechtsklick für Pegeländerung"
#: src/wx/video_panel.cc:101
msgid "Right crop"
@@ -732,9 +733,8 @@ msgid "Snap"
msgstr "Einschnappen"
#: src/wx/update_dialog.cc:43
-#, fuzzy
msgid "Stable version "
-msgstr "Inhalt Version"
+msgstr "Stabile Version"
#: src/wx/film_editor.cc:185
msgid "Standard"
@@ -781,9 +781,8 @@ msgid "Territory (e.g. UK)"
msgstr "Gebiet (z.B. UK)"
#: src/wx/update_dialog.cc:48
-#, fuzzy
msgid "Test version "
-msgstr "Inhalt Version"
+msgstr "Test Version"
#: src/wx/content_menu.cc:223
msgid ""
@@ -853,7 +852,7 @@ msgstr "Nach oben"
#: src/wx/update_dialog.cc:27
msgid "Update"
-msgstr ""
+msgstr "Update"
#: src/wx/film_editor.cc:126
msgid "Use DCI name"
@@ -880,9 +879,8 @@ msgid "Video"
msgstr "Bild"
#: src/wx/timing_panel.cc:56
-#, fuzzy
msgid "Video frame rate"
-msgstr "Bild Rate"
+msgstr "Bildwiederholrate"
#: src/wx/subtitle_panel.cc:39
msgid "With Subtitles"
diff --git a/test/ratio_test.cc b/test/ratio_test.cc
index 1a39040fb..082a6ff11 100644
--- a/test/ratio_test.cc
+++ b/test/ratio_test.cc
@@ -46,7 +46,7 @@ BOOST_AUTO_TEST_CASE (ratio_test)
r = Ratio::from_id ("133");
BOOST_CHECK (r);
- BOOST_CHECK_EQUAL (fit_ratio_within (r->ratio(), libdcp::Size (2048, 1080)), libdcp::Size (1436, 1080));
+ BOOST_CHECK_EQUAL (fit_ratio_within (r->ratio(), libdcp::Size (2048, 1080)), libdcp::Size (1440, 1080));
r = Ratio::from_id ("137");
BOOST_CHECK (r);
@@ -58,7 +58,7 @@ BOOST_AUTO_TEST_CASE (ratio_test)
r = Ratio::from_id ("166");
BOOST_CHECK (r);
- BOOST_CHECK_EQUAL (fit_ratio_within (r->ratio(), libdcp::Size (2048, 1080)), libdcp::Size (1793, 1080));
+ BOOST_CHECK_EQUAL (fit_ratio_within (r->ratio(), libdcp::Size (2048, 1080)), libdcp::Size (1800, 1080));
r = Ratio::from_id ("178");
BOOST_CHECK (r);
diff --git a/wscript b/wscript
index 3f7427cd2..d72252459 100644
--- a/wscript
+++ b/wscript
@@ -3,7 +3,7 @@ import os
import sys
APPNAME = 'dcpomatic'
-VERSION = '1.61.2pre'
+VERSION = '1.63.2devel'
def options(opt):
opt.load('compiler_cxx')