[linux-dvb] problems and workaround when tuning to a channel with DD enabled

Wolfgang Rohdewald wolfgang at rohdewald.de
Tue Jun 7 12:25:23 CEST 2005


On Dienstag 07 Juni 2005 11:38, Johannes Stezenbach wrote:
> > this happens here repeatably (not always) if I switch to a TV
> > channel with DD and vdr starts a transfer thread for handling
> > that audio stream.
> 
> Where does the DD stream go? Does vdr fork a process
> to handle it?

from vdr, device.h: class cTSBuffer : public cThread
cThread is a class around <pthread.h>

> More interesting would be the signal handlers, but I'm not sure you
> can call syslog() from a signal handler.
> You could try to run vdr with strace, e.g.:
> $ strace -e kill,alarm -f ./vdr

if I understand man 7 signal right, SIGRTMIN is used by LinuxThreads.
grepping vdr for SIGRTMIN shows nothing.

Jun  7 12:03:49 mm vdr[23968]: switching to channel 2
Jun  7 12:03:49 mm vdr[24299]: receiver on device 1 thread started (pid=24299, tid=163848)
Jun  7 12:03:49 mm vdr[24298]: transfer thread started (pid=24298, tid=147463)
Jun  7 12:03:49 mm vdr[24300]: TS buffer on device 1 thread started (pid=24300, tid=180233)

[pid 23968] 12:03:49.382519 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
Process 24298 attached
[pid 23986] 12:03:49.385618 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:49.386007 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23986] 12:03:49.386744 <... kill resumed> ) = 0
Process 24299 attached
[pid 23986] 12:03:49.387796 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:49.388159 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23986] 12:03:49.388735 <... kill resumed> ) = 0
[pid 24299] 12:03:49.390406 kill(24298, SIGRTMIN) = 0
[pid 24298] 12:03:49.391200 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
Process 24300 attached
[pid 23986] 12:03:49.393319 kill(24299, SIGRTMIN) = 0
[pid 24299] 12:03:49.395018 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23988] 12:03:51.373856 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:51.374198 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23988] 12:03:51.399529 <... kill resumed> ) = 0
[pid 23988] 12:03:51.819573 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:51.819896 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23988] 12:03:51.848613 <... kill resumed> ) = 0
[pid 23988] 12:03:51.980285 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:51.980939 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23988] 12:03:52.010278 <... kill resumed> ) = 0
[pid 23988] 12:03:52.020496 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:52.020936 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23988] 12:03:52.054895 <... kill resumed> ) = 0
[pid 23988] 12:03:52.363084 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:52.363729 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23988] 12:03:52.392513 <... kill resumed> ) = 0
[pid 23988] 12:03:52.523493 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:52.523838 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23988] 12:03:52.541531 <... kill resumed> ) = 0
[pid 23988] 12:03:52.574902 kill(23968, SIGRTMIN <unfinished ...>
[pid 23968] 12:03:52.575505 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
[pid 23988] 12:03:52.592371 <... kill resumed> ) = 0

wr at mm:~$ date
Di Jun  7 12:19:31 CETDST 2005
wr at mm:~$ ps alf
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0  1002 23967  5081  15   0   1740   616 wait   S+   pts/2      5:38      \_ strace -tt -e alarm kill -f ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Prem
0  1002 23968 23967  16   0  60936 42348 nanosl S+   pts/2      2:32          \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lircd
1  1002 23986 23968  16   0  60936 42348 poll   S+   pts/2      0:00              \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lircd
1  1002 23987 23986  16   0  60936 42348 nanosl S+   pts/2      0:00                  \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lirc
1  1002 23988 23986  34  19  60936 42348 -      RN+  pts/2      0:11                  \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lirc
1  1002 23993 23986  15   0  60936 42348 poll   S+   pts/2      0:00                  \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lirc
1  1002 23994 23986  34  19  60936 42348 poll   SN+  pts/2      0:04                  \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lirc
1  1002 23995 23986  15   0  60936 42348 select S+   pts/2      0:00                  \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lirc
1  1002 24298 23986  15   0  60936 42348 poll   S+   pts/2      0:19                  \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lirc
1  1002 24299 23986  15   0  60936 42348 nanosl S+   pts/2      0:00                  \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lirc
1  1002 24300 23986  15   0  60936 42348 poll   S+   pts/2      0:23                  \_ ./vdr -v /var/lib/video -c /var/lib/vdrdevel -l 3 -Premote -l /dev/lirc

-- 
Wolfgang




More information about the linux-dvb mailing list