Thread: Winamp Encoders
View Single Post
Old 27th March 2013, 20:39   #2
Ben Allison
Former Winamp Developer
Benski's Avatar
Join Date: Jan 2005
Location: Brooklyn, NY
Posts: 1,057
Definitely good info.

Don't get me started on the encoder API. It's a leftover from NSV development that got re-used. It's been haphazardly developed and in general, the "push data in, get data out" model leaves a lot to be desired. It was built for real-time encoding of streamable codecs like Layer 3 or ADTS AAC. The MP4/AAC encoder plugin just sends back dummy data, secretly writes to a temp file, and then swaps it over at the end (during FinishAudio). It's horribly inefficient (since winamp.exe is also writing to disk), but I don't think disk I/O is the bottleneck.

The delete issue is a known issue. No guarantee that they were allocated from the same memory heap as winamp.exe I should just add a DeleteAudio and call it a day. Of course it'd only be compatible with newer versions of Winamp.

I've been contemplating a new interface to replace it, but have been so busy with the Android app and the Cloud project for that.
Benski is offline   Reply With Quote