[Ffmpeg-devel] random crashes decoding MP3s
Jacob Meuser
jakemsr
Mon Apr 3 14:20:27 CEST 2006
On Mon, Apr 03, 2006 at 08:50:03AM +0100, M?ns Rullg?rd wrote:
> Jacob Meuser <jakemsr at jakemsr.com> writes:
>
> > On Sun, Apr 02, 2006 at 03:09:07AM -0400, Rich Felker wrote:
> >> On Sat, Apr 01, 2006 at 08:31:43PM -0800, Jacob Meuser wrote:
> >> > > > I tried to build ffmpeg on OpenBSD myself, and it turns out it's not
> >> > > > as easy as it should be. What exactly have you done to your source to
> >> > > > make it build?
> >> > >
> >> > > OK, now it builds, but only with --enable-memalign-hack. Did you use
> >> > > this option or disable mmx/sse? OpenBSD appears to be missing
> >> > > memalign() so one or the other is required. Forcing mmx/sse without a
> >> > > proper memalign() can very well result in random crashes.
> >> >
> >> > yes, there is no memlign() on OpenBSD.
> >> >
> >> > quoting malloc(3)
> >> >
> >> > The allocated space is suitably aligned (after possible
> >> > pointer coercion) for storage of any type of object. If the
> >> > space is of pagesize or larger, the memory returned will be
> >> > page-aligned.
> >>
> >> This text is not meaningful to what we're talking about. ISO C
> >> requires that the return value of malloc be "suitably aligned for
> >> storage of any type of object", but "object" is defined as in ISO C,
> >> and this has nothing to do with the alignment requirements of various
> >> asm constructs. A true memalign is needed..
> >
> > I have always disabled MEMALIGN_HACK and never had any problems.
>
> Maybe OpenBSD malloc() aligns more than is required.
not sure what you mean here.
but anyway, that wouldn't explain why FFmpeg sources from a year ago
work consistently, but current ones don't.
it looks like the only change in huffman_decode() that could matter
was the get_vlc -> get_vlc2 change. this is consistent with gdb
giving line 1656 as the crash point, no?
hmmm, that seems to be the problem. putting the old get_vlc() back
into bitstream.h and changing the get_vlc2() to get_vlc() on line
1653 of mpegaudiodec.c make the crashes stop.
--
<jakemsr at jakemsr.com>
More information about the ffmpeg-devel
mailing list