unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#53591: Audacity can't find FFmpeg
@ 2022-01-27 23:14 Leo Famulari
  2022-01-27 23:43 ` Leo Famulari
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Leo Famulari @ 2022-01-27 23:14 UTC (permalink / raw)
  To: 53591; +Cc: liliana.prikler

Although Audacity 3.1.3 includes FFmpeg in its direct dependencies, it
does not keep a reference to it and cannot find it at runtime.

This is a regression from Audacity 2.4.2.

------
$ git describe
v1.3.0-15323-gf00ed43653
$ guix gc --references $(./pre-inst-env guix build --no-grafts audacity) | grep ffmpeg
------




^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53591: Audacity can't find FFmpeg
  2022-01-27 23:14 bug#53591: Audacity can't find FFmpeg Leo Famulari
@ 2022-01-27 23:43 ` Leo Famulari
  2022-01-28  3:21   ` Leo Famulari
  2022-01-29 17:54 ` bug#53591: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config Liliana Marie Prikler
       [not found] ` <handler.53591.D53591.1643527130607.notifdone@debbugs.gnu.org>
  2 siblings, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2022-01-27 23:43 UTC (permalink / raw)
  To: 53591

On Thu, Jan 27, 2022 at 06:14:30PM -0500, Leo Famulari wrote:
> Although Audacity 3.1.3 includes FFmpeg in its direct dependencies, it
> does not keep a reference to it and cannot find it at runtime.

One consequence is that Audacity can't read Ogg files containing Opus or
Vorbis audio, or any other format delegated to FFmpeg, for example, this
file:

https://dl.espressif.com/dl/audio/ff-16b-2c-44100hz.ogg <-- downloads
with an ".ogx" extension

VLC, on the other hand, plays it fine.

Testing with the previous version of audacity (2.4.2), the .ogx file is
opened using FFmpeg, as shown in the "opening..." progress dialog box.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53591: Audacity can't find FFmpeg
  2022-01-27 23:43 ` Leo Famulari
@ 2022-01-28  3:21   ` Leo Famulari
  0 siblings, 0 replies; 8+ messages in thread
From: Leo Famulari @ 2022-01-28  3:21 UTC (permalink / raw)
  To: 53591

Between Audacity 2.4.2 and 3.1.3, upstream changed how Audacity finds
FFmpeg. It no longer links to it but instead loads it at runtime:

https://github.com/audacity/audacity/issues/2161

I detailed my hapless attempts to do that in the upstream bug report:

https://github.com/audacity/audacity/issues/2489

Any advice is most welcome!




^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53591: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config.
  2022-01-27 23:14 bug#53591: Audacity can't find FFmpeg Leo Famulari
  2022-01-27 23:43 ` Leo Famulari
@ 2022-01-29 17:54 ` Liliana Marie Prikler
  2022-01-29 19:53   ` Leo Famulari
       [not found] ` <handler.53591.D53591.1643527130607.notifdone@debbugs.gnu.org>
  2 siblings, 1 reply; 8+ messages in thread
From: Liliana Marie Prikler @ 2022-01-29 17:54 UTC (permalink / raw)
  To: 53591

* gnu/packages/patches/audacity-ffmpeg-fallback.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it here.
* gnu/packages/audio.scm (audacity)[patches]: Use it here.
[inputs]: Add back ffmpeg.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/audio.scm                        |  2 +
 .../patches/audacity-ffmpeg-fallback.patch    | 61 +++++++++++++++++++
 3 files changed, 64 insertions(+)
 create mode 100644 gnu/packages/patches/audacity-ffmpeg-fallback.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 96e6cb08f4..898e8e92e3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -859,6 +859,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch	\
   %D%/packages/patches/ath9k-htc-firmware-objcopy.patch		\
   %D%/packages/patches/atlas-gfortran-compat.patch		\
+  %D%/packages/patches/audacity-ffmpeg-fallback.patch	\
   %D%/packages/patches/audiofile-fix-datatypes-in-tests.patch	\
   %D%/packages/patches/audiofile-fix-sign-conversion.patch	\
   %D%/packages/patches/audiofile-CVE-2015-7747.patch		\
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index feccf662b0..22dd88ef0c 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -738,6 +738,7 @@ (define-public audacity
        (sha256
         (base32
          "189agx11361k9j958s6q5bngnnfx0rwaf0dwbjxy6fwvsb1wv3px"))
+       (patches (search-patches "audacity-ffmpeg-fallback.patch"))
        (modules '((guix build utils)))
        (snippet
         ;; Remove bundled libraries.
@@ -768,6 +769,7 @@ (define-public audacity
            lame
            linux-libre-headers
            flac
+           ffmpeg
            libid3tag
            libjpeg-turbo
            libmad
diff --git a/gnu/packages/patches/audacity-ffmpeg-fallback.patch b/gnu/packages/patches/audacity-ffmpeg-fallback.patch
new file mode 100644
index 0000000000..9e88973241
--- /dev/null
+++ b/gnu/packages/patches/audacity-ffmpeg-fallback.patch
@@ -0,0 +1,61 @@
+From 3c20057d0cbbbed453a692d4dd4589d865808024 Mon Sep 17 00:00:00 2001
+From: Liliana Marie Prikler <liliana.prikler@gmail.com>
+Date: Sat, 29 Jan 2022 10:44:44 +0100
+Subject: [PATCH] Add pkg-config fallback for locating ffmpeg.
+
+---
+ libraries/lib-ffmpeg-support/CMakeLists.txt      |  8 ++++++++
+ libraries/lib-ffmpeg-support/FFmpegFunctions.cpp | 12 ++++++++++++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/libraries/lib-ffmpeg-support/CMakeLists.txt b/libraries/lib-ffmpeg-support/CMakeLists.txt
+index 8c5f06d7c..00810e4d0 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
+ 
+@@ -100,6 +102,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=L\"${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 66d085a0b..4eeb4aed3 100644
+--- a/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp
++++ b/libraries/lib-ffmpeg-support/FFmpegFunctions.cpp
+@@ -238,6 +238,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<wxDynamicLibrary>(fullName);
++
++         if (library->IsLoaded())
++            return library;
++      }
++#endif
++
+       // Loading has failed.
+       // wxLogSysError doesn't report errors correctly on *NIX
+ #if defined(_WIN32)
+-- 
+2.34.0
+
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 8+ messages in thread

* bug#53591: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config.
  2022-01-29 17:54 ` bug#53591: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config Liliana Marie Prikler
@ 2022-01-29 19:53   ` Leo Famulari
  2022-01-30  7:18     ` Liliana Marie Prikler
  0 siblings, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2022-01-29 19:53 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 53591

On Sat, Jan 29, 2022 at 06:54:54PM +0100, Liliana Marie Prikler wrote:
> * gnu/packages/patches/audacity-ffmpeg-fallback.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add it here.
> * gnu/packages/audio.scm (audacity)[patches]: Use it here.
> [inputs]: Add back ffmpeg.

Well, this is fantastic Liliana! It works great.

Can you add a comment to 'audacity-ffmpeg-fallback.patch' with a link to
<https://issues.guix.gnu.org/53591>?




^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53591: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config.
  2022-01-29 19:53   ` Leo Famulari
@ 2022-01-30  7:18     ` Liliana Marie Prikler
  0 siblings, 0 replies; 8+ messages in thread
From: Liliana Marie Prikler @ 2022-01-30  7:18 UTC (permalink / raw)
  To: Leo Famulari; +Cc: 53591-done

Am Samstag, dem 29.01.2022 um 14:53 -0500 schrieb Leo Famulari:
> On Sat, Jan 29, 2022 at 06:54:54PM +0100, Liliana Marie Prikler
> wrote:
> > * gnu/packages/patches/audacity-ffmpeg-fallback.patch: New file.
> > * gnu/local.mk (dist_patch_DATA): Add it here.
> > * gnu/packages/audio.scm (audacity)[patches]: Use it here.
> > [inputs]: Add back ffmpeg.
> 
> Well, this is fantastic Liliana! It works great.
> 
> Can you add a comment to 'audacity-ffmpeg-fallback.patch' with a link
> to <https://issues.guix.gnu.org/53591>?
Done and pushed.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53591: closed (Re: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config.)
       [not found] ` <handler.53591.D53591.1643527130607.notifdone@debbugs.gnu.org>
@ 2022-02-04 22:32   ` Leo Famulari
  2022-02-04 23:49     ` Leo Famulari
  0 siblings, 1 reply; 8+ messages in thread
From: Leo Famulari @ 2022-02-04 22:32 UTC (permalink / raw)
  To: 53591; +Cc: liliana.prikler

On Sun, Jan 30, 2022 at 07:19:02AM +0000, GNU bug Tracking System wrote:
> From: Liliana Marie Prikler <liliana.prikler@gmail.com>
> Am Samstag, dem 29.01.2022 um 14:53 -0500 schrieb Leo Famulari:
> > Well, this is fantastic Liliana! It works great.
> > 
> > Can you add a comment to 'audacity-ffmpeg-fallback.patch' with a link
> > to <https://issues.guix.gnu.org/53591>?
> Done and pushed.

I'm not sure what happened, but it seems I failed to test this fix
properly.

Audacity still does not keep a reference to FFmpeg, and it cannot
Opus-encoded files (among many other types of encodings):

------
$ git describe
v1.3.0-15695-gba60aede97
$ $(./pre-inst-env guix build --no-grafts audacity) | grep ffmpeg 
$
------

This is the file to test with:

https://dl.espressif.com/dl/audio/ff-16b-2c-44100hz.opus

I've reopened this bug.




^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#53591: closed (Re: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config.)
  2022-02-04 22:32   ` bug#53591: closed (Re: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config.) Leo Famulari
@ 2022-02-04 23:49     ` Leo Famulari
  0 siblings, 0 replies; 8+ messages in thread
From: Leo Famulari @ 2022-02-04 23:49 UTC (permalink / raw)
  To: 53591-done; +Cc: liliana.prikler

On Fri, Feb 04, 2022 at 05:32:30PM -0500, Leo Famulari wrote:
> Audacity still does not keep a reference to FFmpeg, and it cannot
> Opus-encoded files (among many other types of encodings):

On #guix, lilyp found the culprit:

http://logs.guix.gnu.org/guix/2022-02-04.log#235737

... an extra "L" character in the patch file:

https://issues.guix.gnu.org/53591#3-lineno78

Fixed with commit 04cd0ece6219fef2f18ee62442a913a02495fb50




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-02-04 23:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-27 23:14 bug#53591: Audacity can't find FFmpeg Leo Famulari
2022-01-27 23:43 ` Leo Famulari
2022-01-28  3:21   ` Leo Famulari
2022-01-29 17:54 ` bug#53591: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config Liliana Marie Prikler
2022-01-29 19:53   ` Leo Famulari
2022-01-30  7:18     ` Liliana Marie Prikler
     [not found] ` <handler.53591.D53591.1643527130607.notifdone@debbugs.gnu.org>
2022-02-04 22:32   ` bug#53591: closed (Re: [PATCH] gnu: audacity: Add fallback to locate ffmpeg via pkg-config.) Leo Famulari
2022-02-04 23:49     ` Leo Famulari

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).