From patchwork Fri Jan 2 15:37:55 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mika Laitio X-Patchwork-Id: 12688 Received: from dyn60-31.dsl.spy.dnainternet.fi ([83.102.60.31] helo=shogun.pilppa.org) by www.linuxtv.org with esmtp (Exim 4.63) (envelope-from ) id 1LIm69-00024M-J1 for vdr@linuxtv.org; Fri, 02 Jan 2009 16:38:06 +0100 Received: from mail.pilppa.org (mail.pilppa.org [83.102.60.31]) Date: Fri, 2 Jan 2009 17:37:55 +0200 (EET) From: Mika Laitio To: VDR Mailing List In-Reply-To: <20081231161442.GD3559@gmail.com> Message-ID: References: <20081229210555.GB5601@gmail.com> <4959E540.5030103@gmx.de> <20081230110237.GA3484@gmail.com> <20081231154045.GC3559@gmail.com> <20081231161442.GD3559@gmail.com> MIME-Version: 1.0 X-LSpam-Score: -1.3 (-) X-LSpam-Report: No, score=-1.3 required=5.0 tests=AWL=0.315, BAYES_00=-2.599, RCVD_IN_SORBS_DUL=0.877, RDNS_DYNAMIC=0.1, UNPARSEABLE_RELAY=0.001, WEIRD_PORT=0.001 autolearn=no Subject: Re: [vdr] HVR-4000, vdr-1.7.2 and v4l-dvb'hg ? X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.9 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: Fri, 02 Jan 2009 15:38:06 -0000 Status: O X-Status: X-Keywords: X-UID: 18975 >> Hmm, the differences in my and your setup are >> 1) I have also hvr-1300 in my system (for dvb-t) >> 2) I modified the vdr sources instead of modifying the driver for >> informing the system from the S2 capabilities (klaus explained also that >> method in his 1.7.2 announcements). I can re-test this in another way once >> the 2G_CAP patch is applied to v4l-dvb repository. > > I applied Klaus latest patch to v4l-dvb source and changed > FE_CAN_2ND_GEN_MODULATION to FE_CAN_2G_MODULATION in dvbdevice.c. > > Do you have MFE's version of v4l-dvb aswell ? Yes, I have. I am actually now using 2 day old version from http://linuxtv.org/hg/v4l-dvb which includes the FE_CAN_2G_MODULATION flag support in driver. And now I am finally able to watch the HD content with my vdr 1.7.2 and streamdev server plugin by using mplayer or vlc as a client with HVR-4000. BUT there is somewhere bug in the vdr channel tuning because it seems that if I want to watch dvb-s or dvb-s2 channels, I must first tune to correct channel with vdr-1.6.0 or with szap-s2... I tried to put step by step guide/notes how I got VDR172/h264 KIND of working... Maybe you could get it working in similar way... 1) Build and install latest v4l-dvb drivers 2) Checkout s2-szap from http://mercurial.intuxication.org/hg/szap-s2 (I am using couple of weeks old version), and change INCLUDE line in Makefile to point your v4l-dvb driver sources. I have for example INCLUDE=-I/home/lamikr/dvb/drivers/20081231/v4l-dvb/linux/include Then build it. 3) Add hd channel info to szap2 channels.conf With astra-28.2E I can use following with szap2channels.conf arteHD:11361:hC23M5O35S1:S19.2E:22000:6210:6230:0:11120:1:1011:0 4) Test whether tuning works with szap2, I use [lamikr@tinka szap-s2]$ ./szap-s2 -a 1 -S 2 -c szap2channels.conf arteHD ERROR: invalid value for parameter '' reading channels from file 'szap2channels.conf' zapping to 1 'arteHD': delivery DVB-S2, modulation 8PSK sat 0, frequency 11361 MHz H, symbolrate 22000000, coderate 2/3, rolloff 0.35 vpid 0x1842, apid 0x1856, sid 0x0000 using '/dev/dvb/adapter1/frontend0' and '/dev/dvb/adapter1/demux0' status 1f | signal d000 | snr 0000 | ber 00000000 | unc 00000000 | FE_HAS_LOCK status 1f | signal c2c0 | snr 8b33 | ber 00000000 | unc 00000000 | FE_HAS_LOCK (I could then try to record and watch from command line by using commands: # dvbstream -c 1 8192 -o > test3.mpg # vlc test3.mpg ) 4) Extract vdr-1.7.2 (I have cloned from unofficial vdr git repo) 5) Apply attached 2G modulation support patch for vdr-1.7.2 (due to flag name change in official V4L-DVB drivers) patch -p1 < ../vdr172_v4ldvb_2g_modulation_support.patch 6) Apply h264 support patch for vdr-1.7.2 that has been earlier send to mailing list: patch -p1 < ../vdr-1.7.2-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff 7) download and configure latest dvbstreamdev plugin from cvs - update plugins/streamdev/streamdevhosts.conf - update svdrphosts.conf - update runvdr (VDRCMD="$VDRPRG --lirc -w 15 -c /home/lamikr/dvb/vdr/vdr-git -Pstreamdev-server") 8) Include arteHD info to top of the vdr channels.conf arte;ARD:10743:hC56M5O0S0:S19.2E:22000:401=2:402=deu,403=fra:404:0:28724:1:1051:0 arte HD;ZDFvision:11361:hC23M16O35S1:S19.2E:22000:6210=27:6221=deu,6222=fra:6230:0:11120:1:1011:0 9) Make sure you have tuned to arteHD with szap-s2 and then closed szap (see step 4) 10) launch vdr 1.7.2 with runvdr 11) watch arteHD with vlc http://localhost:3000/TS/2 If I now would like to watch arte instead, I would need to close vdr, szap first from command line and then re-launch vdr... Btw... I now really envy the vdpay/nvidia cpu usage as with 780G motherboard I have... Tasks: 174 total, 3 running, 171 sleeping, 0 stopped, 0 zombie Cpu(s): 55.4%us, 3.5%sy, 0.5%ni, 40.5%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 1799896k total, 1779300k used, 20596k free, 272416k buffers Swap: 8185076k total, 176k used, 8184900k free, 728196k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 8866 lamikr 20 0 598m 57m 20m S 108 3.2 0:23.90 vlc 8854 root 20 0 214m 24m 4460 S 2 1.4 0:01.12 vdr 5200 lamikr 9 -11 224m 5776 3848 S 2 0.3 1:31.79 pulseaudio 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); } }