[vdr] cRemux single threaded?

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Sun Jul 31 11:36:04 CEST 2005


Udo Richter wrote:
> Hi list,
> 
> I've been hunting down a bandwidth problem in my little streaming 
> plugin, and finally realized that the performance bottleneck actually is 
> cRemux and its internal resultBuffer.
> 
> The resultBuffer is initialized with resultBuffer->SetTimeouts(0, 100), 
> in other words, if no data is available, cRemux::Get will wait up to 
> 100ms for data to arrive. Thats fine as long as cRemux is filled from 
> another thread, but wastes time if cRemux is only filled from within the 
> same thread.
> 
> Unfortunately, the resultBuffer is completely hidden inside the cRemux, 
> so I cannot change this behavior. Does anyone have good ideas how to 
> avoid this without spawning another thread? (the thread would actually 
> just copy data from one buffer to another...)
> 
> This resultBuffer is really some kind of black hole, no way to control 
> it, no way to know how much is in it...

Well, we could introduce

   cRemux::SetTimeouts(int PutTimeout, int GetTimeout) { resultBuffer->SetTimeouts(PutTimeout, GetTimeout); }

Klaus



More information about the vdr mailing list