openmohaa/code/libmad/TODO
smallmodel eac8580f64
Add libmad 0.16.4
This new version introduces patches against crashes and exploits. CMake is also fully supported and platforms are properly detected so architecture specific optimizations are used.

To use it, USE_SOUND_NEW must be non-zero when configuring the project
2024-07-11 23:04:04 +02:00

69 lines
1.8 KiB
Text

libmad - MPEG audio decoder library
Copyright (C) 2000-2004 Underbit Technologies, Inc.
$Id: TODO,v 1.3 2004/02/05 09:02:39 rob Exp $
===============================================================================
libmad:
- more API layers (buffering, PCM samples, dithering, etc.)
- x86 performance optimization compiler flags
- function documentation, general docs
- finish async API
- parse system streams?
- MPEG-2 MC, AAC?
- logarithmic multiplication?
- multiple frame decoding for better locality of reference?
- frame serial numbers, Layer III frame continuity checks
fixed.h:
- experiment with FPM_INTEL:
# if 1
# define mad_f_scale64(hi, lo) \
({ mad_fixed_t __result; \
asm ("shrl %3,%1\n\t" \
"shll %4,%2\n\t" \
"orl %2,%1" \
: "=rm" (__result) \
: "0" (lo), "r" (hi), \
"I" (MAD_F_SCALEBITS), "I" (32 - MAD_F_SCALEBITS) \
: "cc"); \
__result; \
})
# else
# define mad_f_scale64(hi, lo) \
({ mad_fixed64hi_t __hi_; \
mad_fixed64lo_t __lo_; \
mad_fixed_t __result; \
asm ("sall %2,%1" \
: "=r" (__hi_) \
: "0" (hi), "I" (32 - MAD_F_SCALEBITS) \
: "cc"); \
asm ("shrl %2,%1" \
: "=r" (__lo_) \
: "0" (lo), "I" (MAD_F_SCALEBITS) \
: "cc"); \
asm ("orl %1,%2" \
: "=rm" (__result) \
: "r" (__hi_), "0" (__lo_) \
: "cc"); \
__result; \
})
# endif
libmad Layer I:
- check frame length sanity
libmad Layer II:
- check frame length sanity
libmad Layer III:
- circular buffer
- optimize zero_part from Huffman decoding throughout
- MPEG 2.5 8000 Hz sf bands? mixed blocks?
- stereo->mono conversion optimization?
- enable frame-at-a-time decoding
- improve portability of huffman.c