Merge branch '1.0' into 1.0-seek
authorCarl Hetherington <cth@carlh.net>
Sun, 29 Dec 2013 19:30:59 +0000 (19:30 +0000)
committerCarl Hetherington <cth@carlh.net>
Sun, 29 Dec 2013 19:30:59 +0000 (19:30 +0000)
12 files changed:
ChangeLog
debian/changelog
src/lib/cross.cc
src/lib/dcp_video_frame.cc
src/lib/file_group.cc
src/lib/scp_dcp_job.cc
src/lib/writer.cc
src/wx/content_menu.cc
src/wx/content_menu.h
src/wx/film_editor.cc
src/wx/timeline.cc
wscript

index c80ad2e6342806b13609daee421b9b6153f7667c..a8b8630b7c17a505dc78a3316963c7fc7b63dbf2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
+2013-12-29  Carl Hetherington  <cth@carlh.net>
+
+       * Version 1.53 released.
+
+2013-12-29  Carl Hetherington  <cth@carlh.net>
+
+       * Fix failure to load content from directories with non-Latin names.
+
 2013-12-28  Carl Hetherington  <cth@carlh.net>
 
+       * Speculative fix for "find missing" not working on OS X (#255).
+
        * Fix failure to load films with missing still image content (#300).
 
 2013-12-27  Carl Hetherington  <cth@carlh.net>
index adb947cb6e07b1b06ef1e2eb884c730370618443..0407aa62460898debd3a59ffe06833527f045921 100644 (file)
@@ -1,4 +1,4 @@
-dcpomatic (1.52-1) UNRELEASED; urgency=low
+dcpomatic (1.53-1) UNRELEASED; urgency=low
 
   * New upstream release.
   * New upstream release.
@@ -56,8 +56,9 @@ dcpomatic (1.52-1) UNRELEASED; urgency=low
   * New upstream release.
   * New upstream release.
   * New upstream release.
+  * New upstream release.
 
- -- Carl Hetherington <carl@d1stkfactory>  Fri, 27 Dec 2013 12:17:11 +0000
+ -- Carl Hetherington <carl@d1stkfactory>  Sun, 29 Dec 2013 01:13:24 +0000
 
 dcpomatic (0.87-1) UNRELEASED; urgency=low
 
index 7436dbf26a9b4582edcfb8e1702638b2e91d3416..746b4f509c7e010a7c0203eda85bc155239af779 100644 (file)
@@ -187,7 +187,7 @@ run_ffprobe (boost::filesystem::path content, boost::filesystem::path out, share
                return;
        }
 
-       FILE* o = fopen (out.string().c_str(), "w");
+       FILE* o = fopen_boost (out, "w");
        if (!o) {
                log->log ("ffprobe call failed (could not create output file)");
                return;
index 00dc1ac74e32456b24ee86840b5a67a797c701a9..78d73ad00c0a035d9156059e29de9e5c8ab4b093 100644 (file)
@@ -111,7 +111,7 @@ DCPVideoFrame::DCPVideoFrame (shared_ptr<const Image> image, shared_ptr<const cx
        _conversion = ColourConversion (node->node_child ("ColourConversion"));
        _frames_per_second = node->number_child<int> ("FramesPerSecond");
        _j2k_bandwidth = node->number_child<int> ("J2KBandwidth");
-       _resolution = Resolution (node->optional_number_child<int>("J2KBandwidth").get_value_or (RESOLUTION_2K));
+       _resolution = Resolution (node->optional_number_child<int>("Resolution").get_value_or (RESOLUTION_2K));
 }
 
 /** J2K-encode this frame on the local host.
@@ -352,7 +352,7 @@ EncodedData::EncodedData (boost::filesystem::path file)
        _size = boost::filesystem::file_size (file);
        _data = new uint8_t[_size];
 
-       FILE* f = fopen (file.string().c_str(), N_("rb"));
+       FILE* f = fopen_boost (file, "rb");
        if (!f) {
                throw FileError (_("could not open file for reading"), file);
        }
@@ -381,7 +381,7 @@ EncodedData::write (shared_ptr<const Film> film, int frame, Eyes eyes) const
 {
        boost::filesystem::path const tmp_j2c = film->j2c_path (frame, eyes, true);
 
-       FILE* f = fopen (tmp_j2c.string().c_str (), N_("wb"));
+       FILE* f = fopen_boost (tmp_j2c, "wb");
        
        if (!f) {
                throw WriteFileError (tmp_j2c, errno);
index 9c206514152acc077d84419a4afafe846283c4e3..dfe336b8f87eae4a9a568251aa8c735316acb61f 100644 (file)
@@ -21,6 +21,7 @@
 #include <sndfile.h>
 #include "file_group.h"
 #include "exceptions.h"
+#include "cross.h"
 
 using std::vector;
 using std::cout;
@@ -78,7 +79,7 @@ FileGroup::ensure_open_path (size_t p) const
        }
 
        _current_path = p;
-       _current_file = fopen (_paths[_current_path].string().c_str(), "rb");
+       _current_file = fopen_boost (_paths[_current_path], "rb");
        if (_current_file == 0) {
                throw OpenFileError (_paths[_current_path]);
        }
index 779c8dd44b2abf131ea8490c73c4f17f8b155ef1..310303c09c54d371dc5c6589c9eb85e755f5c89a 100644 (file)
@@ -33,6 +33,7 @@
 #include "config.h"
 #include "log.h"
 #include "film.h"
+#include "cross.h"
 
 #include "i18n.h"
 
@@ -170,7 +171,7 @@ SCPDCPJob::run ()
                boost::uintmax_t to_do = boost::filesystem::file_size (*i);
                ssh_scp_push_file (sc.scp, leaf.c_str(), to_do, S_IRUSR | S_IWUSR);
 
-               FILE* f = fopen (boost::filesystem::path (*i).string().c_str(), N_("rb"));
+               FILE* f = fopen_boost (boost::filesystem::path (*i), "rb");
                if (f == 0) {
                        throw NetworkError (String::compose (_("Could not open %1 to send"), *i));
                }
index 109447f73de527a7e57a95cef905893bb6e58ceb..4129b7a824455ffc8138cf0a8a6e0ccc638920b9 100644 (file)
@@ -478,7 +478,7 @@ Writer::check_existing_picture_mxf ()
        boost::filesystem::path p;
        p /= _film->internal_video_mxf_dir ();
        p /= _film->internal_video_mxf_filename ();
-       FILE* mxf = fopen (p.string().c_str(), "rb");
+       FILE* mxf = fopen_boost (p, "rb");
        if (!mxf) {
                _film->log()->log (String::compose ("Could not open existing MXF at %1 (errno=%2)", p.string(), errno));
                return;
index 6372503d14db465069eb62b16ff010ad49dac0b8..b91c82ab154c99e4bb2860bb16e7272888c50992 100644 (file)
@@ -43,9 +43,8 @@ enum {
        ID_remove
 };
 
-ContentMenu::ContentMenu (shared_ptr<Film> f, wxWindow* p)
+ContentMenu::ContentMenu (wxWindow* p)
        : _menu (new wxMenu)
-       , _film (f)
        , _parent (p)
 {
        _repeat = _menu->Append (ID_repeat, _("Repeat..."));
@@ -66,8 +65,9 @@ ContentMenu::~ContentMenu ()
 }
 
 void
-ContentMenu::popup (ContentList c, wxPoint p)
+ContentMenu::popup (weak_ptr<Film> f, ContentList c, wxPoint p)
 {
+       _film = f;
        _content = c;
        _repeat->Enable (!_content.empty ());
 
index 9f4bd4cc4378059d116fc8d071660826ca6e0ac2..a9f9093c6ab5bb3c94d48244480bc1859495bbf2 100644 (file)
@@ -30,10 +30,10 @@ class Film;
 class ContentMenu
 {
 public:
-       ContentMenu (boost::shared_ptr<Film>, wxWindow *);
+       ContentMenu (wxWindow *);
        ~ContentMenu ();
 
-       void popup (ContentList, wxPoint);
+       void popup (boost::weak_ptr<Film>, ContentList, wxPoint);
 
 private:
        void repeat ();
@@ -43,6 +43,7 @@ private:
        void maybe_found_missing (boost::weak_ptr<Job>, boost::weak_ptr<Content>, boost::weak_ptr<Content>);
        
        wxMenu* _menu;
+       /** Film that we are working with; set up by popup() */
        boost::weak_ptr<Film> _film;
        wxWindow* _parent;
        ContentList _content;
index 1818fb451452233c196c534a7f996827d7a3b27d..e5cb5371c533c62ed755bc736199150ef41d1847 100644 (file)
@@ -72,7 +72,7 @@ using boost::lexical_cast;
 /** @param f Film to edit */
 FilmEditor::FilmEditor (shared_ptr<Film> f, wxWindow* parent)
        : wxPanel (parent)
-       , _menu (f, this)
+       , _menu (this)
        , _generally_sensitive (true)
        , _timeline_dialog (0)
 {
@@ -284,7 +284,7 @@ FilmEditor::make_content_panel ()
 
                s->Add (b, 0, wxALL, 4);
 
-               _content_sizer->Add (s, 1, wxEXPAND | wxALL, 6);
+               _content_sizer->Add (s, 0, wxEXPAND | wxALL, 6);
        }
 
        _sequence_video = new wxCheckBox (_content_panel, wxID_ANY, _("Keep video in sequence"));
@@ -966,7 +966,7 @@ FilmEditor::sequence_video_changed ()
 void
 FilmEditor::content_right_click (wxListEvent& ev)
 {
-       _menu.popup (selected_content (), ev.GetPoint ());
+       _menu.popup (_film, selected_content (), ev.GetPoint ());
 }
 
 void
index 9d2aee76c00f7660d424a5ef9c5275e5514a1cd2..2119e781322f2cedae4e3083ffd20b7ead4ffda2 100644 (file)
@@ -336,7 +336,7 @@ DCPTimeline::DCPTimeline (wxWindow* parent, FilmEditor* ed, shared_ptr<Film> fil
        , _left_down (false)
        , _down_view_position (0)
        , _first_move (false)
-       , _menu (film, this)
+       , _menu (this)
        , _snap (true)
 {
 #ifndef __WXOSX__
@@ -574,7 +574,7 @@ DCPTimeline::right_down (wxMouseEvent& ev)
                cv->set_selected (true);
        }
 
-       _menu.popup (selected_content (), ev.GetPosition ());
+       _menu.popup (_film, selected_content (), ev.GetPosition ());
 }
 
 void
diff --git a/wscript b/wscript
index 93dab68232377888a527340c6e36bb1ef71ac337..2b55cfd382578e22d1952be54ff3b76cb98aa475 100644 (file)
--- a/wscript
+++ b/wscript
@@ -3,7 +3,7 @@ import os
 import sys
 
 APPNAME = 'dcpomatic'
-VERSION = '1.53pre'
+VERSION = '1.54pre'
 
 def options(opt):
     opt.load('compiler_cxx')