[linux-dvb] DVB-S Channel searching problem

Mika Laitio lamikr at pilppa.org
Sun Jan 4 13:42:06 CET 2009


> http://mercurial.intuxication.org/hg/s2-liplianin (yesterday Igor synchronized it with current v4l-dvb)
> +
> http://hg.kewl.org/dvb2010/ - new dvb scaner
>
> for me everything is working without any problem with my hvr4000. Also patched vdr 170 works well with s2api

Can you test whether channel switching works for you with
following
- vdr-1.7.2
- vdr-1.7.2-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff
- vdr172_v4ldvb_2g_modulation_support.patch (attached)
- streamdev plugin

I can only watch those channels that I have previously tuned with szap or 
szap2 or vdr.1.6.0? If it works for you, what other cards than hvr-4000 
you have simultaneously connected and does the hvr-4000 be 
/dev/dvb/adapter0 or 1? (for me it's adapter1)

-------------- next part --------------
diff --git a/dvbdevice.c b/dvbdevice.c
index e0b05a1..08dc63f 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -32,7 +32,7 @@
 // unpatched driver. However, with an unpatched driver it will not support
 // DVB-S2 hardware. If you have DVB-S2 hardware you need to either patch
 // the driver or modify the line that uses this macro in cDvbDevice::cDvbDevice().
-#define FE_CAN_2ND_GEN_MODULATION 0x10000000
+#define FE_CAN_2G_MODULATION 0x10000000
 
 #define DO_REC_AND_PLAY_ON_PRIMARY_DEVICE 1
 #define DO_MULTIPLE_RECORDINGS 1
@@ -491,7 +491,7 @@ cDvbDevice::cDvbDevice(int n)
   if (fd_frontend >= 0) {
      if (ioctl(fd_frontend, FE_GET_INFO, &frontendInfo) >= 0) {
         switch (frontendInfo.type) {
-          case FE_QPSK: frontendType = (frontendInfo.caps & FE_CAN_2ND_GEN_MODULATION) ? SYS_DVBS2 : SYS_DVBS; break;
+          case FE_QPSK: frontendType = (frontendInfo.caps & FE_CAN_2G_MODULATION) ? SYS_DVBS2 : SYS_DVBS; break;
           case FE_OFDM: frontendType = SYS_DVBT; break;
           case FE_QAM:  frontendType = SYS_DVBC_ANNEX_AC; break;
           case FE_ATSC: frontendType = SYS_ATSC; break;
@@ -505,6 +505,7 @@ cDvbDevice::cDvbDevice(int n)
         if (frontendType == SYS_DVBS2)
            numProvidedSystems++;
         isyslog("device %d provides %s (\"%s\")", CardIndex() + 1, DeliverySystems[frontendType], frontendInfo.name);
+	printf("device %d provides %s (\"%s\")\n", CardIndex() + 1, DeliverySystems[frontendType], frontendInfo.name);
         dvbTuner = new cDvbTuner(fd_frontend, CardIndex(), frontendType);
         }
      }


More information about the linux-dvb mailing list