From patchwork Tue Jun 8 20:24:40 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dave P X-Patchwork-Id: 12818 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.69) (envelope-from ) id 1OM5Ln-0005jK-Do for vdr@linuxtv.org; Tue, 08 Jun 2010 22:24:44 +0200 X-tubIT-Incoming-IP: 217.155.3.209 Received: from sodom.pickles.me.uk ([217.155.3.209]) by mail.tu-berlin.de (exim-4.69/mailfrontend-c) with esmtps [TLSv1:AES256-SHA:256] for id 1OM5Lm-0000q0-5Z; Tue, 08 Jun 2010 22:24:43 +0200 Received: from sodom.pickles.me.uk (sodom.pickles.me.uk [127.0.0.1]) by sodom.pickles.me.uk (8.14.3/8.14.3) with ESMTP id o58KOeK1022491 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 8 Jun 2010 21:24:40 +0100 Received: from localhost (localhost [[UNIX: localhost]]) by sodom.pickles.me.uk (8.14.3/8.14.3/Submit) id o58KOeM0022487 for vdr@linuxtv.org; Tue, 8 Jun 2010 21:24:40 +0100 From: Dave P To: vdr@linuxtv.org Date: Tue, 8 Jun 2010 21:24:40 +0100 User-Agent: KMail/1.9.10 MIME-Version: 1.0 Message-Id: <201006082124.40356.vdr@pickles.me.uk> X-tubIT-Score: 0.0 () X-PMX-Version: 5.5.4.371499, Antispam-Engine: 2.7.1.369594, Antispam-Data: 2010.6.8.201214 X-PMX-Spam: Gauge=XIIIIIIIII, Probability=19%, Report=' INVALID_CHARSET 2, MIME_TEXT_ONLY_MP_MIXED 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_3000_3999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, ECARD_WORD 0, TO_NO_NAME 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_MIXED 0, __HAS_MSGID 0, __INT_PROD_TV 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __USER_AGENT 0' X-LSpam-Score: -3.2 (---) X-LSpam-Report: No, score=-3.2 required=5.0 tests=AWL=0.423, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1 autolearn=ham Subject: [vdr] Live TV problem with 1.7.15 X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: VDR Mailing List List-Id: VDR Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jun 2010 20:24:44 -0000 Status: O X-Status: X-Keywords: X-UID: 23020 (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) ||