[MPlayer-dev-eng] [PATCH] liba52/parse.c: avoid dirty hack on mingw32
Zuxy Meng
zuxy.meng at gmail.com
Thu Nov 2 02:20:40 CET 2006
Hi,
2006/11/1, Emanuele Giaquinta <e.giaquinta at glauco.it>:
> > Since libavutil is now mandatory, we need this hack no more when
> > MEMALIGN_HACK is defined.
>
> If I understand correctly, the problem is that memalign is bogus on
> MINGW, but since memalign is present MEMALIGN_HACK is not defined so
> your patch won't work. What about this one instead?
>
> --
> Emanuele Giaquinta
>
>
> Index: parse.c
> ===================================================================
> --- parse.c (revision 20577)
> +++ parse.c (working copy)
> @@ -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;
>
> - 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;
> - }
> + state->samples = av_malloc(256 * 12 * sizeof (sample_t));
> +#else
> + state->samples = memalign (16, 256 * 12 * sizeof (sample_t));
> #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);
> }
Surely nicer.:-)
--
Zuxy
Beauty is truth,
While truth is beauty.
PGP KeyID: E8555ED6
More information about the MPlayer-dev-eng
mailing list