annotate src/libmad-0.15.1b/TODO @ 0:c7265573341e

Import initial set of sources
author Chris Cannam
date Mon, 18 Mar 2013 14:12:14 +0000
parents
children
rev   line source
Chris@0 1
Chris@0 2 libmad - MPEG audio decoder library
Chris@0 3 Copyright (C) 2000-2004 Underbit Technologies, Inc.
Chris@0 4
Chris@0 5 $Id: TODO,v 1.3 2004/02/05 09:02:39 rob Exp $
Chris@0 6
Chris@0 7 ===============================================================================
Chris@0 8
Chris@0 9 libmad:
Chris@0 10 - more API layers (buffering, PCM samples, dithering, etc.)
Chris@0 11 - x86 performance optimization compiler flags
Chris@0 12 - function documentation, general docs
Chris@0 13 - finish async API
Chris@0 14 - parse system streams?
Chris@0 15 - MPEG-2 MC, AAC?
Chris@0 16 - logarithmic multiplication?
Chris@0 17 - multiple frame decoding for better locality of reference?
Chris@0 18 - frame serial numbers, Layer III frame continuity checks
Chris@0 19
Chris@0 20 fixed.h:
Chris@0 21 - experiment with FPM_INTEL:
Chris@0 22
Chris@0 23 # if 1
Chris@0 24 # define mad_f_scale64(hi, lo) \
Chris@0 25 ({ mad_fixed_t __result; \
Chris@0 26 asm ("shrl %3,%1\n\t" \
Chris@0 27 "shll %4,%2\n\t" \
Chris@0 28 "orl %2,%1" \
Chris@0 29 : "=rm" (__result) \
Chris@0 30 : "0" (lo), "r" (hi), \
Chris@0 31 "I" (MAD_F_SCALEBITS), "I" (32 - MAD_F_SCALEBITS) \
Chris@0 32 : "cc"); \
Chris@0 33 __result; \
Chris@0 34 })
Chris@0 35 # else
Chris@0 36 # define mad_f_scale64(hi, lo) \
Chris@0 37 ({ mad_fixed64hi_t __hi_; \
Chris@0 38 mad_fixed64lo_t __lo_; \
Chris@0 39 mad_fixed_t __result; \
Chris@0 40 asm ("sall %2,%1" \
Chris@0 41 : "=r" (__hi_) \
Chris@0 42 : "0" (hi), "I" (32 - MAD_F_SCALEBITS) \
Chris@0 43 : "cc"); \
Chris@0 44 asm ("shrl %2,%1" \
Chris@0 45 : "=r" (__lo_) \
Chris@0 46 : "0" (lo), "I" (MAD_F_SCALEBITS) \
Chris@0 47 : "cc"); \
Chris@0 48 asm ("orl %1,%2" \
Chris@0 49 : "=rm" (__result) \
Chris@0 50 : "r" (__hi_), "0" (__lo_) \
Chris@0 51 : "cc"); \
Chris@0 52 __result; \
Chris@0 53 })
Chris@0 54 # endif
Chris@0 55
Chris@0 56 libmad Layer I:
Chris@0 57 - check frame length sanity
Chris@0 58
Chris@0 59 libmad Layer II:
Chris@0 60 - check frame length sanity
Chris@0 61
Chris@0 62 libmad Layer III:
Chris@0 63 - circular buffer
Chris@0 64 - optimize zero_part from Huffman decoding throughout
Chris@0 65 - MPEG 2.5 8000 Hz sf bands? mixed blocks?
Chris@0 66 - stereo->mono conversion optimization?
Chris@0 67 - enable frame-at-a-time decoding
Chris@0 68 - improve portability of huffman.c
Chris@0 69