Bug 6292

Summary: Remove libmp4v2 dependency from mixxx
Product: Fedora Reporter: Nicolas Chauvet <kwizart>
Component: mixxxAssignee: Uwe Klotz <uwe.klotz>
Status: RESOLVED INVALID    
Severity: enhancement CC: sergio
Priority: P1    
Version: unspecified   
Hardware: x86_64   
OS: GNU/Linux   
namespace:

Description Nicolas Chauvet 2022-05-05 15:25:08 CEST
libmp4v2 should be used for mp4 container (not codec), but is unmaintained and nowadays ffmpeg might be a better alternative.


Can you verify if upstream can transition to another mp4 container implementation.
Comment 1 Uwe Klotz 2022-05-05 22:28:25 CEST
I already suggested removing FFAD2/mp4v2 support and switch to FFmpeg. We didn't do that yet because this will affect the positions of cue points, loops, and beat grids that get displaced and need to be adjusted manually.

As soon as Fedora drops support fro mp4v2 we must do the transition. Personally, I use FFmpeg both for AAC/M4A and MP3. libmad/id3tag is another legacy dependency that could be replaced by FFmpeg.
Comment 2 Uwe Klotz 2022-05-05 22:30:28 CEST
TL;DR FFmpeg is already built-in, but only as fallback. By removing the build flag `faad` the unwanted dependencies are removed and FFmpeg would be used primarily.
Comment 3 Uwe Klotz 2022-05-06 10:52:52 CEST
I have pushed a commit with the required changes temporarily onto the branch `ffmpeg`.
Comment 4 Nicolas Chauvet 2022-09-06 12:31:20 CEST
Any update on this ?

I also saw that you are using libmad-devel, but mpg123 was seen as a better maintained implementation...(if not using ffmpeg directly).
Comment 5 Uwe Klotz 2022-09-06 12:58:54 CEST
Don't expect anyone to provide new decoding backends for Mixxx, will not happen. Switching to FFmpeg for AAC and MP3 decoding is the only option.

The faad2 and libmad decoders are still preferred officially, although effectively unmaintained. Once the libraries are abandoned switching to FFmpeg becomes mandatory.
Comment 6 Sérgio Basto 2022-10-17 00:27:28 CEST
Hi, we don't want you drop faad2 neither libmad , is are talking about 
https://src.fedoraproject.org/rpms/libmp4v2/blob/rawhide/f/libmp4v2.spec 

This libmp4v2 was abandoned, we though that is not needed anymore because can be replaced by ffmpeg and others ... 

Meanwhile emerged a new upstream https://github.com/enzo1982/mp4v2/releases/tag/v2.1.1 .

I haven't decide yet if we should try this new upstream and update Fedora package , although is not entire in my hands because the main maintainer is not me.
Comment 7 Uwe Klotz 2022-10-17 00:43:54 CEST
Dropping libmp4v2 implies dropping faad2. The code that uses these libraries in Mixxx is practically unmaintained.

FFmpeg as a replacement works perfectly fine, but all positional data will become inaccurate. There is no automatic migration, users have to adjust their data manually.
Comment 8 Nicolas Chauvet 2022-11-16 14:48:11 CET
Ok, closing the request now that a new upstream is keep alive
Comment 9 Sérgio Basto 2022-11-16 15:30:43 CET
(In reply to Nicolas Chauvet from comment #8)
> Ok, closing the request now that a new upstream is keep alive

new upstream keep it alive , but I don't know if we want maintain it , IIRC new upstream changed API / ABI or something like that .

And in Fedora we still have old upstream .
Comment 10 Nicolas Chauvet 2022-11-16 16:01:52 CET
Right, but we can still update to a newer version in rawhide.