Ignore LD-environment for mp3 im/export

This fixes mp3 export on Linux/ARM (Raspberry Pi) with
system-wide dynamically linked ffmpeg. Otherwise the there
would be library conflicts with ardour-bundled libz and libcairo.
This commit is contained in:
Robin Gareus 2022-04-01 18:12:47 +02:00
parent 82d491cb80
commit 8c7157df6c
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
3 changed files with 4 additions and 4 deletions

View File

@ -411,7 +411,7 @@ ExportGraphBuilder::Encoder::init_writer (boost::shared_ptr<AudioGrapher::CmdPip
/* argp is free()d in ~SystemExec,
* SystemExec is deleted when writer is destroyed */
ARDOUR::SystemExec* exec = new ARDOUR::SystemExec (ffmpeg_exe, argp);
ARDOUR::SystemExec* exec = new ARDOUR::SystemExec (ffmpeg_exe, argp, true);
PBD::info << "Encode command: { " << exec->to_s () << "}" << endmsg;
if (exec->start (SystemExec::MergeWithStdin)) {
throw ExportFailed ("External encoder (ffmpeg) cannot be started.");

View File

@ -463,7 +463,7 @@ ExportHandler::finish_timespan ()
subs.insert (std::pair<char, std::string> ('Y', year.str ()));
subs.insert (std::pair<char, std::string> ('Z', metadata.country ()));
ARDOUR::SystemExec *se = new ARDOUR::SystemExec(fmt->command(), subs);
ARDOUR::SystemExec *se = new ARDOUR::SystemExec(fmt->command(), subs, true);
info << "Post-export command line : {" << se->to_s () << "}" << endmsg;
se->ReadStdout.connect_same_thread(command_connection, boost::bind(&ExportHandler::command_output, this, _1, _2));
int ret = se->start (SystemExec::MergeWithStdin);

View File

@ -57,7 +57,7 @@ FFMPEGFileImportableSource::FFMPEGFileImportableSource (const std::string& path,
argp[a++] = strdup ("-of");
argp[a++] = strdup ("json");
ARDOUR::SystemExec* exec = new ARDOUR::SystemExec (ffprobe_exe, argp);
ARDOUR::SystemExec* exec = new ARDOUR::SystemExec (ffprobe_exe, argp, true);
PBD::info << "Probe command: { " << exec->to_s () << "}" << endmsg;
if (exec->start ()) {
@ -186,7 +186,7 @@ FFMPEGFileImportableSource::start_ffmpeg ()
#endif
argp[a++] = strdup ("-");
_ffmpeg_exec = new ARDOUR::SystemExec (ffmpeg_exe, argp);
_ffmpeg_exec = new ARDOUR::SystemExec (ffmpeg_exe, argp, true);
PBD::info << "Decode command: { " << _ffmpeg_exec->to_s () << "}" << endmsg;
if (_ffmpeg_exec->start ()) {
PBD::error << "FFMPEGFileImportableSource: External decoder (ffmpeg) cannot be started." << endmsg;