Hi to all, who are interested in UOS by Fred vS,
in my Chat with Fred vS (see his Topic: "uos and uoslib version 1.0 is here") I discussed several
problems resp. "ToDo's" referring to his UOS (= United OpenLib of Sound).
If anyone wonders, why I go on with this project - Well, I love Portaudio.
Afaik it's the best OpenSource Audio I/O-Library, and together with ASIO it provides
the best Sound with lowest Latency.
All the following refers to loading SEVERAL Streams into ONE PlayerThread of ONE PlayerInstance.
Even Fred's UOS-MultiPlayer finally loads only ONE Stream per PlayerThread.
For the moment it's only done (and tested) on WinXP SP3, using Lazarus v1.2.2 + fpc v2.6.4.
The MainDifferences to the original UOS are:
- SEVERAL Streams can be Loaded-Paused/Unpaused-Stopped in ONE PlayerThread
- Loading Streams is gapless, means the previous Stream must NOT be stopped, before loading the next one
- Loading Streams at ANY Position (<-> UOS loads only at the Begin)
- I think, I fixed what Fred called "SyncProblems" - I'm not sure, 'cause Fred finally didn't specify this Problem
- Pause/Unpause EACH Stream (<-> UOS pauses the PlayerThread)
- the PositionSeek is done with less CodeLines
- Free the PlayerThread with "FreeOnTerminate=True" (<-> UOS uses additional OnTerminate-Procedure )
Currently working on 2 Problems:
All the following refers to "real" AudioTracks, where "real" means:
- LONG (1h and more)
- also with VARIABLE BitRates
(So not only Test-AudioTracks with constant BitRates and a Lenght of some Seconds or Minutes.)
1. Each Time a PositionSeek is done, the PlayerThread-Loop hangs for a while, until 'mpg123_seek()'
has done his job. Thus a gap is heard in the other playing streams - not very nice !
I havn't found a good&simple(!) solution yet - Maybe another Thread only for doing the Seek-Job would help ?
2. UOS is calculating wrong the Length&Position of quite a lot of mp3-Files, compressed with VBR (= Variable BitRate)
Any Ideas, how to do this...?
Unfortunately Fred has left this Forum, so I can't continue my chat with him.
metis (formerly altasam)