Fix some greedy sed changes in imported code. Also provide a sys/types.h for compatib...
[kugel-rb.git] / apps / codecs / libmad / TODO
bloba397655c6ca0e9551f52932b130ad6c217bdc26f
2  libmad - MPEG audio decoder library
3  Copyright (C) 2000-2004 Underbit Technologies, Inc.
5  $Id$
7 ===============================================================================
9 libmad:
10   - more API layers (buffering, PCM samples, dithering, etc.)
11   - x86 performance optimization compiler flags
12   - function documentation, general docs
13   - finish async API
14   - parse system streams?
15   - MPEG-2 MC, AAC?
16   - logarithmic multiplication?
17   - multiple frame decoding for better locality of reference?
18   - frame serial numbers, Layer III frame continuity checks
20 fixed.h:
21   - experiment with FPM_INTEL:
23 # if 1
24 #    define mad_f_scale64(hi, lo)  \
25     ({ mad_fixed_t __result;  \
26        asm ("shrl %3,%1\n\t"  \
27             "shll %4,%2\n\t"  \
28             "orl %2,%1"  \
29             : "=rm" (__result)  \
30             : "0" (lo), "r" (hi),  \
31               "I" (MAD_F_SCALEBITS), "I" (32 - MAD_F_SCALEBITS)  \
32             : "cc");  \
33        __result;  \
34     })
35 # else
36 #    define mad_f_scale64(hi, lo)  \
37     ({ mad_fixed64hi_t __hi_;  \
38        mad_fixed64lo_t __lo_;  \
39        mad_fixed_t __result;  \
40        asm ("sall %2,%1"  \
41             : "=r" (__hi_)  \
42             : "0" (hi), "I" (32 - MAD_F_SCALEBITS)  \
43             : "cc");  \
44        asm ("shrl %2,%1"  \
45             : "=r" (__lo_)  \
46             : "0" (lo), "I" (MAD_F_SCALEBITS)  \
47             : "cc");  \
48        asm ("orl %1,%2"  \
49             : "=rm" (__result)  \
50             : "r" (__hi_), "0" (__lo_)  \
51             : "cc");  \
52        __result;  \
53     })
54 # endif
56 libmad Layer I:
57   - check frame length sanity
59 libmad Layer II:
60   - check frame length sanity
62 libmad Layer III:
63   - circular buffer
64   - optimize zero_part from Huffman decoding throughout
65   - MPEG 2.5 8000 Hz sf bands? mixed blocks?
66   - stereo->mono conversion optimization?
67   - enable frame-at-a-time decoding
68   - improve portability of huffman.c