diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-09-16 21:49:34 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-09-16 21:49:34 +0000 |
commit | d2db0f3bbdc81aae2c316751daf1d53b42a3e6a0 (patch) | |
tree | e9f4a94547ada41ea13445185a20305378d6c0bd /src/libffmpeg/libavcodec/mem.c | |
parent | d35f836384d9fa164350612ead96362d9cd7b457 (diff) | |
download | xine-lib-d2db0f3bbdc81aae2c316751daf1d53b42a3e6a0.tar.gz xine-lib-d2db0f3bbdc81aae2c316751daf1d53b42a3e6a0.tar.bz2 |
- sync ffmpeg to cvs (sorry Mike it still doesn't decode your teststream --
something must be broken at ffmpeg, also happens with mplayer)
- added priority sorted lists, now autoprobing should work again.
- fixed infinite loop in plugin loader.
obs: latest ffmpeg contains ppc optimizations, someone will have to enable these
though.
CVS patchset: 2676
CVS date: 2002/09/16 21:49:34
Diffstat (limited to 'src/libffmpeg/libavcodec/mem.c')
-rw-r--r-- | src/libffmpeg/libavcodec/mem.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/libffmpeg/libavcodec/mem.c b/src/libffmpeg/libavcodec/mem.c index 113e285e7..5799c0774 100644 --- a/src/libffmpeg/libavcodec/mem.c +++ b/src/libffmpeg/libavcodec/mem.c @@ -29,8 +29,8 @@ void *av_malloc(int size) { void *ptr; -#if defined ( ARCH_X86 ) && defined ( HAVE_MEMALIGN ) && 0 - ptr = memalign(64,size); +#if defined (HAVE_MEMALIGN) + ptr = memalign(16,size); /* Why 64? Indeed, we should align it: on 4 for 386 @@ -40,11 +40,29 @@ void *av_malloc(int size) Because L1 and L2 caches are aligned on those values. But I don't want to code such logic here! */ + /* Why 16? + because some cpus need alignment, for example SSE2 on P4, & most RISC cpus + it will just trigger an exception and the unaligned load will be done in the + exception handler or it will just segfault (SSE2 on P4) + Why not larger? because i didnt see a difference in benchmarks ... + */ + /* benchmarks with p3 + memalign(64)+1 3071,3051,3032 + memalign(64)+2 3051,3032,3041 + memalign(64)+4 2911,2896,2915 + memalign(64)+8 2545,2554,2550 + memalign(64)+16 2543,2572,2563 + memalign(64)+32 2546,2545,2571 + memalign(64)+64 2570,2533,2558 + + btw, malloc seems to do 8 byte alignment by default here + */ #else ptr = malloc(size); #endif if (!ptr) return NULL; +//fprintf(stderr, "%X %d\n", (int)ptr, size); /* NOTE: this memset should not be present */ memset(ptr, 0, size); return ptr; |