On Mon, 16 Mar 2009, ua0lnj wrote:
> 1. Have: use section filtering - "yes", disable filters - 0.
> Have a iptv channel in channel.conf, but absent and not streaming now.
> Switch channels: work channnel -> absent channel -> work channel.
> And vdr hangs, almost always
Could you attach the gdb to the vdr process and check where does it hang
exactly?
> If set use section filtering - "no", all works.
> If set use section filtering - "yes", disable filters - 1, PAT, all works too.
So, it's somehow related to cPatFilter. As the pid updating works nicely
on my setup, this might be related to video stream data itself...
> 2. pat.c use Channels.GetByServiceID.
> Channels.GetByServiceID use ISTRANSPONDER().
> #define ISTRANSPONDER(f1, f2) (abs((f1) - (f2)) < 4)
> We must use frequencies differ > 4 in iptv channels.
> TV1;IPTV:1:IPTV|S1P0|UDP|127.0.0.1|1234:P:0:512:650:2321:0:1:0:0:0 - third
> parametr.
> Never use:
> TV1;IPTV:1:IPTV|S1P0..
> need use (example):
> TV1;IPTV:10:IPTV|S1P0..
> Otherwise ISTRANSPONDER() not works correct...
Did I understood you correctly: if you're setting the channel frequency
to 10 instead of 1, your VDR won't hang anymore with section filtering
(including PAT) enabled?
Why would "(abs(1-1)<4)" be different than "abs(10-10)<4"? Anyway,
you could trace the values given to ISTRANSPONDER() macro and see if
that gives any hint about the problem.
PS. You can also send bug reports and questions directly to me without
polluting the mailing list.
BR,
--
rofa
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr