# HG changeset patch # User gpoirier # Date 1162997316 0 # Node ID b6bd2e6fa76ddade65b8149b3cca8a38387b503e # Parent 6cde789dd55498a003a433973352fefdafe277dc symplify aligned memory allocation on mingw32 by using ffmpeg's av_malloc/av_free Patch by Emanuele Giaquinta % e P giaquinta A glauco P it % Original thread: Subject: [MPlayer-dev-eng] [PATCH] liba52/parse.c: avoid dirty hack on mingw32 Date: 10/25/2006 03:19 AM diff -r 6cde789dd554 -r b6bd2e6fa76d liba52/parse.c --- a/liba52/parse.c Wed Nov 08 13:05:10 2006 +0000 +++ b/liba52/parse.c Wed Nov 08 14:48:36 2006 +0000 @@ -37,6 +37,7 @@ #include "bitstream.h" #include "tables.h" #include "mm_accel.h" +#include "libavutil/avutil.h" #ifdef HAVE_MEMALIGN /* some systems have memalign() but no declaration for it */ @@ -63,16 +64,10 @@ if (state == NULL) return NULL; +#if defined(__MINGW32__) && defined(HAVE_SSE) + state->samples = av_malloc(256 * 12 * sizeof (sample_t)); +#else state->samples = memalign (16, 256 * 12 * sizeof (sample_t)); -#if defined(__MINGW32__) && defined(HAVE_SSE) - for(i=0;i<10;i++){ - if((int)state->samples%16){ - sample_t* samplestmp=malloc(256 * 12 * sizeof (sample_t)); - free(state->samples); - state->samples = samplestmp; - } - else break; - } #endif if(((int)state->samples%16) && (mm_accel&MM_ACCEL_X86_SSE)){ mm_accel &=~MM_ACCEL_X86_SSE; @@ -915,6 +910,10 @@ void a52_free (a52_state_t * state) { - free (state->samples); +#if defined(__MINGW32__) && defined(HAVE_SSE) + av_free (state->samples); +#else + free (state->samples); +#endif free (state); }