Hi,
I will ike accentuate the do {}while(0) behavior.
I've seen this in few projects including VDR and at least one plugin (xineliboutput)
In a code like:
do {
if (condition1)
continue;
} while(condition2);
continue does not translate to a jump to "do", but to a jump to "while" where the condition2 is evaluated.
do {
if (condition1)
continue;
} while(0);
if equivalent with:
do {
if (condition1)
break;
} while (0);
Regards,
Ilariu
Hi,
Dieter Bloms wrote:
> my primary dvb card works fine on both of my Twin-LNB connectors.
> I can switch the second card via szap and get a video stream via
> "cat /dev/dvb/adapter1/dvr0 > /tmp/bla" on H and V channels.
> VDR doesn't get data any data from H channels, but gets data from V
> channels.
> I will try to strace vdr and szap to get any difference, maybe they do
> it in a different way.
I've had a further look into szap's source how it detects the status
FE_LOCKED. Attached is an updated tuner patch which now also reports
details for FE_READ_STATUS.
One difference between VDR and szap regarding FE_READ_STATUS is, that
VDR only honors the read status when ioctl() returns 0 while szap prints
just an error when ioctl() returns -1.
Furthermore, VDR's handling of errno == EINTR seems to be wrong due to
the do {} while (0); loop.
BTW: I still assume, that your logfile reports a tuning timeout. If this
is no longer the case, then you may want to experiment with
WAIT_FOR_TUNER_LOCK in device.c.
Bye.
--
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rnissl@gmx.de
_______________________________________________
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr