Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] Re: Buffer Overflow because of cReceiver-Threads locking each other
Rene Bartsch wrote:
>
> Hi,
>
> we have the problem (especially with streaming-plugins) that
> cReceiver-threads lock each other if one of them doesn't get data by
> time. Then VDR drops packets (skipped 99 Bytes of TS-stream). But this
> causes invalid MPEG-streams making the player to swallow. In turn the
> cReceiver-threads lock again and drop packets. So we get a never-ending
> story of cReceiver-threads and invalid MPEG-streams locking each other.
>
> This could be solved by a buffer in the cReceiver-threads, which drops
> the frames up to the next I-Frame in case of buffer overflow (or repeats
> the last I-Frame in case of buffer underruns) making sure the
> MPEG-stream keeps valid.
A cReceiver is supposed to accept the data offered in a call to its
Receive() function _immediately_, and return without any unnecessary
delay. It's the duty of the derived cReceiver class to implement any
kind of buffering it might need.
There was a problem with timeouts in cRingBuffer* in versions before
1.1.31, but that has since been fixed.
Klaus
--
_______________________________________________________________
Klaus Schmidinger Phone: +49-8635-6989-10
CadSoft Computer GmbH Fax: +49-8635-6989-40
Hofmark 2 Email: kls@cadsoft.de
D-84568 Pleiskirchen, Germany URL: www.cadsoft.de
_______________________________________________________________
--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.
Home |
Main Index |
Thread Index