Mixxx crashes on M4A load

Bug #791623 reported by Dante
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Critical
Unassigned

Bug Description

I compiled Mixxx from source on my Ubuntu 11.04 box with an Intel Core 2 Duo 2.93 GHz processor
Whenever I try to play an m4a file in any way, Mixxx crashes. On the command line, this message appears:

Debug: []: Getting SoundSource plugin object for "m4a"
mixxx: symbol lookup error: /usr/lib/mixxx/plugins/soundsource/libsoundsourcem4a.so: undefined symbol: MP4Read

It seems that the shared library "libsoundsourcem4a.so" has problems

Revision history for this message
William Good (bkgood) wrote :

Could you paste the output of `ldd /usr/lib/mixxx/plugins/soundsource/libsoundsourcem4a.so`?

Revision history for this message
Dante (dante1) wrote :
Download full text (4.6 KiB)

Here you go:

 linux-gate.so.1 => (0x0094c000)
 libportaudio.so.2 => /usr/lib/libportaudio.so.2 (0x00388000)
 libporttime.so.0 => /usr/lib/libporttime.so.0 (0x00eb7000)
 libportmidi.so.0 => /usr/lib/libportmidi.so.0 (0x00a24000)
 libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0x00110000)
 libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0x00ef8000)
 libQtSvg.so.4 => /usr/lib/libQtSvg.so.4 (0x0084e000)
 libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0x007f2000)
 libQtScript.so.4 => /usr/lib/libQtScript.so.4 (0x004f2000)
 libQtXmlPatterns.so.4 => /usr/lib/libQtXmlPatterns.so.4 (0x00a2d000)
 libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0x00f39000)
 libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x039e2000)
 libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0x003b1000)
 libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x1de2f000)
 libmad.so.0 => /usr/lib/libmad.so.0 (0x008b7000)
 libid3tag.so.0 => /usr/lib/libid3tag.so.0 (0x001fd000)
 libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x0020d000)
 libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0x002d7000)
 libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x00273000)
 libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x0027c000)
 libogg.so.0 => /usr/lib/libogg.so.0 (0x00ee9000)
 libGL.so.1 => /usr/lib/mesa/libGL.so.1 (0x00323000)
 libGLU.so.1 => /usr/lib/libGLU.so.1 (0x008ce000)
 libtag.so.1 => /usr/lib/libtag.so.1 (0x0094d000)
 libshout.so.3 => /usr/lib/libshout.so.3 (0x002a3000)
 libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x0b200000)
 libmp4.so.0 => /usr/lib/libmp4.so.0 (0x00793000)
 libfaad.so.2 => /usr/lib/libfaad.so.2 (0x007b0000)
 libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0x0bd3c000)
 libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0x009e0000)
 libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0x0082f000)
 libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x13e51000)
 libasound.so.2 => /usr/lib/libasound.so.2 (0x103af000)
 libjack.so.0 => /usr/lib/libjack.so.0 (0x00a06000)
 librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0x00379000)
 libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x00e3f000)
 libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0x0816e000)
 libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x002b4000)
 libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0x008a2000)
 libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0x0e353000)
 libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0x00e58000)
 libsqlite3.so.0 => /usr/lib/i386-linux-gnu/libsqlite3.so.0 (0x13455000)
 libphonon.so.4 => /usr/lib/libphonon.so.4 (0x1aa70000)
 libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0x00e6d000)
 libaudio.so.2 => /usr/lib/libaudio.so.2 (0x00e9c000)
 libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0x037d6000)
 libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0x00eba000)
 libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0x2093a000)
 libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0x008ac000)
 libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0x1caf0000)
 libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0x0093b000)
 libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0x03464000)
 libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0x003820...

Read more...

Revision history for this message
Dante (dante1) wrote :

By the way, I'm using Mixxx 1.9.0

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Sorry for the delay. Dante, do you have libmp4 or libmp4v2 installed? (do dpkg -l | grep 'mp4' from a command line)

Revision history for this message
Jared Robert (jared-robert) wrote :
Download full text (5.4 KiB)

Having same issue. Ubuntu 11.04 64bit compiles with trunk last night. using libmp4v2-0 and libmp4v2-dev. Here is ldd.

        linux-vdso.so.1 => (0x00007fff551ff000)
 libportaudio.so.2 => /usr/lib/libportaudio.so.2 (0x00007f96c80a7000)
 libporttime.so.0 => /usr/lib/libporttime.so.0 (0x00007f96c7ea5000)
 libportmidi.so.0 => /usr/lib/libportmidi.so.0 (0x00007f96c7c9b000)
 libQtOpenGL.so.4 => /usr/lib/libQtOpenGL.so.4 (0x00007f96c79ad000)
 libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0x00007f96c7769000)
 libQtSvg.so.4 => /usr/lib/libQtSvg.so.4 (0x00007f96c7510000)
 libQtSql.so.4 => /usr/lib/libQtSql.so.4 (0x00007f96c72d2000)
 libQtScript.so.4 => /usr/lib/libQtScript.so.4 (0x00007f96c6e19000)
 libQtXmlPatterns.so.4 => /usr/lib/libQtXmlPatterns.so.4 (0x00007f96c67ab000)
 libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0x00007f96c5049000)
 libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x00007f96c43a8000)
 libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0x00007f96c4077000)
 libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x00007f96c3be7000)
 libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0x00007f96c397f000)
 libFLAC.so.8 => /usr/lib/libFLAC.so.8 (0x00007f96c3734000)
 libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x00007f96c352c000)
 libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f96c3300000)
 libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f96c30f8000)
 libGL.so.1 => /usr/lib/mesa/libGL.so.1 (0x00007f96c2e7b000)
 libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007f96c2c0c000)
 libtag.so.1 => /usr/lib/libtag.so.1 (0x00007f96c297b000)
 libmad.so.0 => /usr/lib/libmad.so.0 (0x00007f96c275c000)
 libid3tag.so.0 => /usr/lib/libid3tag.so.0 (0x00007f96c2546000)
 libshout.so.3 => /usr/lib/libshout.so.3 (0x00007f96c2334000)
 libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007f96c1e65000)
 libmp4.so.0 => /usr/lib/libmp4.so.0 (0x00007f96c1c46000)
 libfaad.so.2 => /usr/lib/libfaad.so.2 (0x00007f96c1a03000)
 libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f96c16fd000)
 libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f96c1478000)
 libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f96c1261000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f96c0ecd000)
 libasound.so.2 => /usr/lib/libasound.so.2 (0x00007f96c0be2000)
 libjack.so.0 => /usr/lib/libjack.so.0 (0x00007f96c09c4000)
 librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f96c07bc000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f96c059e000)
 libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f96c0304000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f96c0100000)
 libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f96bfef5000)
 libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f96bfbba000)
 libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f96bf9a2000)
 libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f96bf708000)
 libphonon.so.4 => /usr/lib/libphonon.so.4 (0x00007f96bf497000)
 libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f96bf261000)
 libaudio.so.2 => /usr/lib/libaudio.so.2 (0x00007f96bf047000)
 libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-...

Read more...

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

After extensive troubleshooting with Jared, something's fishy here. We confirmed that the stock Ubuntu libmp4v2-dev (which is really mpeg4ip) package doesn't have MP4Read in its header files, and obviously not in the .sos. And the real libmp4v2 headers and .sos are not installed. So how is the plugin even building without error if MP4Read isn't there?!

One workaround is to install the real libmp4v2 from the debian-multimedia repo:
- sudo nano /etc/apt/sources.list
- add this line: deb http://www.debian-multimedia.org stable main non-free
- save & close (Ctrl-X, Y, Enter)
- sudo apt-get update
- sudo apt-get remove libmp4v2-0 (This may not be required. Before doing it, make sure no important packages will be removed)
- sudo apt-get install libmp4v2-dev libmp4v2-1

Then rebuild Mixxx with m4a=1 (<=1.9) or faad=1 (>=1.10). (When done, ldd should show libmp4v2.so instead of libmp4.so.)

Let us know here how it works out for you.

Revision history for this message
Jared Robert (jared-robert) wrote :

Ok, adding the debian-multimedia work-around doesn't work. If you only add libmp4v2-1, you still have the same problem. If you install both the libmp4v2-1 and the -dev, it doesn't compile. I did notice at the beginning when you start the compile, that there is a response of "no" when: "Checking for C header file mp4v2/mp4v2.h... (cached) no". I seem to remember there was a bug report from last year that was fixed, but had to do with SConstruct not looking for a header file in the right place.

https://bugs.launchpad.net/mixxx/+bug/610746

I wonder if these are related and we are dealing with a regression.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

To take care of the (cached) issue, delete the .sconf_temp and sconsign.dblite files/directories, then rebuild with the regular flags. That's why it's not building.

Revision history for this message
Jared Robert (jared-robert) wrote :

Ok, after deleting those files/directories, the work around works. Specifically, you can (and should) leave the libmp4v2-0 in place. Install the libmp4v2-1 and libmp4v2-dev, then recompile (make sure to delete those hidden files/folders from the build directory). After you compile and install, REMOVE THE DEBIAN REPOSITORY. If you don't, your computer will try to remove a bunch of programs and update a bunch of others .... not a fun time for anyone (no I didn't make that mistake, but I almost did).

RJ Skerry-Ryan (rryan)
tags: added: m4a plugin
RJ Skerry-Ryan (rryan)
Changed in mixxx:
importance: Undecided → Critical
tags: added: linux
Changed in mixxx:
milestone: none → 1.10.0
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: New → Confirmed
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

This isn't release blocking since it only affects people who build mixxx themselves.

Changed in mixxx:
milestone: 1.10.0 → 1.10.1
RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: 1.10.1 → none
tags: added: aac
tags: added: faad
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Issue has been reported for Ubuntu 11.04 which is no longer supported. I think we should close this bug now.

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

Won't fix for 1.12

I consider this issue fixed for master = current development branch. The revised SoundSourceM4A plugin has proven to be rock stable now, even when decoding malformed/corrupt files. I've collected and tested many corrupt files, but not a single one is able to crash Mixxx. Playback just continues with silence like for other corrupt files.

Changed in mixxx:
status: Confirmed → Fix Committed
RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
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/5918

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.