Prefer FFmpeg for all formats except FLAC/OGG

Bug #1914662 reported by Uwe Klotz
4
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
New
Medium
Unassigned

Bug Description

SoundSourceCoreAudio: Unmaintained due to lack of macOS contributors. Already requires an internal API adapter since the last refactoring.

SoundSourceMediaFoundation: Unmaintained due to lack of Windows contributors and buggy (https://bugs.launchpad.net/mixxx/+bug/1899242)

SoundSourceMP3: Based on abandoned libraries libid3tag and libmad.

SoundSourceM4A: Based on abandoned (libmp4v2) and almost abandoned (libfaad2) libraries. Already requires an ugly workaround.

SoundSourceSndfile: Is well maintained, has a simple API and is already used as a fallback. Currently the primary SoundSource for AIFF and WAV. No offset issues expected when switching to FFmpeg.

SoundSourceWv: Minor maintenance burden, but otherwise does not hurt. The API is simple enough to keep it.

SoundSourceOpus: Obsolete. Contains some special metadata code that is unlikely to be used. Vorbis Comment tags are the most common.

SoundSourceFLAC/SoundSourceOggVorbis: Cannot be replaced by FFmpeg!!

Be (be.ing)
Changed in mixxx:
importance: Undecided → Medium
description: updated
Revision history for this message
Be (be.ing) wrote :

Is there an inherit limitation in FFmpeg that prevents using it for FLAC, Vorbis, and Opus? Are there upstream bug reports about the limiting factors?

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Decoding tests don't pass for FLAC and OGG, seeking seems to be buggy, all documented in code comments. The native libraries work (almost) flawlessly.

We could use FFmpeg for OPUS instead of the native decoder as I just noticed, all tests pass. I remember that this required raising the bounds for allowed decoding errors slightly.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Decoding WavPack files also works, so we don't necessarily need to keep SoundSourceWv for the 1 or 2 people who might still use it.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

        ///////////////////////////////////////////////////////////
        // Codecs with failing tests
        ///////////////////////////////////////////////////////////
        /*
    } else if (!strcmp(pavInputFormat->name, "flac")) {
        // FFmpeg failure causes test failure:
        // [flac @ 0x2ef2060] read_timestamp() failed in the middle
        // SoundSourceFFmpeg - av_seek_frame() failed: Operation not permitted
        list.append("flac");
        continue;
    } else if (!strcmp(pavInputFormat->name, "ogg")) {
        // Test failures that might be caused by FFmpeg bug:
        // https://trac.ffmpeg.org/ticket/3825
        list.append("ogg");
        continue;

summary: - Prefer FFmpeg for all formats except FLAC/OGG/OPUS
+ Prefer FFmpeg for all formats except FLAC/OGG
description: updated
Revision history for this message
Be (be.ing) wrote :

Perhaps we could drop all SoundSources besides FFmpeg and libsndfile once https://github.com/libsndfile/libsndfile/issues/643 is fixed.

Revision history for this message
Jan Holthuis (holthuis-jan) wrote :

Unless we have a way to determine encoder sample offsets, this will potentially invalidate all existing cue points.

Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/10313

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.