summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_video_dialog.cc
diff options
context:
space:
mode:
authorJohn Emmas <johne53@tiscali.co.uk>2013-10-14 19:31:22 +0100
committerJohn Emmas <johne53@tiscali.co.uk>2013-10-14 19:31:22 +0100
commite466ce40ad1ba591543020cb7c0aa15dbebef81e (patch)
treef8e43560917a0a70c48d32ac171e828472cfd794 /gtk2_ardour/export_video_dialog.cc
parent4fac237fdcf025c5fd5aafe207113abd6abb469b (diff)
parenta901f28c6287ff99444d6a8afe67b71531a5f7d0 (diff)
Merge branch 'master' into windows+cc
Conflicts (hopefully resolved): gtk2_ardour/ardour_ui.cc
Diffstat (limited to 'gtk2_ardour/export_video_dialog.cc')
-rw-r--r--gtk2_ardour/export_video_dialog.cc22
1 files changed, 17 insertions, 5 deletions
diff --git a/gtk2_ardour/export_video_dialog.cc b/gtk2_ardour/export_video_dialog.cc
index 7e84cab122..a9d0f99ad1 100644
--- a/gtk2_ardour/export_video_dialog.cc
+++ b/gtk2_ardour/export_video_dialog.cc
@@ -63,7 +63,7 @@ using namespace PBD;
using namespace ARDOUR;
using namespace VideoUtils;
-ExportVideoDialog::ExportVideoDialog (Session* s, TimeSelection &tme)
+ExportVideoDialog::ExportVideoDialog (Session* s, TimeSelection &tme, bool range)
: ArdourDialog (_("Export Video File "))
, export_range (tme)
, outfn_path_label (_("File:"), Gtk::ALIGN_LEFT)
@@ -154,7 +154,11 @@ ExportVideoDialog::ExportVideoDialog (Session* s, TimeSelection &tme)
if (!export_range.empty()) {
insnd_combo.append_text (_("Selected range")); // TODO show export_range.start() -> export_range.end_frame()
}
- insnd_combo.set_active(0);
+ if (range) {
+ insnd_combo.set_active(2);
+ } else {
+ insnd_combo.set_active(0);
+ }
outfn_path_entry.set_width_chars(38);
outfn_path_entry.set_text (_session->session_directory().export_path() + G_DIR_SEPARATOR +"export.avi");
@@ -512,9 +516,8 @@ ExportVideoDialog::launch_export ()
end += av_offset;
}
else if (insnd_combo.get_active_row_number() == 2) {
- // TODO quantize to video-frame ?!
- start = export_range.start();
- end = export_range.end_frame();
+ start = ARDOUR_UI::instance()->video_timeline->quantify_frames_to_apv(export_range.start());
+ end = ARDOUR_UI::instance()->video_timeline->quantify_frames_to_apv(export_range.end_frame());
}
if (end <= 0) {
start = _session->current_start_frame();
@@ -524,6 +527,15 @@ ExportVideoDialog::launch_export ()
printf("audio export-range %lld -> %lld\n", start, end);
#endif
+ const frameoffset_t vstart = ARDOUR_UI::instance()->video_timeline->get_offset();
+ const frameoffset_t vend = vstart + ARDOUR_UI::instance()->video_timeline->get_duration();
+
+ if ( (start >= end) || (end < vstart) || (start > vend)) {
+ warning << _("Export Video: export-range does not include video.") << endmsg;
+ Gtk::Dialog::response(RESPONSE_CANCEL);
+ return;
+ }
+
tsp->set_range (start, end);
tsp->set_name ("mysession");
tsp->set_range_id ("session");