Include session-metadata in external/ffmpeg export
authorRobin Gareus <robin@gareus.org>
Tue, 20 Nov 2018 23:03:36 +0000 (00:03 +0100)
committerRobin Gareus <robin@gareus.org>
Tue, 20 Nov 2018 23:03:36 +0000 (00:03 +0100)
libs/ardour/export_graph_builder.cc

index c09e00219d7e2a6f7f600133e7570a5cf3a48bc4..f9b9ad1b561ee553f08125c8466be8cf79b96337 100644 (file)
@@ -49,6 +49,7 @@
 #include "ardour/export_timespan.h"
 #include "ardour/filesystem_paths.h"
 #include "ardour/session_directory.h"
+#include "ardour/session_metadata.h"
 #include "ardour/sndfile_helpers.h"
 #include "ardour/system_exec.h"
 
@@ -359,10 +360,17 @@ ExportGraphBuilder::Encoder::init_writer (boost::shared_ptr<AudioGrapher::CmdPip
                argp[a++] = strdup ("-b:a"); argp[a++] = strdup (tmp);
        }
 
-       /* TODO: add SessionMetadata::Metadata()
-        * see gtk2_ardour/export_video_dialog.cc
-        * and gtk2_ardour/transcode_ffmpeg.cc
-        */
+       if (1) {
+               SessionMetadata::MetaDataMap meta;
+               meta["comment"] = "Created with " PROGRAM_NAME;
+               ARDOUR::SessionMetadata* session_data = ARDOUR::SessionMetadata::Metadata();
+               session_data->av_export_tag (meta);
+
+               for(SessionMetadata::MetaDataMap::const_iterator it = meta.begin(); it != meta.end(); ++it) {
+                       argp[a++] = strdup("-metadata");
+                       argp[a++] = SystemExec::format_key_value_parameter (it->first.c_str(), it->second.c_str());
+               }
+       }
 
        argp[a++] = strdup (writer_filename.c_str());
        argp[a] = (char *)0;