[vlc] Segmentation fault using Tremor
Matthias Kaehlcke
matthias at kaehlcke.net
Thu May 29 10:51:35 CEST 2008
Hi,
I build a VLC binary with vorbis support using Tremor. When i try to
play a vorbis file vlc terminates with a segmentation fault in the
tremor library. Playing the same file with the cmus player
(http://cmus.sourceforge.net/) with a Tremor patch
(http://lists.debian.org/debian-arm/2006/11/msg00084.html) succeeds,
so i suppose the problem is VLC rather than Tremor.
The segmentation fault occurs in the function oggpack_readinit() in
the marked line:
void oggpack_readinit(oggpack_buffer *b,ogg_reference *r){
memset(b,0,sizeof(*b));
b->tail=b->head=r;
b->count=0;
-> b->headptr=b->head->buffer->data+b->head->begin;
b->headend=b->head->length;
_span(b);
}
according to gdb b->head->buffer contains an invalid address:
(gdb) p *b->head
$6 = {buffer = 0x726f7601, begin = 7563618, length = 33554432, next =
0xac44}
(gdb) p *b->head->buffer
Cannot access memory at address 0x726f7601
The VLC version is 0.8.6f with the current version of Tremor from the
subversion repository. The development and target box is Ubuntu Gutsy
Gibbon with gcc v4.1.3.
I used the following configure command to build VLC:
./configure -disable-sout --disable-httpd --disable-vlm
--disable-growl --disable-notify --disable-dvdnav
--disable-smb--disable-dvbpsi --disable-gnomevfs --disable-libcdio
--disable-libcddb --disable-cdda --disable-vcd --disable-screen
--disable-mkv --disable-mod --disable-mpc --disable-ffmpeg
--disable-libtar --disable-a52 --disable-dts --disable-libmpeg2
--disable-speex --disable-png --disable-x264 --disable-cmml
--disable-x11 --disable-xvideo --disable-glx --disable-xinerama
--disable-opengl --disable-sdl --disable-sdl-image --disable-freetype
--disable-fribidi --disable-libxml2 --disable-fb --disable-wxwidgets
--disable-visual --disable-daap --disable-bonjour --disable-gnutls
--disable-skins2 --disable-vorbis --enable-tremor --enable-ogg
--enable-mad --with-mad=/usr/local/libmad --prefix=/usr/local/vlc
--enable-debug
Tremor was build using the following sequence:
# VLC relies on symbols that aren't (any longer?) exported by Tremor
# add the following lines to Version_script.in in the Tremor source
# directory:
vorbis_synthesis_read;
vorbis_packet_blocksize;
vorbis_block_init;
vorbis_synthesis;
vorbis_dsp_clear;
vorbis_block_clear;
vorbis_synthesis_init;
vorbis_synthesis_blockin;
vorbis_synthesis_headerin;
vorbis_synthesis_pcmout;
./autogen.sh
./configure --prefix=/usr/local/tremor
make
make install
Any idea what could be the problem?
--
Matthias Kaehlcke
Embedded Linux Engineer
Barcelona
The assumption that what currently exists must necessarily
exist is the acid that corrodes all visionary thinking
.''`.
using free software / Debian GNU/Linux | http://debian.org : :' :
`. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `-
More information about the vlc
mailing list