Mailing List archive

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

[vdr] Unnecessary LiveAC3 threads



Hi,

in my configuration i discovered the following Problem:

After switching to Pro7 the first time, the 'LiveAC3' thread ist started every
time i switch to another channel, even if this channel does not send 'Dolby
Digital'. The Thread ist terminated immediately.

My configuration is:
VDR 1.0.4 with AIO 10.09 and LNBSHARING, driver 0.9.4-2002-06-23, SuSE7.3,
Siemens 1.3 + TT Budget

In /var/log/messages this looks like ( Channel 9 is Pro7 ):

Oct 13 14:25:28 vdr vdr[566]: switching to channel 7
Oct 13 14:25:32 vdr vdr[566]: switching to channel 6
Oct 13 14:27:46 vdr vdr[566]: switching to channel 7
Oct 13 14:38:45 vdr vdr[566]: switching to channel 8
Oct 13 14:38:49 vdr vdr[566]: switching to channel 9
Oct 13 14:38:49 vdr vdr[616]: LiveAC3 thread started (pid=616)
Oct 13 14:38:49 vdr vdr[616]: LiveAC3 thread can not set process priority: 
Operation not permitted
Oct 13 14:39:10 vdr vdr[566]: switching to channel 10
Oct 13 14:39:10 vdr modprobe: modprobe: Can't locate module snd-card-1
Oct 13 14:39:10 vdr modprobe: modprobe: Can't locate module snd-card-2
Oct 13 14:39:11 vdr modprobe: modprobe: Can't locate module snd-card-3
Oct 13 14:39:11 vdr vdr[616]: LiveAC3 thread ended (pid=616)
Oct 13 14:45:49 vdr vdr[566]: switching to channel 7
Oct 13 14:45:49 vdr vdr[644]: LiveAC3 thread started (pid=644)
Oct 13 14:45:49 vdr vdr[644]: LiveAC3 thread can not set process priority: 
Operation not permitted
Oct 13 14:45:49 vdr vdr[644]: LiveAC3 thread ended (pid=644)
Oct 13 14:53:19 vdr vdr[566]: switching to channel 8
Oct 13 14:53:19 vdr vdr[645]: LiveAC3 thread started (pid=645)
Oct 13 14:53:19 vdr vdr[645]: LiveAC3 thread can not set process priority: 
Operation not permitted
Oct 13 14:53:19 vdr vdr[645]: LiveAC3 thread ended (pid=645)

I got the impression, that channels switching time increases due to this
behaviour, so i 'fixed' this. Made two changes in dvbapi.c:

1. ResumeLiveAC3 is set, even if LiveAC3 is false.

void cDvbApi::EndBypassAC3(boolean resume)
{
  if (LiveAC3) {
     LiveAC3->Close();
     DELETENULL(LiveAC3);
//     ResumeLiveAC3 = resume;
     }
  ResumeLiveAC3 = resume;
}

2.In cDvbApi::SetChannel

Changed

eSetChannelResult cDvbApi::SetChannel(int ChannelNumber, int Frequency, char 
Polarization, int Diseqc, int Srate, int Vpid, int Apid1, int Apid2, int 
Dpid1, int Dpid2, int Tpid, int Ca, int Pnr)
{
  StopTransfer();
  StopReplay();
  EndBypassAC3(true);
...

to

eSetChannelResult cDvbApi::SetChannel(int ChannelNumber, int Frequency, char 
Polarization, int Diseqc, int Srate, int Vpid, int Apid1, int Apid2, int 
Dpid1, int Dpid2, int Tpid, int Ca, int Pnr)
{
  StopTransfer();
  StopReplay();
  if (this == PrimaryDvbApi)
    EndBypassAC3(true);
  else
    EndBypassAC3();
...

The log file looks as expected:

Oct 27 16:07:59 vdr vdr[1214]: switching to channel 6
Oct 27 16:08:55 vdr vdr[1214]: switching to channel 7
Oct 27 16:09:08 vdr vdr[1214]: switching to channel 8
Oct 27 16:12:54 vdr vdr[1214]: switching to channel 9
Oct 27 16:12:54 vdr vdr[3056]: LiveAC3 thread started (pid=3056)
Oct 27 16:12:54 vdr vdr[3056]: LiveAC3 thread can not set process priority: 
Operation not permitted
Oct 27 16:13:01 vdr vdr[1214]: switching to channel 8
Oct 27 16:13:01 vdr modprobe: modprobe: Can't locate module snd-card-1
Oct 27 16:13:01 vdr modprobe: modprobe: Can't locate module snd-card-2
Oct 27 16:13:01 vdr modprobe: modprobe: Can't locate module snd-card-3
Oct 27 16:13:01 vdr vdr[3056]: LiveAC3 thread ended (pid=3056)
Oct 27 16:22:28 vdr vdr[1214]: switching to channel 6
Oct 27 16:23:30 vdr vdr[1214]: switching to channel 7
Oct 27 16:23:32 vdr vdr[1214]: switching to channel 8

Maybe someone, who is familiar with the architecture of vdr and AIO can
confirm this. It works for me.

mfg -kc-
-- 
Klaudius Chlebosch 


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



Home | Main Index | Thread Index