update windows installer finish page text & link
[ardour.git] / gtk2_ardour / transcode_ffmpeg.cc
index cee42163f117c5fd100e1fbfbaffd6e7171a02a7..76663956628fc93cc823fbcdb8ede00847b88378 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "transcode_ffmpeg.h"
 #include "utils_videotl.h"
+#include "video_tool_paths.h"
 
 #include "i18n.h"
 
@@ -40,8 +41,6 @@ TranscodeFfmpeg::TranscodeFfmpeg (std::string f)
 {
        probeok = false;
        ffexecok = false;
-       ffmpeg_exe = "";
-       ffprobe_exe = "";
        m_duration = 0;
        m_avoffset = m_lead_in = m_lead_out = 0;
        m_width = m_height = 0;
@@ -51,24 +50,7 @@ TranscodeFfmpeg::TranscodeFfmpeg (std::string f)
        debug_enable = false;
 #endif
 
-       std::string ff_file_path;
-       if (find_file (Searchpath(Glib::getenv("PATH")), X_("ffmpeg_harvid"), ff_file_path)) { ffmpeg_exe = ff_file_path; }
-       else if (Glib::file_test(X_("C:\\Program Files\\harvid\\ffmpeg.exe"), Glib::FILE_TEST_EXISTS)) {
-               ffmpeg_exe = X_("C:\\Program Files\\ffmpeg\\ffmpeg.exe");
-       }
-       else if (Glib::file_test(X_("C:\\Program Files\\ffmpeg\\ffmpeg.exe"), Glib::FILE_TEST_EXISTS)) {
-               ffmpeg_exe = X_("C:\\Program Files\\ffmpeg\\ffmpeg.exe");
-       }
-
-       if (find_file (Searchpath(Glib::getenv("PATH")), X_("ffprobe_harvid"), ff_file_path)) { ffprobe_exe = ff_file_path; }
-       else if (Glib::file_test(X_("C:\\Program Files\\harvid\\ffprobe.exe"), Glib::FILE_TEST_EXISTS)) {
-               ffprobe_exe = X_("C:\\Program Files\\ffmpeg\\ffprobe.exe");
-       }
-       else if (Glib::file_test(X_("C:\\Program Files\\ffmpeg\\ffprobe.exe"), Glib::FILE_TEST_EXISTS)) {
-               ffprobe_exe = X_("C:\\Program Files\\ffmpeg\\ffprobe.exe");
-       }
-
-       if (ffmpeg_exe.empty() || ffprobe_exe.empty()) {
+       if (!ArdourVideoToolPaths::transcoder_exe(ffmpeg_exe, ffprobe_exe)) {
                warning << string_compose(
                                _(
                                        "No ffprobe or ffmpeg executables could be found on this system.\n"
@@ -291,7 +273,7 @@ TranscodeFfmpeg::default_meta_data ()
 {
        TranscodeFfmpeg::FFSettings ffm;
        ffm.clear();
-       ffm["comment"] = "Created with ardour";
+       ffm["comment"] = "Created with " PROGRAM_NAME;
        return ffm;
 }
 
@@ -348,6 +330,12 @@ TranscodeFfmpeg::encode (std::string outfile, std::string inf_a, std::string inf
                argp[a++] = strdup("-metadata");
                argp[a++] = format_metadata(it->first.c_str(), it->second.c_str());
        }
+
+       if (m_fps > 0) {
+               m_lead_in  = rint (m_lead_in * m_fps) / m_fps;
+               m_lead_out = rint (m_lead_out * m_fps) / m_fps;
+       }
+
        if (m_lead_in != 0 && m_lead_out != 0) {
                std::ostringstream osstream;
                argp[a++] = strdup("-vf");