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