Click here to Skip to main content
15,891,828 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Here's my problem:

I administer about 40 Windows 7 machines for a rental company, which are installed as media players providing background mp3 music and "cdg" karaoke in bars and restaurants. The media library and player software is quite old, proprietary, single-threaded, we don't have the source code for it, and we can't contact the original programmer. The player audio uses "Bass Player" library, and the CDG lyrics are rendered through DirectX.

We recently added new languages to the karaoke library, which has effectively doubled the size of the database to around 200,000 tracks. Since then, every time a user does a search while a karaoke track is playing, the words on the screen momentarily "freeze" and "stutter". Googling the problem reveals that this is a known problem for quite a lot of players with integrated library databases, including WinAmp (with MEXP or its own library module), Ultimate Jukebox and many others, once the library gets over a certain size.

We don't have the time or the budget to completely rewrite the software from the ground up, and the only hardware "fix" I've found is to throw masses of L1 & L2 cache at the problem, which would entail upgrading to top-end i7 processors in all the machines, which, once again, is outside our budget.

It occurred to me that a workaround might be to redirect the output of the media player via a 2 second RAM buffer, similar to the way in which portable DVD players cope with physical shocks.

Does anyone know:

a) if this is even possible, given that we don't have the source code for the media player?
b) whether it would have a chance of curing the problem?
c) where to start writing such a media capture/buffering process in VB.Net?
d) if there might be another simpler way around the problem which I'm overlooking?

Please note that we don't have the option to use a different media player/library, as our files are encrypted and the decryption algorithm is written into the player, so "Why don't you use X,Y,Z players instead?" would not be a valid suggestion.

Thanks.
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900