summaryrefslogtreecommitdiff
path: root/gtk2_ardour/export_video_dialog.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-10-12 21:25:05 +0200
committerRobin Gareus <robin@gareus.org>2013-10-12 22:56:08 +0200
commitf7c54f1435da2f87a40bf8549b8d732995b84bfc (patch)
tree4f58e6401fc69c45662c4c4b4926796f870831c6 /gtk2_ardour/export_video_dialog.cc
parenta90858897ec9bf3bb3b8300119de70ed59f02227 (diff)
video-range export tweaks:
* quantize range to video-frame boundaries * warn if range is empty or does not include video
Diffstat (limited to 'gtk2_ardour/export_video_dialog.cc')
-rw-r--r--gtk2_ardour/export_video_dialog.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/gtk2_ardour/export_video_dialog.cc b/gtk2_ardour/export_video_dialog.cc
index dd08b58661..eacc32bde2 100644
--- a/gtk2_ardour/export_video_dialog.cc
+++ b/gtk2_ardour/export_video_dialog.cc
@@ -510,9 +510,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();
@@ -522,6 +521,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");