Libmp4v2 v.18.104.22.168 is miscompiled with GCC 4.4, at least on AMD64, and as a result it fails to open AAC files.
Steps to Reproduce:
1. Install GCC 4.4 and switch to it
2. Emerge libmp4v2, faad2 and cmus
3. Try to play any AAC file in cmus, or add it to a playlist
The file isn't added to the playlist, and you get an error message when attempting to play it
The file should play normally
A patch for libmp4v2 and the ebuild is included.
It seems that a 'hack' used by the developers of libmp4v2 doesn't work any more when compiled with GCC 4.4. There seems to be little to no performance benefit from it, and the 'normal' version was there, but compiled out - so I simply reverted to the 'normal' version.
AAC files play as expected after the fix.
This is the first time I report a bug here, so if I've done something incorrectly, please tell me.
Created attachment 196358 [details, diff]
A patch that fixes the problem
Let me guess: somewhere in the build.log
there's something like
"... does break strict aliasing" -
a warning, that in-tree versions of portage
don't catch yet (though it's supposed to be fix in cvs).
No, I don't see any such warnings, although there should be. The optimization level was set to -Os in both cases.
dunno, try 1.9.0 (it's still masked, the package got a new upstream)
(In reply to comment #4)
> dunno, try 1.9.0 (it's still masked, the package got a new upstream)
unmasked now into ~arch
(In reply to comment #0)
> 1. Install GCC 4.4 and switch to it
> 2. Emerge libmp4v2, faad2 and cmus
> 3. Try to play any AAC file in cmus, or add it to a playlist
I've just tried this. Following file,
01 Cowboys From Hell.m4a: ISO Media, MPEG v4 system, iTunes AAC-LC
Is playing fine here. Start cmus, hit "5" to fileview, hit "y" to add files, hit "3" for playlist and play a song.
And the code isn't in the include anymore.
Closing as FIXED (by 1.9.0) -- Thanks for reporting.