From patchwork Mon May 16 13:15:50 2005 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jose Alberto Reguero X-Patchwork-Id: 11881 Received: from stress.telefonica.net ([213.4.129.135] helo=telesmtp4.mail.isp) by www.linuxtv.org with esmtp (Exim 4.34) id 1DXfTA-0001Z4-Aa for vdr@linuxtv.org; Mon, 16 May 2005 15:17:16 +0200 Received: from jar.dominio ([80.25.230.35]) by telesmtp4.mail.isp (terra.es) with ESMTP id IGL3IL00.XVT for ; Mon, 16 May 2005 15:15:57 +0200 From: Jose Alberto Reguero To: "Klaus Schmidinger's VDR" Date: Mon, 16 May 2005 15:15:50 +0200 User-Agent: KMail/1.8 MIME-Version: 1.0 Message-Id: <200505161515.51885.jareguero@telefonica.net> Subject: [vdr] Radio in analogtv plugin X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Klaus Schmidinger's VDR List-Id: Klaus Schmidinger's VDR List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 May 2005 13:17:16 -0000 Status: O X-Status: X-Keywords: X-UID: 2249 I am triying to make analogtv plugin with a pvr-350 to work with analog radio. I must set CBR for the radio work properly. When I play a radio recording program the time that appear in vdr is 1/4 of the real time. Any ideas? Thanks. Jose Alberto diff -Naur /usr/local/src/analogtv/analogtv.c analogtv/analogtv.c --- /usr/local/src/analogtv/analogtv.c 2005-01-12 09:28:55.000000000 +0100 +++ analogtv/analogtv.c 2005-04-03 22:55:11.000000000 +0200 @@ -303,6 +303,7 @@ sc.backupHack = -1; sc.backupInterval = -1; sc.fastdigibox_change = -1; + fd_radio = -1; } cPluginAnalogtv::~cPluginAnalogtv() diff -Naur /usr/local/src/analogtv/device.c analogtv/device.c --- /usr/local/src/analogtv/device.c 2005-01-17 12:28:52.000000000 +0100 +++ analogtv/device.c 2005-05-16 15:07:07.000000000 +0200 @@ -284,11 +284,16 @@ firstVideoPts = 0; - - if (pids[2] == -1) { - Apid = pids[1]; // ptAudio - Vpid = pids[0]; // ptVideo - Ppid = -1; // ptPcr + if (fd_radio >= 0) { + Apid = pids[0]; + Vpid = -1; + Ppid = -1; + d(1, "NEW Audio-PID=%d", Apid); + } + else if (pids[2] == -1) { + Apid = pids[1]; // ptAudio + Vpid = pids[0]; // ptVideo + Ppid = -1; // ptPcr d(1, "NEW Audio-PID=%d, Video-PID=%d", Apid, Vpid); } @@ -300,12 +305,14 @@ d(1, "NEW Audio-PID=%d, Video-PID=%d, PCR-PID=%d", Apid, Vpid, Ppid); } +#if 0 if (isPVR) { if (setPVRpids(Apid, Vpid, Ppid)) { d(0, "Cannot set Pids on PVR-card%s", ciao); return false; } } +#endif #ifdef DBG log = fopen("/tmp/mpeg.log", "w"); diff -Naur /usr/local/src/analogtv/player-analogtv.h analogtv/player-analogtv.h --- /usr/local/src/analogtv/player-analogtv.h 2005-01-12 09:28:55.000000000 +0100 +++ analogtv/player-analogtv.h 2005-04-03 22:54:26.000000000 +0200 @@ -171,6 +171,8 @@ } CHANNELNAMES; +_EXTERN int fd_radio; + _EXTERN SETUP s, sx, sc, sy; _EXTERN char video_device[MAX_DEV_NAME]; diff -Naur /usr/local/src/analogtv/pvr.c analogtv/pvr.c --- /usr/local/src/analogtv/pvr.c 2005-01-12 09:28:55.000000000 +0100 +++ analogtv/pvr.c 2005-04-03 22:59:38.000000000 +0200 @@ -183,9 +183,27 @@ } if (opts & FREQUENCY) { + if (freq < 108000) { + if (fd_radio == -1) { + fd_radio = open ("/dev/radio",O_RDONLY); + } + freq = int((freq/1000.0f + .5/16) * 16); + } + else { + if (fd_radio >=0) { + close (fd_radio); + fd_radio = -1; + } + ofs = (ofs - 16) * FREQDELTA; // 16 is "ground zero" + + freq = (freq + ofs) * 16 / 1000; + } + +#if 0 ofs = (ofs - 16) * FREQDELTA; // 16 is "ground zero" freq = (freq + ofs) * 16 / 1000; +#endif memset(&vf, 0, sizeof(f)); vf.tuner = analogModule; // FIXME??