we are rewriting the plugin loading stuff for freeamp2 in order to make
things more efficiaent and reduce the overall memory footprint. right
now every plugin is loaded at the beginning of the program and it stays
in memory whether you use it or not. the next version of the plugin
manager will only load plugins on demand hopefully saving on some memory
usage. this brings me to my question which is how we should select
plugins for use inside the player. currently the process involves
querying each plugin to see if it handles a certain transfer protocol in
the case of the input plugins or a certain datastream in the case of the
decoders. if the goal is to keep these plugins out of memory until they
are really needed then this process needs to change. plugins need to
"register" themselves once upon startup. i have noticed that netscape
avoids the overhead of loading shared objects at startup by placing
registration info inside resources associated with the shared objects.
While this allows them to load faster as the beginning it is a little
obscure. i still think loading the plugins and sending them a
registration message would be the best way to handle this and then
unload the plugins until you need them. how should decoders determine if
they handle a bitstream though? it sucks to have to use file
extensions... should decoders register themselves as handling mimetypes?
i dunno just brainstorming out in the open. putting the "open" into
"Open Source"... <grin>


Reply via email to