The new API should provide at least the level of existing functionality. It is also an opportunity to address outstanding issues with the current API. Here are some issues that we should address:
Decoder Preferences
Sometimes there are multiple applicable decoders for a given encoding. In this case, BeOS currently chooses the decoder that is in the user configuration directory (/boot/home/config/add-ons/media/decoders) before falling back to the system directory. (/boot/beos/system/add-ons/media/decoders) If there are two decoders in the directory, BeOS chooses in some non-apparent manner. (it always chooses the same one though.)
A better solution would be to allow the developer to choose which decoder is wanted. For example, there is the C function get_next_encoder(...) that allows the developer to iterate down the list of encoders that meet a criterion. There should also be a parallel function get_next_decoder(...) that does the same for decoders.
Perhaps now with HybridDivx there aren't as many people who would benefit from this but it still remains an issue. Those who experienced divx on beos prior no doubt understand this problem. (sometimes using the old DivX ;-) codec worked better, sometimes using the ffdecoders worked better) Switching was painful. Even with HybridDivx now, switching is pretty much a hack.
This should be supported from within, not without.
What about a multicolumn list like a spreadsheet that would list the media formats (like QuickTime, Video, 'SVQ1', FFMpeg Decoder, ffdecoder.decoder), with checkboxes to enable, or maybe sorting them to set open order ?
Using an attribute on the media file to set the prefered decoder could be used, but is limited to local files on BFS...