diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-02-22 18:58:31 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-02-22 18:58:31 +0000 |
| commit | 62365221dd3cd80d6b771e9bf22b4f9365ee096a (patch) | |
| tree | 6d75b967b7e250a93eb3b600ce89706b2018f069 /src/tools | |
| parent | fa6c885de512cdde0590c2bbe9ea424030a12c6b (diff) | |
| parent | 5943bde6f1a29c84b3f79710535a41bb98f6ce7d (diff) | |
Merge branch 'master' into i18n
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/dvdomatic.cc | 36 | ||||
| -rw-r--r-- | src/tools/makedcp.cc | 2 | ||||
| -rw-r--r-- | src/tools/servomatictest.cc | 52 | ||||
| -rw-r--r-- | src/tools/wscript | 2 |
4 files changed, 60 insertions, 32 deletions
diff --git a/src/tools/dvdomatic.cc b/src/tools/dvdomatic.cc index 5d944a934..1b76132f6 100644 --- a/src/tools/dvdomatic.cc +++ b/src/tools/dvdomatic.cc @@ -146,7 +146,6 @@ enum { ID_jobs_send_dcp_to_tms, ID_jobs_show_dcp, ID_jobs_examine_content, - ID_jobs_make_dcp_from_existing_transcode, ID_help_about }; @@ -172,7 +171,6 @@ setup_menu (wxMenuBar* m) add_item (jobs_menu, "S&how DCP", ID_jobs_show_dcp, NEEDS_FILM); jobs_menu->AppendSeparator (); add_item (jobs_menu, "&Examine content", ID_jobs_examine_content, NEEDS_FILM); - add_item (jobs_menu, "Make DCP from existing &transcode", ID_jobs_make_dcp_from_existing_transcode, NEEDS_FILM); wxMenu* help = new wxMenu; add_item (help, "About", ID_help_about, ALWAYS); @@ -210,7 +208,6 @@ public: Connect (ID_jobs_send_dcp_to_tms, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_send_dcp_to_tms)); Connect (ID_jobs_show_dcp, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_show_dcp)); Connect (ID_jobs_examine_content, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_examine_content)); - Connect (ID_jobs_make_dcp_from_existing_transcode, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::jobs_make_dcp_from_existing_transcode)); Connect (ID_help_about, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler (Frame::help_about)); Connect (wxID_ANY, wxEVT_MENU_OPEN, wxMenuEventHandler (Frame::menu_opened)); @@ -224,12 +221,12 @@ public: film_viewer = new FilmViewer (film, panel); JobManagerView* job_manager_view = new JobManagerView (panel); - wxSizer* top_sizer = new wxBoxSizer (wxHORIZONTAL); - top_sizer->Add (film_editor, 0, wxALL, 6); - top_sizer->Add (film_viewer, 1, wxEXPAND | wxALL, 6); + _top_sizer = new wxBoxSizer (wxHORIZONTAL); + _top_sizer->Add (film_editor, 0, wxALL, 6); + _top_sizer->Add (film_viewer, 1, wxEXPAND | wxALL, 6); wxBoxSizer* main_sizer = new wxBoxSizer (wxVERTICAL); - main_sizer->Add (top_sizer, 2, wxEXPAND | wxALL, 6); + main_sizer->Add (_top_sizer, 2, wxEXPAND | wxALL, 6); main_sizer->Add (job_manager_view, 1, wxEXPAND | wxALL, 6); panel->SetSizer (main_sizer); @@ -244,12 +241,24 @@ public: } else { file_changed (""); } - + set_film (); + + film_editor->Connect (wxID_ANY, wxEVT_SIZE, wxSizeEventHandler (Frame::film_editor_sized), 0, this); } private: + void film_editor_sized (wxSizeEvent &) + { + static bool in_layout = false; + if (!in_layout) { + in_layout = true; + _top_sizer->Layout (); + in_layout = false; + } + } + void menu_opened (wxMenuEvent& ev) { if (ev.GetMenu() != jobs_menu) { @@ -287,7 +296,7 @@ private: if (r == wxID_OK) { if (boost::filesystem::exists (d->get_path())) { - error_dialog (this, wxString::Format (_("The directory %s already exists"), d->get_path().c_str())); + error_dialog (this, wxString::Format (_("The directory %s already exists."), d->get_path().c_str())); return; } @@ -350,12 +359,7 @@ private: void jobs_make_dcp (wxCommandEvent &) { - JobWrapper::make_dcp (this, film, true); - } - - void jobs_make_dcp_from_existing_transcode (wxCommandEvent &) - { - JobWrapper::make_dcp (this, film, false); + JobWrapper::make_dcp (this, film); } void jobs_send_dcp_to_tms (wxCommandEvent &) @@ -408,6 +412,8 @@ private: info.SetWebSite (wxT ("http://carlh.net/software/dvdomatic")); wxAboutBox (info); } + + wxSizer* _top_sizer; }; #if wxMINOR_VERSION == 9 diff --git a/src/tools/makedcp.cc b/src/tools/makedcp.cc index 892bed3b8..0c6390771 100644 --- a/src/tools/makedcp.cc +++ b/src/tools/makedcp.cc @@ -155,7 +155,7 @@ main (int argc, char* argv[]) pair<string, string> const f = Filter::ffmpeg_strings (film->filters ()); cout << "Filters: " << f.first << " " << f.second << "\n"; - film->make_dcp (true); + film->make_dcp (); bool should_stop = false; bool first = true; diff --git a/src/tools/servomatictest.cc b/src/tools/servomatictest.cc index 88c2a833e..91ad02120 100644 --- a/src/tools/servomatictest.cc +++ b/src/tools/servomatictest.cc @@ -34,22 +34,40 @@ #include "scaler.h" #include "log.h" #include "decoder_factory.h" +#include "video_decoder.h" -using namespace std; -using namespace boost; +using std::cout; +using std::cerr; +using std::string; +using std::pair; +using boost::shared_ptr; -static Server* server; -static Log log_ ("servomatictest.log"); +static ServerDescription* server; +static FileLog log_ ("servomatictest.log"); +static int frame = 0; void -process_video (shared_ptr<Image> image, bool, int frame) +process_video (shared_ptr<Image> image, bool, shared_ptr<Subtitle> sub) { - shared_ptr<DCPVideoFrame> local (new DCPVideoFrame (image, Size (1024, 1024), 0, Scaler::from_id ("bicubic"), frame, 24, "", 0, 250000000, &log_)); - shared_ptr<DCPVideoFrame> remote (new DCPVideoFrame (image, Size (1024, 1024), 0, Scaler::from_id ("bicubic"), frame, 24, "", 0, 250000000, &log_)); + shared_ptr<DCPVideoFrame> local ( + new DCPVideoFrame ( + image, sub, + libdcp::Size (1024, 1024), 0, 0, 0, + Scaler::from_id ("bicubic"), frame, 24, "", 0, 250000000, &log_) + ); + + shared_ptr<DCPVideoFrame> remote ( + new DCPVideoFrame ( + image, sub, + libdcp::Size (1024, 1024), 0, 0, 0, + Scaler::from_id ("bicubic"), frame, 24, "", 0, 250000000, &log_) + ); cout << "Frame " << frame << ": "; cout.flush (); + ++frame; + shared_ptr<EncodedData> local_encoded = local->encode_locally (); shared_ptr<EncodedData> remote_encoded; @@ -130,17 +148,21 @@ main (int argc, char* argv[]) dvdomatic_setup (); - server = new Server (server_host, 1); - Film film (film_dir, true); + server = new ServerDescription (server_host, 1); + shared_ptr<Film> film (new Film (film_dir, true)); - shared_ptr<Options> opt (new Options ("fred", "jim", "sheila")); - opt->out_size = Size (1024, 1024); - opt->decode_audio = false; + DecodeOptions opt; + opt.decode_audio = false; + opt.decode_subtitles = true; + opt.video_sync = true; - shared_ptr<Decoder> decoder = decoder_factory (film.state_copy(), opt, 0, &log_); + Decoders decoders = decoder_factory (film, opt); try { - decoder->Video.connect (sigc::ptr_fun (process_video)); - decoder->go (); + decoders.video->Video.connect (boost::bind (process_video, _1, _2, _3)); + bool done = false; + while (!done) { + done = decoders.video->pass (); + } } catch (std::exception& e) { cerr << "Error: " << e.what() << "\n"; } diff --git a/src/tools/wscript b/src/tools/wscript index 5a837f845..c843c61d8 100644 --- a/src/tools/wscript +++ b/src/tools/wscript @@ -1,5 +1,5 @@ def build(bld): - for t in ['makedcp', 'servomatic_cli']: + for t in ['makedcp', 'servomatic_cli', 'servomatictest']: obj = bld(features = 'cxx cxxprogram') obj.uselib = 'BOOST_THREAD OPENJPEG DCP AVFORMAT AVFILTER AVCODEC AVUTIL SWSCALE POSTPROC' obj.includes = ['..'] |
