From 3c20057d0cbbbed453a692d4dd4589d865808024 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 29 Jan 2022 10:44:44 +0100 Subject: [PATCH] Add pkg-config fallback for locating ffmpeg. Audacity >=3.1.0 no longer links against ffmpeg, but instead dynamically loads it. This dynamic loading mechanism fails to properly locate libraries outside of LD_LIBRARY_PATH. See . Bugs-added-by: Marius Bakke diff --git a/libraries/lib-ffmpeg-support/CMakeLists.txt b/libraries/lib-ffmpeg-support/CMakeLists.txt index b8803a1f5..f86559cca 100644 --- a/libraries/lib-ffmpeg-support/CMakeLists.txt +++ b/libraries/lib-ffmpeg-support/CMakeLists.txt @@ -1,5 +1,7 @@ if (${_OPT}use_ffmpeg) + pkg_check_modules(FFMPEG libavcodec libavformat libavutil) + set( SOURCES FFmpegTypes.h @@ -107,6 +109,12 @@ if (${_OPT}use_ffmpeg) list(APPEND DEFINITIONS PRIVATE _DARWIN_C_SOURCE ) endif() + if (FFMPEG_FOUND) + pkg_get_variable(LIBAVCODEC_LIBDIR libavcodec libdir) + list(APPEND DEFINITIONS PRIVATE + "-DFFMPEG_PC_LIBDIR=\"${LIBAVCODEC_LIBDIR}\"") + endif() + audacity_library( lib-ffmpeg-support "${SOURCES}" "${LIBRARIES}" "${DEFINITIONS}" "" ) diff --git a/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp b/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp index 55d6f676b..46640ef83 100644 --- a/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp +++ b/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp @@ -246,6 +246,18 @@ struct FFmpegFunctions::Private final if (library->IsLoaded()) return library; +#if defined(FFMPEG_PC_LIBDIR) + { + static const wxString libdir{FFMPEG_PC_LIBDIR}; + const wxString fullName = wxFileName(libdir, libraryName).GetFullPath(); + + auto library = std::make_shared(fullName); + + if (library->IsLoaded()) + return library; + } +#endif + return {}; } }; >
63892204a19b3456810352e8&showmsg=1'>Expand)
AgeCommit message (Expand)Author
Author