Mailing List archive

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

[linux-dvb] Re: Pinnacle PCTV



Hello Peter,

> The problem you describe next, does it give you problems while viewing DVB
> video, or is this a question of general interest?
>
> > For me the value in bt->writebuf as it is given to the tasklet appears
> > not very reliable. When I insert something like

I can watch TV with only a few noticeable glitches, so the PCTV-Sat driver is 
working mostly fine. My problem started when I tried to edit a recorded mpeg 
file. Running the file through pvastrumento (under wine) shows quite a number 
of missing audio and video bits. When I tried to find out where parts of the 
stream were lost I stumbled about the writebuf inconsistency. And my real 
problem now is understanding linux kernel sources. However, I understood the 
concept of tasklets and how you applied it.

> > into the tasklet everything looks fine for the first 30 to 45 sec. But
> > then things become congested somehow and I get discontinuities in the
> > writebuf, mostly by 1. This is independent from the kind of spinlocks. I
> > use dvbstream to write to a file or to /dev/nul.

Let me illustrate this. Sorry for the length of the following kernel logs. I 
have shortened the lines to make them more readable on the mailing list.

:~/source/DVB-cvsexpi/driver # ./ins

......
06:08:40  kernel: i2c-core.o: client [cx24110] registered to adapter [bt848 
#0](pos. 0).
06:08:40  kernel: cx24110: attaching cx24106 at 0x55 to adapter bt848 #0
06:08:40  kernel: bt878: AUDIO driver version 0.0.0 loaded
06:08:40  kernel: bt878: Bt878 AUDIO function found (0).
06:08:40  kernel: PCI: Found IRQ 5 for device 00:0b.1
06:08:40  kernel: PCI: Sharing IRQ 5 with 00:07.2
06:08:40  kernel: PCI: Sharing IRQ 5 with 00:0b.0
06:08:40  kernel: bt878(0): Bt878 (rev 17) at 00:0b.1, irq: 5, latency: 32, 
memory: 0xda007000
06:08:40  kernel: bt878 debug: bt878_get_buffers(d8a3b3a0, bpl=0xc00, lpf=0x8, 
n=0x4
06:08:40  kernel: dvb: 1 dvb(s) found!

:~/source/DVB-cvsexpi/driver # dvbstream -o -d 1 -ps -f 12596 -p v  -s 27500 
163 92 > $HOME/test.mpg
That is BBC-World somewhere on Hotbird,  for me diseqc 1.

06:08:51  kernel: bttv0: IRQ lockup, cleared int mask
06:09:24  kernel: pctv debug: tasklet: writebuf 3, expected 0, read 2
06:09:24  kernel: pctv debug: tasklet: writebuf 1, expected 0, read 3
06:09:29  kernel: pctv debug: tasklet: writebuf 0, expected 3, read 1
06:09:29  kernel: bt848 debug: writebuf 0, expected 3
06:09:29  kernel: bt848 debug: writebuf 1, expected 0
06:09:29  kernel: pctv debug: tasklet: writebuf 1, expected 2, read 0
06:09:34  kernel: bt848 debug: writebuf 1, expected 0
06:09:34  kernel: pctv debug: tasklet: writebuf 2, expected 3, read 1
06:09:34  kernel: pctv debug: tasklet: writebuf 0, expected 3, read 2
06:09:34  kernel: pctv debug: tasklet: writebuf 2, expected 1, read 0
06:09:34  kernel: bt848 debug: writebuf 1, expected 0
06:09:34  kernel: bt848 debug: writebuf 2, expected 1
06:09:34  kernel: pctv debug: tasklet: writebuf 2, expected 3, read 2
06:09:39  kernel: bt848 debug: writebuf 3, expected 2
06:09:39  kernel: bt848 debug: writebuf 2, expected 1
06:09:39  kernel: bt848 debug: writebuf 1, expected 0
06:09:39  kernel: pctv: panic, less than 188 Bytes left and no sync. Program 
me!
06:09:39  kernel: pctv: panic, less than 188 Bytes left and no sync. Program 
me!
06:09:39  kernel: pctv debug: tasklet: writebuf 0, expected 3, read 1
......

Data rate during this recording was about 585 kbyte/sec.
Note the 33 sec in the beginning which are apprently error free.
If I had not stopped the recording it would have shown the same kind of 
messages at a cycle of about 5 sec.

When I have the tasklet return immediately before entering the spinlock or 
even when I outcomment only the three DvbDmxSWFilterPackets feedings 
everything seems ok also the finding of syncs:

07:26:43  kernel: bttv0: IRQ lockup, cleared int mask
07:26:43  kernel: function : BtStart
07:26:43  kernel: pctv debug: tasklet: no do r=0, w=0
07:26:43  kernel: function : BtStart
07:27:05  kernel: pctv debug: tasklet called 4096 times
07:27:26  kernel: pctv debug: tasklet called 8192 times
07:27:47  kernel: pctv debug: tasklet called 12288 times
07:28:08  kernel: pctv debug: tasklet called 16384 times
07:28:26  kernel: via82cxxx: timeout while reading AC97 codec (0x9A0000)
07:28:29  kernel: pctv debug: tasklet called 20480 times
07:28:50  kernel: pctv debug: tasklet called 24576 times
07:29:12  kernel: pctv debug: tasklet called 28672 times
07:29:33  kernel: pctv debug: tasklet called 32768 times
07:29:54  kernel: pctv debug: tasklet called 36864 times
07:30:15  kernel: pctv debug: tasklet called 40960 times
07:30:35  kernel: function : BtStop

with a little increase in verbosity and counting done directly before the sync 
check. Could be the culprit is hidden somewhere beyond "dvb_demux.c".

> If it does not create a problem, it is a feature, decoupling the software
> demuxer from the ISR. If it does, it is probably as bug.

I think that there is a problem when you wish to have a rather clean stream.
Maybe my writebuf inconsistency is related to the Oopses you found and posted 
earlier.
 Regards
 Michael Rickmann



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



Home | Main Index | Thread Index