TODO 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. We badly need:
  2. - header reorganization (lots of stuff don't belong to mpg123.h)
  3. - integer type safety - STOP using ints where size_t or at least long would be appropriate (expecially stream readers)
  4. - sprintf -> snprintf (maybe with switch to support ancient libc; or replacement by us)
  5. - rewrite httpget.c; that thing has been a can of bugs for years and I understand why when I look at it (way too many cooks)
  6. - really parse ID3V2 tags instead of skipping; done for RVA values... using the string info (just?) needs some Unicode/Locale handling
  7. - check support for fixed point arithmentic; generic_nofpu seems wo work generally, but resampling does not sound nice
  8. From Nicholas:
  9. - Seperate out MPEG Audio decoder (only) into seperate library
  10. - Allow choice of audio output at runtime, rather than compile time
  11. - Choose processor optimization at runtime, rather than compile time?
  12. From Michael (some time after/around pre-0.59s):
  13. - add CRC check.
  14. - add 'free format stream' support.
  15. - optimize layer2.c:
  16. step_two: fraction as pointer ..
  17. process first channel 0 than channel 1
  18. copy channel 0 to channel 1 for: i >= jsbound
  19. - better frame reader .. especially for layer 3 - DONE by a good deal by Thomas
  20. - MPEG system stream decoder
  21. - check again layer1 !! (Layer-1 support not heavily tested ..)
  22. Problems with Layer1 fl7 reference stream
  23. - Write a special (optimized) 'single channel' decode.
  24. - optimized dct64 for down sampling modes
  25. - native audio support for AIX and DEC
  26. - update manpage
  27. - optimizations for downsampling modes on layer2 and layer1
  28. MORE TODO: (partially done)
  29. ---------------------------
  30. A few notes on how mpg123 tries to select a 'good'
  31. audio encoding and frequency. (not full implemented yet!!)
  32. - mpg123 tries to set the settings you specify on the command line
  33. in the order of its appearence (exclusiv .. no fallback then)
  34. (-r <rate>, --mono, --stereo, --8bit, etc )
  35. - after this, mpg123 tries to set
  36. 1. the number of channels (or fallback to mono if stereo isn't possible)
  37. 2. the audioformat to 16 bit (or fallback to 8bit)
  38. 3. the "best" frequency: (in this order)
  39. - the exact stream frequency or fallback to
  40. - 2:1 frequency or fallback to
  41. - 4:1 frequency or try the
  42. - nearest frequency lower than the frequency of your stream
  43. mpg123 automagically converts the rate.
  44. So, if you think (or even know), that your hardware supports a higher
  45. frequency only with eg. mono,8bit you must force mpg123 to play mono
  46. and 8bit. ("--8bit -m") etc....
  47. If you wanna a constant format eg to output the data to stdout you
  48. must explicit force it with eg: '-r 44100 --stereo'
  49. Else the format will be the format of the mpeg stream.