Skip to contentSkip to conversation

Length of /dev/dvb/adapter0/dvr0's buffer.

linux-dvb Andrea 2 participants 3 messages Feb 24, 2008 – Mar 1, 2008 Media (V4L/DVB)

lore
Share & tools
lore

Andrea

author
#0 lore raw

Hi,

I'm trying to read from /dev/dvb/adapter0/dvr0.
The problem is that the process reading sometimes is not fast enough and after a while I get errno 75 when I try to read from it.

On average the speed is ok, so it should work.
There must be a buffer behind dvr0 that goes in error onece it is full.

1) how can I make it bigger?
2) how can I check how full it is?

Andrea

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

#1 lore raw
Quoted 9 lines

I'm trying to read from /dev/dvb/adapter0/dvr0.
The problem is that the process reading sometimes is not fast enough and after a while I get errno 75 when I try to read from it.

On average the speed is ok, so it should work.
There must be a buffer behind dvr0 that goes in error onece it is full.

1) how can I make it bigger?
2) how can I check how full it is?

You can set the *demux* buffer size, upstream from dvr, using ioctl DMX_SET_BUFFER_SIZE. The default value is 8 kB. Using 1 MB, I can do full TS capture without any loss.

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

author
#2 lore raw
Quoted 4 lines · Thierry Lelegard
Quoted 4 lines

I'm trying to read from /dev/dvb/adapter0/dvr0.
The problem is that the process reading sometimes is not fast enough and after a while I get errno 75 when I try to read from it.

Quoted 10 lines
Quoted 5 lines

On average the speed is ok, so it should work.
There must be a buffer behind dvr0 that goes in error onece it is full.

1) how can I make it bigger?
2) how can I check how full it is?

You can set the *demux* buffer size, upstream from dvr, using ioctl DMX_SET_BUFFER_SIZE. The default value is 8 kB. Using 1 MB, I can do full TS capture without any loss.

I've noticed that there are 2 ioctl DMX_SET_BUFFER_SIZE, one for the demux, one for the dvr. The second is not implemented.

switch (cmd) {
case DMX_SET_BUFFER_SIZE:

         // FIXME: implement
         ret = 0;
         break;

Could you please help me:

1) how many ringbuffers are there?
2) I'm reading from dvr, which one do I need to set?
3) I can try to implement the above code if needed.

Cheers

Andrea

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb