summaryrefslogtreecommitdiffstats
path: root/liba52
diff options
context:
space:
mode:
authorfaust3 <faust3@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-04-01 10:35:30 +0000
committerfaust3 <faust3@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-04-01 10:35:30 +0000
commit3076975c63c8c3e3b38b0fae5edbb55d808cd931 (patch)
treec7a7203c382731058b2cd42695f3dbf7e1c06ade /liba52
parent971bb1dd0fe25b0f7c2ffde99d2697af9fae3f63 (diff)
downloadmpv-3076975c63c8c3e3b38b0fae5edbb55d808cd931.tar.bz2
mpv-3076975c63c8c3e3b38b0fae5edbb55d808cd931.tar.xz
although this SSE fix is an ugly hack it seems to work fine for me
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12089 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'liba52')
-rw-r--r--liba52/parse.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/liba52/parse.c b/liba52/parse.c
index d3557019d7..4ef47b38fa 100644
--- a/liba52/parse.c
+++ b/liba52/parse.c
@@ -57,6 +57,19 @@ sample_t * a52_init (uint32_t mm_accel)
downmix_accel_init(mm_accel);
samples = memalign (16, 256 * 12 * sizeof (sample_t));
+#if defined(__MINGW32__) && defined(HAVE_SSE)
+ for(i=0;i<10;i++){
+ if((int)samples%16){
+ sample_t* samplestmp=malloc(256 * 12 * sizeof (sample_t));
+ free(samples);
+ samples = samplestmp;
+ }
+ else break;
+ }
+ if((int)samples%16){
+ printf("unable to get 16 bit aligned memory => expect crashes when using SSE instructions\n");
+ }
+#endif
if (samples == NULL)
return NULL;