(I'll start a new thread as my problem may not be the same as the one posted earlier). VDR 1.7.15 will not record or show live TV from my DVB-T card - 1.7.14 was fine. On startup I see this message in the log: Jun 8 16:24:14 vdr: [18819] frontend 0/0 provides DVB-T with unknown modulations ("DST DVB-T") The problem seems to be in the new code in dvbdevice.c. My card returns frontendInfo.caps = 0xb0201, ie the FE_CAN_QAM_AUTO bit is set but not any of the individual QAM bits. Hence the logic in cDvbDevice::ProvidesTransponder() incorrectly decides that the card cannot receive any channel. The simple patch (attached) fixes the problem but I'm not sure that it doesn't break something else. Dave
--- dvbdevice.c.orig 2010-05-01 10:47:13.000000000 +0100 +++ dvbdevice.c 2010-06-08 21:17:08.000000000 +0100 @@ -710,6 +710,7 @@ if (frontendInfo.caps & FE_CAN_QAM_64) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_64, ModulationValues)); } if (frontendInfo.caps & FE_CAN_QAM_128) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_128, ModulationValues)); } if (frontendInfo.caps & FE_CAN_QAM_256) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_256, ModulationValues)); } + if (frontendInfo.caps & FE_CAN_QAM_AUTO) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(QAM_AUTO, ModulationValues)); } if (frontendInfo.caps & FE_CAN_8VSB) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_8, ModulationValues)); } if (frontendInfo.caps & FE_CAN_16VSB) { numProvidedSystems++; p += sprintf(p, ",%s", MapToUserString(VSB_16, ModulationValues)); } if (frontendInfo.caps & FE_CAN_TURBO_FEC){numProvidedSystems++; p += sprintf(p, ",%s", "TURBO_FEC"); } @@ -914,11 +915,11 @@ cDvbTransponderParameters dtp(Channel->Parameters()); if (dtp.System() == SYS_DVBS2 && frontendType == SYS_DVBS || dtp.Modulation() == QPSK && !(frontendInfo.caps & FE_CAN_QPSK) || - dtp.Modulation() == QAM_16 && !(frontendInfo.caps & FE_CAN_QAM_16) || - dtp.Modulation() == QAM_32 && !(frontendInfo.caps & FE_CAN_QAM_32) || - dtp.Modulation() == QAM_64 && !(frontendInfo.caps & FE_CAN_QAM_64) || - dtp.Modulation() == QAM_128 && !(frontendInfo.caps & FE_CAN_QAM_128) || - dtp.Modulation() == QAM_256 && !(frontendInfo.caps & FE_CAN_QAM_256) || + dtp.Modulation() == QAM_16 && !(frontendInfo.caps & (FE_CAN_QAM_16 | FE_CAN_QAM_AUTO)) || + dtp.Modulation() == QAM_32 && !(frontendInfo.caps & (FE_CAN_QAM_32 | FE_CAN_QAM_AUTO)) || + dtp.Modulation() == QAM_64 && !(frontendInfo.caps & (FE_CAN_QAM_64 | FE_CAN_QAM_AUTO)) || + dtp.Modulation() == QAM_128 && !(frontendInfo.caps & (FE_CAN_QAM_128 | FE_CAN_QAM_AUTO)) || + dtp.Modulation() == QAM_256 && !(frontendInfo.caps & (FE_CAN_QAM_256 | FE_CAN_QAM_AUTO)) || dtp.Modulation() == QAM_AUTO && !(frontendInfo.caps & FE_CAN_QAM_AUTO) || dtp.Modulation() == VSB_8 && !(frontendInfo.caps & FE_CAN_8VSB) || dtp.Modulation() == VSB_16 && !(frontendInfo.caps & FE_CAN_16VSB) ||
_______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr