[MPlayer-users] [BUG] mp3lib/dct64_sse.c

Yuriy Kaminskiy yumkam at mail.ru
Wed Jul 13 12:10:42 CEST 2011


Carl Eugen Hoyos wrote:
> luigi curzi <tremst <at> gmail.com> writes:
> 
>> gcc -v
> 
>> version 4.6.1 (Debian 4.6.1-1)
> 
> Use a working compiler (I recommend gcc 4.5.3).
> 
>> Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
>> dec_audio: Allocating 8192 + 65536 = 73728 bytes for output buffer.
>> MPEG 1.0 layer III, 192 kbit/s, 44100 Hz joint-stereo
>> AUDIO: 44100 Hz, 2 ch, s16le, 192.0 kbit/13.61% (ratio: 24000->176400)
>> Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I,
>> II, III)
> 
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0829dd80 in dct64_sse (out0=0x90903ea, out1=0x90901c8, c=0x9093700)
>> at mp3lib/dct64_sse.c:34 34                  __asm__(
> 
> Given that mpg123 is an external decoder, I don't understand this output though.

There were dct64_sse symbol in libmpg123.
It should be hidden in shared library since ages:
=== mpg123/src/libmpg123/Makefile.am ===
libmpg123_la_LDFLAGS = -no-undefined -version-info @LIBMPG123_VERSION@
-export-symbols-regex '^mpg123_'
===
However, somehow debian package libmpg123-0_1.12.1-3.2 (from wheezy/sid) seems
broken (broken version of libtool?), and export everything.
So, mplayer's dct64_sse overrides libmpg123.so.0, with obvious consequences.

FWIW, libmpg123-0_1.12.1-3 (from stable/squeeze) and 1.4.3-4lenny1 (from lenny)
are correctly built (hides internal symbols).

Conclusion: not mplayer problem, broken mpg123 package, please to debian mpg123
package maintainer.

PS For now, I think downgrading/pinning libmpg123-{0,dev} to version from
stable/squeeze should help (and should not break anything).

PPS and in mpg123-1.13.0+, all internal symbols was renamed to INT123_*.



More information about the MPlayer-users mailing list