+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>
-dcpomatic (1.52-1) UNRELEASED; urgency=low
+dcpomatic (1.53-1) UNRELEASED; urgency=low
* New upstream release.
* New upstream release.
* 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
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;
_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.
_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);
}
{
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);
#include <sndfile.h>
#include "file_group.h"
#include "exceptions.h"
+#include "cross.h"
using std::vector;
using std::cout;
}
_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]);
}
#include "config.h"
#include "log.h"
#include "film.h"
+#include "cross.h"
#include "i18n.h"
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));
}
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;
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..."));
}
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 ());
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 ();
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;
/** @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)
{
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"));
void
FilmEditor::content_right_click (wxListEvent& ev)
{
- _menu.popup (selected_content (), ev.GetPoint ());
+ _menu.popup (_film, selected_content (), ev.GetPoint ());
}
void
, _left_down (false)
, _down_view_position (0)
, _first_move (false)
- , _menu (film, this)
+ , _menu (this)
, _snap (true)
{
#ifndef __WXOSX__
cv->set_selected (true);
}
- _menu.popup (selected_content (), ev.GetPosition ());
+ _menu.popup (_film, selected_content (), ev.GetPosition ());
}
void
import sys
APPNAME = 'dcpomatic'
-VERSION = '1.53pre'
+VERSION = '1.54pre'
def options(opt):
opt.load('compiler_cxx')