annotate src/libmad-0.15.1b/TODO @ 169:223a55898ab9 tip default

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