From f7c54f1435da2f87a40bf8549b8d732995b84bfc Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 12 Oct 2013 21:25:05 +0200 Subject: [PATCH] video-range export tweaks: * quantize range to video-frame boundaries * warn if range is empty or does not include video --- gtk2_ardour/export_video_dialog.cc | 14 +++++++++++--- 1 file 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");