On Wed, 14 Jan 2004, Ray Cole wrote:
> I had this issue with the CVS version as well. I had to make a change to
> utils/cpu_accel.c to use memalign rather than posix_memalign in bufalloc(). It now
> looks like this:
Have you done a 'cvs update' recently? There was code added to
check the alignment of the buffer that posix_memalign() returned
and if the alignment was not correct then to try allocating the
buffer with memalign().
Look in cpu_accel.c - you should see something like this:
if (posix_memalign( &buf, simd_alignment, size))
buf = memalign(pgsize, size);
if (buf && ((int)buf & (simd_alignment - 1)))
{
free(buf);
buf = memalign(pgsize, size);
}
If you don't see that then it's time for 'cvs update'. If you do
see that and it's not working it's a bug and needs to be fixed.
> I would assume this is caused by some glibc bug. I'm using Red Hat 8.0. I don't
> think I've ever upgraded my glib version. I appear to have versions 1.2.10-8 and
> 2.3.2-4.80.
Yes, it is a glibc bug. glibc-2.2.5 has posix_memalign() but it
does not honor the alignment request and can return 8 instead of 16
or 64 byte aligned buffers. glibc-2.2.4 is even worse - posix_memalign
exists but always returns an error.
The bug's never been reported to happen though (that I know of) with
glibc-2.3.x (I've never seen it happen on Suse 8.2 or 9.0).
If you still get the message "could not allocate %d bytes aligned ..."
then neither posix_memalign nor memalign is working correctly and
poor ol' mpeg2enc has no choice but to bail out.
Cheers,
Steven Schultz
-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
Mjpeg-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mjpeg-users