I have find out what was wrong. It not related to getstream, looks like it driver problem. I am using DViCO FusionHDTV DVB-T Dual Express with latest drivers and kernel 2.6.27-7. After system reboot or combination rmmod/modprobe cx23885 getstream(or any another application) working with card do his job well. Once it terminated(by Ctrl+C) or even simply stopped(when job is finished, e.g. scan) I cant make any DVB related tools work. In /var/log/messages i have lots of messages like this: Feb 27 19:31:01 iptv-dvbt kernel: [39261.670228] xc2028 0-0061: Loading firmware for type=D2633 DTV7 (90), id 0000000000000000. Feb 27 19:31:01 iptv-dvbt kernel: [39261.685084] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000. Feb 27 19:31:01 iptv-dvbt kernel: [39261.980032] xc2028 0-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000. Feb 27 19:31:03 iptv-dvbt kernel: [39263.250229] xc2028 0-0061: Loading firmware for type=D2633 DTV7 (90), id 0000000000000000. Feb 27 19:31:03 iptv-dvbt kernel: [39263.265086] xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000. After rmmod/modprobe I can perform new try. Maybe someone here has same problem in the past(and more important successfully solved it:))? On Thu, Feb 26, 2009 at 8:26 PM, Florian Lohoff <flo@rfc822.org> wrote:
On Thu, Feb 26, 2009 at 06:58:32PM +0200, Serg Gulko wrote:
Hello!
Yes, you was right about commenting watchdog. But now I have new troubles:)
2009-02-27 03:56:53.215 fe: Adapter 1 Setting up frontend tuner 2009-02-27 03:56:53.217 fe: adapter 1 type OFDM name "Zarlink ZL10353 DVB-T" 2009-02-27 03:56:53.217 fe: adapter 1 frequency min 174000000 max 862000000 step 166667 tolerance 0 2009-02-27 03:56:53.217 fe: adapter 1 symbol rate min 0 max 0 tolerance 0 2009-02-27 03:56:53.217 dmx: Setting filter for pid 8192 pestype 20 2009-02-27 03:56:53.252 dvr: Add Section callback for PID 0 (0x0000) type 1 (PAT) 2009-02-27 03:56:53.252 dvr: Add TS callback for PID 0 (0x0000) type 9 (Reassemble) 2009-02-27 03:56:59.042 fe: Adapter 1 Status: 0x00 () 2009-02-27 03:56:59.042 dvr: lockup of DVB card detected - trying to reanimate via bouncing filter 2009-02-27 03:57:04.862 fe: Adapter 1 Status: 0x00 () 2009-02-27 03:57:04.862 dvr: lockup of DVB card detected - trying to reanimate via bouncing filter 2009-02-27 03:57:10.712 fe: Adapter 1 Status: 0x00 () 2009-02-27 03:57:10.712 dvr: lockup of DVB card detected - trying to reanimate via bouncing filter
Okay - something is wrong with your tuner setup i guess - because your DVB card does not hand out TS packets ....
These are 2 mechanisms - The guard thread watches whether TS packets get processed from a different thread. When the main getstream thread gets stuck (mostly because of a programming error or some other strange things) it kills getstream. So when you want to provide a "high availability" solution you'd want to start getstream with something like
while true; do ./getstream -dd -c config; done
So getstream kills itself when getting stuck and this would restart it.
The other mechanism you trigger now is a workaround for some strange DVB cards which sometimes get stuck. Read: getstream is runnign but no TS packets. The workaround is to drop all filters or better close all fds and reopen them.
Both of which get triggered when there are no dvb packets. I'll think about the watchdog as it might be enough to set a timer in the main process to trigger every second. When getstream gets stuck there will be no timer/event handling and it'll get killed too.
Flo -- Florian Lohoff flo@rfc822.org +49-171-2280134 Those who would give up a little freedom to get a little security shall soon have neither - Benjamin Franklin
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFJpt66Uaz2rXW+gJcRAvsJAJ9e3e3+mk53TrIBAJa8c3+fmQGUfgCgg+l5 9qR0MK2Xsom9Iq0IczXp0tM= =t/5R -----END PGP SIGNATURE-----