Mailing List archive

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

[linux-dvb] Cannot record Kabel1 with budget card



Hi!

My system is:
SuSE Linux 7.1
Kernel 2.4.3
Reiserfs filesystem
current (this Sunday, I think) cvs version of DVB
VDR 0.80pre6
1 Hauppauge WinTV DVB-s (= primary card, I think an old version)
1 Hauppauge WinTV Nova (= secondary (budget) card)

Whenever I try to record Kabel1 with the Nova, VDR dies with a segfault
because only audio data is recognized[*], causing a buffer overflow.
Recording other programs, like Pro7, works with the Nova. Recording
Kabel1 with the DVB-s (I start recording Pro7, so the secondary Nova
card
is busy, then I start recording Kabel1 -> the primary DVB-s card is used
for recording Kabel1) works, too.

So my guess is that
- the video stream delivered by Kabel1 does not conform with VDR's
  assumptions about a video stream
- the DVB driver delivers the video stream received via the Nova card
  almost unchanged
- one of the DVB driver (when used with a full DVB-s card), the DVB-s
  firmware or the DVB-s hardware changes the stream so that VDR
recognizes
  the video stream correctly.

This problem occurs since VDR 0.80pre3, and the cvs version of DVB that
was current at that time. So it was not introduced by the new firmware
version. I have not tested the DVB or VDR versions before VDR 0.80pre3
regarding this problem (and VDR 0.72 with DVB 0.8.2, while it is still
more stable when I use only the DVB-s card, does not support the Nova
card as secondary card).


[*] more detailed description of the problem, as much as I could find
out
using a debugger and reading the source of VDR 0.80pre3 (I guess the
relevant pieces are still the same in VDR 0.80pre6 - I cannot access my
box at the moment):

The segfault seems to occur in remux.c , method cRemux::Process at the
beginning of the for loop when executing "if (resultBuffer[i] == 0 &&
resultBuffer[i+1] == 0 && resultBuffer[i+2 ==1)".

cRemux::Process does only recognize audio packets, "case SC_VIDEO" is
never reached.  And in "case SC_AUDIO", "l > 0" is always true. My guess
is, the audio buffer is filling and not written to disk, since no
corresponding video packets are found -> audio buffer overflow ->
segfault.

Log messages:
... vdr[3733]: buffer usage: 99%
... vdr[3733]: buffer usage: 100%
... kernel: dmxdev: buffer overflow
... vdr[3733]: ERROR (dvbapi.c,726): Unknown error 769
... kernel: dmxdev: buffer overflow
and then VDR has died of segfault.

In VDR 0.80pre6 the "Unknown error" has been replaced by "no useful
video
data found in xxxx bytes" or something like that, but it still dies of
segfault (although it seemed to survive about half a second longer than
earlier versions of VDR 0.80pre ...).
As I said, I cannot access my box at the moment. Should the exact
message
or any other information be needed, please ask. I can look it up later.


Thank you very much for these 2 great projects - VDR 0.72 with DVB 0.8.2
works fine with my DVB-s card and VDR 0.80pre with cvs-DVB is getting
there (with both cards).



Benjamin


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



Home | Main Index | Thread Index