From 0c3e840700a915fc1476cef73c591048f688f81e Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 12 Mar 2013 22:00:09 +0100 Subject: videotimline squashed 694 commits from http://gareus.org/gitweb/?p=ardour3.git --- gtk2_ardour/export_video_dialog.h | 122 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 gtk2_ardour/export_video_dialog.h (limited to 'gtk2_ardour/export_video_dialog.h') diff --git a/gtk2_ardour/export_video_dialog.h b/gtk2_ardour/export_video_dialog.h new file mode 100644 index 0000000000..ae0beafd37 --- /dev/null +++ b/gtk2_ardour/export_video_dialog.h @@ -0,0 +1,122 @@ +/* + Copyright (C) 2010 Paul Davis + Author: Robin Gareus + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ +#ifdef WITH_VIDEOTIMELINE + +#ifndef __gtk_ardour_export_video_dialog_h__ +#define __gtk_ardour_export_video_dialog_h__ + +#include + +#include + +#include "ardour/types.h" +#include "ardour/template_utils.h" +#include "ardour_dialog.h" + +#include "transcode_ffmpeg.h" + +/** @class ExportVideoDialog + * @brief dialog box and controller for video-file export + * + * The ExportVideoDialog includes audio export functions, + * video-encoder presets, progress dialogs and uses + * \ref TranscodeFfmpeg to communicate with ffmpeg. + */ +class ExportVideoDialog : public ArdourDialog , public PBD::ScopedConnectionList +{ + public: + ExportVideoDialog (PublicEditor&, ARDOUR::Session*); + ~ExportVideoDialog (); + + std::string get_exported_filename () { return outfn_path_entry.get_text(); } + + private: + PublicEditor& editor; + + void on_show (); + void abort_clicked (); + void launch_export (); + void encode_pass (int); + void change_file_extension (std::string); + + void open_outfn_dialog (); + void open_invid_dialog (); + void scale_checkbox_toggled (); + void preset_combo_changed (); + void video_codec_combo_changed (); + void aspect_checkbox_toggled (); + void fps_checkbox_toggled (); + + bool aborted; + bool twopass; + + void finished (); + void update_progress (ARDOUR::framecnt_t, ARDOUR::framecnt_t); + + TranscodeFfmpeg *transcoder; + std::string insnd; + + Gtk::Label outfn_path_label; + Gtk::Entry outfn_path_entry; + Gtk::Button outfn_browse_button; + Gtk::Label invid_path_label; + Gtk::Entry invid_path_entry; + Gtk::Button invid_browse_button; + Gtk::ComboBoxText insnd_combo; + Gtk::Button transcode_button; + + Gtk::VBox* vbox; + Gtk::Button *cancel_button; + Gtk::Button abort_button; + + Gtk::VBox* progress_box; + Gtk::ProgressBar pbar; + + Gtk::ComboBoxText audio_codec_combo; + Gtk::ComboBoxText video_codec_combo; + Gtk::ComboBoxText video_bitrate_combo; + Gtk::ComboBoxText audio_bitrate_combo; + Gtk::ComboBoxText audio_samplerate_combo; + Gtk::ComboBoxText preset_combo; + + Gtk::CheckButton scale_checkbox; + Gtk::Adjustment width_adjustment; + Gtk::SpinButton width_spinner; + Gtk::Adjustment height_adjustment; + Gtk::SpinButton height_spinner; + Gtk::CheckButton aspect_checkbox; + Gtk::ComboBoxText aspect_combo; + Gtk::CheckButton normalize_checkbox; + Gtk::CheckButton twopass_checkbox; + Gtk::CheckButton optimizations_checkbox; + Gtk::Label optimizations_label; + Gtk::CheckButton deinterlace_checkbox; + Gtk::CheckButton bframes_checkbox; + Gtk::CheckButton fps_checkbox; + Gtk::ComboBoxText fps_combo; + Gtk::CheckButton meta_checkbox; +#if 1 /* tentative debug mode */ + Gtk::CheckButton debug_checkbox; +#endif +}; + +#endif /* __gtk_ardour_export_video_dialog_h__ */ + +#endif /* WITH_VIDEOTIMELINE */ -- cgit v1.2.3