diff options
Diffstat (limited to 'apps/plugins/mpegplayer/decode.c')
-rw-r--r-- | apps/plugins/mpegplayer/decode.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/apps/plugins/mpegplayer/decode.c b/apps/plugins/mpegplayer/decode.c index 299abc9663..ca3d29a952 100644 --- a/apps/plugins/mpegplayer/decode.c +++ b/apps/plugins/mpegplayer/decode.c | |||
@@ -401,6 +401,12 @@ void mpeg2_reset (mpeg2dec_t * mpeg2dec, int full_reset) | |||
401 | 401 | ||
402 | } | 402 | } |
403 | 403 | ||
404 | #ifdef CPU_COLDFIRE | ||
405 | /* twice as large as on other targets because coldfire uses | ||
406 | * a secondary, transposed buffer for optimisation */ | ||
407 | static int16_t static_dct_block[128] IBSS_ATTR ATTR_ALIGN(16); | ||
408 | #endif | ||
409 | |||
404 | mpeg2dec_t * mpeg2_init (void) | 410 | mpeg2dec_t * mpeg2_init (void) |
405 | { | 411 | { |
406 | mpeg2dec_t * mpeg2dec; | 412 | mpeg2dec_t * mpeg2dec; |
@@ -410,7 +416,11 @@ mpeg2dec_t * mpeg2_init (void) | |||
410 | mpeg2dec = (mpeg2dec_t *) mpeg2_malloc (sizeof (mpeg2dec_t), | 416 | mpeg2dec = (mpeg2dec_t *) mpeg2_malloc (sizeof (mpeg2dec_t), |
411 | MPEG2_ALLOC_MPEG2DEC); | 417 | MPEG2_ALLOC_MPEG2DEC); |
412 | if (mpeg2dec == NULL) | 418 | if (mpeg2dec == NULL) |
413 | return NULL; | 419 | return NULL; |
420 | |||
421 | #ifdef CPU_COLDFIRE | ||
422 | mpeg2dec->decoder.DCTblock = static_dct_block; | ||
423 | #endif | ||
414 | 424 | ||
415 | rb->memset (mpeg2dec->decoder.DCTblock, 0, 64 * sizeof (int16_t)); | 425 | rb->memset (mpeg2dec->decoder.DCTblock, 0, 64 * sizeof (int16_t)); |
416 | rb->memset (mpeg2dec->quantizer_matrix, 0, 4 * 64 * sizeof (uint8_t)); | 426 | rb->memset (mpeg2dec->quantizer_matrix, 0, 4 * 64 * sizeof (uint8_t)); |