Commit Message
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
@@ -303,6 +303,7 @@
sc.backupHack = -1;
sc.backupInterval = -1;
sc.fastdigibox_change = -1;
+ fd_radio = -1;
}
cPluginAnalogtv::~cPluginAnalogtv()
@@ -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");
@@ -171,6 +171,8 @@
} CHANNELNAMES;
+_EXTERN int fd_radio;
+
_EXTERN SETUP s, sx, sc, sy;
_EXTERN char video_device[MAX_DEV_NAME];
@@ -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??