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