New stuff: Consider making mixer buffer float/double ... at least as long as you use a floating point volume factor!
This could even be faster... plus: consider optimizing for vol==1 ... maybe.


This file is a bit out of date... Most stuff is there.

A really basic feature that should be present is the control interface via named pipes.
You can have nice authentication though file permissions that way.
It's also not difficult to code; I did it for mpg123.

Another interesting feature would be to be able to register as output device... grabbing the audio data.
Have to think there about some possible extensible buffer thread (or something) that prevents the main playback from halting because of the data sink is sleeping.


Stuff for 1.1:


Clean up outputs
----------------

Make code nice. Make full use of data->position or leave it completely. Multithreading and Multibuffering.
Second is addressed on a generic output-channel level; the main proof of it being good will be a working Tru64/MME.

Heh, the Tru64/MME is (was) working in principle but not really in the end due to the sound system itself ticking... but I have to check that again.
Though another audio player showed the same problem, I now owe it the respect to check if my too early buffer swap played a role.

****


Stuff for 1.1+x


Enhance scripting convenience
-----------------------------

edit script list (not just clear and rebuild)


General EQ
----------

I don't see another player out there that gives me the interface and integrated EQ as mpg123 does... for other formats than mp3 (or other decoders) the code from Andre should provide a built-in equalizer.


****


Stuff for ?


Add suspend mode and unloading
------------------------------

It should be possible to send "suspend" to issue closing of all real-time devices (freeing /dev/dsp). The daemon should sleep then in long intervals until resurrected or better wait for a semaphore - outside action loop to allow a different client to issue the wake.
Related should be a unload/close command for (input) channels (for freeing NFS shares). No idea how to do that with current mpg123 - will it need modification again? Nevertheless, one could just delete the device; a new one will be created on next open, anyway.

Already done is nice inactive sleeping when there is nothing to play (apart from constant nullsound on oss output... ). Everything else would be nasty, of course.


****


Always in mind:


More Input and Output
---------------------

Update: ALSA and MME(Tru64) coming in 1.1.

libaudiofile, ogg, filewriter (wav, mp3), alsa, ...


Optizimize responsiveness
-------------------------

Update: Lag mostly due to OSS buffering; ALSA is faster, but needs more careful buffering on mixplayer's side...

There's a conceptional lag... at least one is able to tune the chunk size on command line.


Hunt down memory leaks!
-----------------------

I had the big hunt a while ago with leaking in the communication process... Besides the vmsize on newer Linux systems running up like crazy, I managed to get the "real" size more to the ground.
Now (December 2005) I again spot slow increase in resident memory (Kilobytes over hours)... One should have an eye on these. Everytime.

