Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Any need for gszap?



Roberto Ragusa wrote:
On Mon, 05 Jan 2004 09:53:51 +0100
Holger Waechtler <holger@convergence.de> wrote:


Niklas Peinecke wrote:

I've seen the EOF problem also. I got the impression that it is speed related, i.e. if there is heavy load on the machine EOF occurs more frequently. Nevertheless if you pipe the stream to a file and then replay, there are no problems. Maybe the driver replays values <0 through /dev/dvb/adapter0/dvr0 (don't know if this is possible)?
no, it's not. You get the raw unmodified data from air through the dvr device. Data is only lost in case of buffer overflows, but the MPEG decoder should be able to tolerate corrupted MPEG packets silently.


Are you saying that a buffer overflow would only cause skipped packets?
yes, sure.

I'm quite sure I used to get an error number 75 (EOVERFLOW) when the
buffer overflows.
Just grep for EOVERFLOW in dmxdev.c.
When a buffer overflows the ringbuffer pointers are reset, errno is set to EOVERFLOW. The data that has been previously in the ringbuffer will get lost.


In the same file, function dvb_dvr_do_ioctl() there is a disappointing

        switch (cmd) {
        case DMX_SET_BUFFER_SIZE:
                // FIXME: implement
                ret=0;
                break;

so the limit can't be even raised. The default is 10*1024*188 bytes
(which is only one second with HDTV at 15Mbit/s).
You don't want to write a program that reads and processes the stream only every second, right? This would cause pretty heavy latencies...

Anyway, a patch implementing this is highly welcome as well as one which ports all ringbuffer structs to the general dvb_ringbuffer implementation.
:)

Holger



--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index