Re: dvbstream reliability issues?

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

 



> I use it for hours, even forgetting that it's recording, without 
> segfaults.
> Try to run it under gdb (after having compiled it with -g) and 
> see with "bt" where it segfaults, or bugs can't be fixed

What's your reception like?  This particular card (DVico Fusion HDTV)
seems to be somewhat less sensitive compared to my other cards, and I
think getting corrupted data coming in is what breaks dvbstream.  The
recording itself is full of blips as if the reception is quite bad.

When the recording just stops (no crash) gdb doesn't seem to reveal
anything amazing:

<Ctrl+C>
Program received signal SIGINT, Interrupt.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7ebf77b in poll () from /lib/libc.so.6
#2  0x0804aeeb in main (argc=12, argv=0xbfe38484) at dvbstream.c:1516
(gdb) fr 2
#2  0x0804aeeb in main (argc=12, argv=0xbfe38484) at dvbstream.c:1516
1516            poll(pfds,1,500);
(gdb) cont
Continuing.
[Still no DVB data being written to disk]
<Ctrl+C>
Program received signal SIGINT, Interrupt.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7ebf77b in poll () from /lib/libc.so.6
#2  0x0804aeeb in main (argc=12, argv=0xbfe38484) at dvbstream.c:1516
(gdb) fr 2
#2  0x0804aeeb in main (argc=12, argv=0xbfe38484) at dvbstream.c:1516
1516            poll(pfds,1,500);


If I kill dvbstream and reload it then all is fine, so it seems that
maybe the card loses sync with the signal, and either dvbstream needs to
retune the card, or perhaps the kernel driver should do that automatically.

When it crashes it looks like this:


Program received signal SIGSEGV, Segmentation fault.
0xb7ee153c in memcpy () from /lib/libc.so.6
(gdb) bt
#0  0xb7ee153c in memcpy () from /lib/libc.so.6
#1  0x08049714 in collect_section (section=0x815bef0, pusi=<value
     optimized out>, buf=0x3ffff59e <Address 0x3ffff59e out of bounds>,
     len=3221135360) at dvbstream.c:579
#2  0x0804b21b in main (argc=12, argv=0xbffe8084) at dvbstream.c:683

(gdb) fr 1
#1  0x08049714 in collect_section (section=0x815bef0, pusi=<value
     optimized out>, buf=0x3ffff59e <Address 0x3ffff59e out of bounds>,
     len=3221135360) at dvbstream.c:579
579       memcpy(&(section->buf[section->pos]), buf, len);

(gdb) fr 2
#2  0x0804b21b in main (argc=12, argv=0xbffe8084) at dvbstream.c:683
683       skip = collect_section(&(pmt->section), pusi, b, l);


It looks like the default CFLAGS do some optimisation - let me know if
you need me to recompile it without this.

Cheers,
Adam.

_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux