summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libmad/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libmad/TODO')
-rw-r--r--lib/rbcodec/codecs/libmad/TODO69
1 files changed, 69 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libmad/TODO b/lib/rbcodec/codecs/libmad/TODO
new file mode 100644
index 0000000000..a397655c6c
--- /dev/null
+++ b/lib/rbcodec/codecs/libmad/TODO
@@ -0,0 +1,69 @@
1
2 libmad - MPEG audio decoder library
3 Copyright (C) 2000-2004 Underbit Technologies, Inc.
4
5 $Id$
6
7===============================================================================
8
9libmad:
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
19
20fixed.h:
21 - experiment with FPM_INTEL:
22
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
55
56libmad Layer I:
57 - check frame length sanity
58
59libmad Layer II:
60 - check frame length sanity
61
62libmad 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
69