Mercurial > mplayer.hg
comparison liba52/liba52_changes.diff @ 21491:212cf6625a47
update local diff after r20779
author | gpoirier |
---|---|
date | Tue, 05 Dec 2006 07:14:05 +0000 |
parents | 87dddfc314fd |
children | 49a433e2e78f |
comparison
equal
deleted
inserted
replaced
21490:033d3244e4fd | 21491:212cf6625a47 |
---|---|
2387 +/* PPC accelerations */ | 2387 +/* PPC accelerations */ |
2388 +#define MM_ACCEL_PPC_ALTIVEC 0x00010000 | 2388 +#define MM_ACCEL_PPC_ALTIVEC 0x00010000 |
2389 | 2389 |
2390 uint32_t mm_accel (void); | 2390 uint32_t mm_accel (void); |
2391 | 2391 |
2392 --- liba52/parse.c 2006-06-12 15:05:07.000000000 +0200 | 2392 --- liba52/parse.c 2006-12-05 08:08:01.000000000 +0100 |
2393 +++ liba52/parse.c 2006-06-12 14:51:33.000000000 +0200 | 2393 +++ liba52/parse.c 2006-12-05 08:08:44.000000000 +0100 |
2394 @@ -24,6 +28,7 @@ | 2394 @@ -28,6 +28,7 @@ |
2395 #include "config.h" | 2395 #include "config.h" |
2396 | 2396 |
2397 #include <stdlib.h> | 2397 #include <stdlib.h> |
2398 +#include <stdio.h> | 2398 +#include <stdio.h> |
2399 #include <string.h> | 2399 #include <string.h> |
2400 #include <inttypes.h> | 2400 #include <inttypes.h> |
2401 | 2401 |
2402 @@ -31,13 +36,11 @@ | 2402 @@ -35,13 +36,12 @@ |
2403 #include "a52_internal.h" | 2403 #include "a52_internal.h" |
2404 #include "bitstream.h" | 2404 #include "bitstream.h" |
2405 #include "tables.h" | 2405 #include "tables.h" |
2406 +#include "mm_accel.h" | 2406 +#include "mm_accel.h" |
2407 +#include "libavutil/avutil.h" | |
2407 | 2408 |
2408 #ifdef HAVE_MEMALIGN | 2409 #ifdef HAVE_MEMALIGN |
2409 /* some systems have memalign() but no declaration for it */ | 2410 /* some systems have memalign() but no declaration for it */ |
2410 void * memalign (size_t align, size_t size); | 2411 void * memalign (size_t align, size_t size); |
2411 -#else | 2412 -#else |
2412 -/* assume malloc alignment is sufficient */ | 2413 -/* assume malloc alignment is sufficient */ |
2413 -#define memalign(align,size) malloc (size) | 2414 -#define memalign(align,size) malloc (size) |
2414 #endif | 2415 #endif |
2415 | 2416 |
2416 typedef struct { | 2417 typedef struct { |
2417 @@ -61,6 +64,21 @@ | 2418 @@ -64,7 +64,16 @@ |
2419 if (state == NULL) | |
2418 return NULL; | 2420 return NULL; |
2419 | 2421 |
2422 +#if defined(__MINGW32__) && defined(HAVE_SSE) | |
2423 + state->samples = av_malloc(256 * 12 * sizeof (sample_t)); | |
2424 +#else | |
2420 state->samples = memalign (16, 256 * 12 * sizeof (sample_t)); | 2425 state->samples = memalign (16, 256 * 12 * sizeof (sample_t)); |
2421 +#if defined(__MINGW32__) && defined(HAVE_SSE) | |
2422 + for(i=0;i<10;i++){ | |
2423 + if((int)state->samples%16){ | |
2424 + sample_t* samplestmp=malloc(256 * 12 * sizeof (sample_t)); | |
2425 + free(state->samples); | |
2426 + state->samples = samplestmp; | |
2427 + } | |
2428 + else break; | |
2429 + } | |
2430 +#endif | 2426 +#endif |
2431 + if(((int)state->samples%16) && (mm_accel&MM_ACCEL_X86_SSE)){ | 2427 + if(((int)state->samples%16) && (mm_accel&MM_ACCEL_X86_SSE)){ |
2432 + mm_accel &=~MM_ACCEL_X86_SSE; | 2428 + mm_accel &=~MM_ACCEL_X86_SSE; |
2433 + fprintf(stderr, "liba52: unable to get 16 byte aligned memory disabling usage of SSE instructions\n"); | 2429 + fprintf(stderr, "liba52: unable to get 16 byte aligned memory disabling usage of SSE instructions\n"); |
2434 + } | 2430 + } |
2435 + | 2431 + |
2436 if (state->samples == NULL) { | 2432 if (state->samples == NULL) { |
2437 free (state); | 2433 free (state); |
2438 return NULL; | 2434 return NULL; |
2439 @@ -74,6 +92,7 @@ | 2435 @@ -78,6 +87,7 @@ |
2440 state->lfsr_state = 1; | 2436 state->lfsr_state = 1; |
2441 | 2437 |
2442 a52_imdct_init (mm_accel); | 2438 a52_imdct_init (mm_accel); |
2443 + downmix_accel_init(mm_accel); | 2439 + downmix_accel_init(mm_accel); |
2444 | 2440 |
2445 return state; | 2441 return state; |
2446 } | 2442 } |
2447 @@ -141,7 +160,7 @@ | 2443 @@ -145,7 +155,7 @@ |
2448 state->acmod = acmod = buf[6] >> 5; | 2444 state->acmod = acmod = buf[6] >> 5; |
2449 | 2445 |
2450 a52_bitstream_set_ptr (state, buf + 6); | 2446 a52_bitstream_set_ptr (state, buf + 6); |
2451 - bitstream_get (state, 3); /* skip acmod we already parsed */ | 2447 - bitstream_get (state, 3); /* skip acmod we already parsed */ |
2452 + bitstream_skip (state, 3); /* skip acmod we already parsed */ | 2448 + bitstream_skip (state, 3); /* skip acmod we already parsed */ |
2453 | 2449 |
2454 if ((acmod == 2) && (bitstream_get (state, 2) == 2)) /* dsurmod */ | 2450 if ((acmod == 2) && (bitstream_get (state, 2) == 2)) /* dsurmod */ |
2455 acmod = A52_DOLBY; | 2451 acmod = A52_DOLBY; |
2456 @@ -172,28 +191,28 @@ | 2452 @@ -176,28 +186,28 @@ |
2457 | 2453 |
2458 chaninfo = !acmod; | 2454 chaninfo = !acmod; |
2459 do { | 2455 do { |
2460 - bitstream_get (state, 5); /* dialnorm */ | 2456 - bitstream_get (state, 5); /* dialnorm */ |
2461 + bitstream_skip (state, 5); /* dialnorm */ | 2457 + bitstream_skip (state, 5); /* dialnorm */ |
2488 - bitstream_get (state, 8); /* addbsi */ | 2484 - bitstream_get (state, 8); /* addbsi */ |
2489 + bitstream_skip (state, 8); /* addbsi */ | 2485 + bitstream_skip (state, 8); /* addbsi */ |
2490 } while (addbsil--); | 2486 } while (addbsil--); |
2491 } | 2487 } |
2492 | 2488 |
2493 @@ -680,7 +699,7 @@ | 2489 @@ -684,7 +694,7 @@ |
2494 state->fbw_expbap[i].exp[0], | 2490 state->fbw_expbap[i].exp[0], |
2495 state->fbw_expbap[i].exp + 1)) | 2491 state->fbw_expbap[i].exp + 1)) |
2496 return 1; | 2492 return 1; |
2497 - bitstream_get (state, 2); /* gainrng */ | 2493 - bitstream_get (state, 2); /* gainrng */ |
2498 + bitstream_skip (state, 2); /* gainrng */ | 2494 + bitstream_skip (state, 2); /* gainrng */ |
2499 } | 2495 } |
2500 if (lfeexpstr != EXP_REUSE) { | 2496 if (lfeexpstr != EXP_REUSE) { |
2501 do_bit_alloc |= 32; | 2497 do_bit_alloc |= 32; |
2502 @@ -755,7 +774,7 @@ | 2498 @@ -759,7 +769,7 @@ |
2503 if (bitstream_get (state, 1)) { /* skiple */ | 2499 if (bitstream_get (state, 1)) { /* skiple */ |
2504 i = bitstream_get (state, 9); /* skipl */ | 2500 i = bitstream_get (state, 9); /* skipl */ |
2505 while (i--) | 2501 while (i--) |
2506 - bitstream_get (state, 8); | 2502 - bitstream_get (state, 8); |
2507 + bitstream_skip (state, 8); | 2503 + bitstream_skip (state, 8); |
2508 } | 2504 } |
2509 | 2505 |
2510 samples = state->samples; | 2506 samples = state->samples; |
2507 @@ -900,6 +910,10 @@ | |
2508 | |
2509 void a52_free (a52_state_t * state) | |
2510 { | |
2511 - free (state->samples); | |
2512 +#if defined(__MINGW32__) && defined(HAVE_SSE) | |
2513 + av_free (state->samples); | |
2514 +#else | |
2515 + free (state->samples); | |
2516 +#endif | |
2517 free (state); | |
2518 } |