Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: vdr-1.3.15 doesn't work well with a steerable dish



Luca Olivetti wrote:
Following up my report lost in the announce thread.

vdr-1.3.15, with a budget card (skystar2) and a dxr3.

When the dish is moving the call

if (!HasLock(TUNER_LOCK_TIMEOUT)...

in cDevice::AttachReceiver is problematic since it's not enough time to reach the target satellite, causing an error (and displaying nothing once the position has been reached).
[...]
I commented out that call altogether and it seems to work fine for live tv but not for recordings:

- with the dish positioned on hotbird (13E) I scheduled a recording on astra 2 (28.2E). No problems with this recording (the satellite switch from 13E to 28.2E takes around 20 seconds)

- then I scheduled a recording on hispasat (30W) and this didn't work (since it takes a lot more time, almost 2 minutes):

Nov 2 19:18:00 vdr vdr[971]: ERROR: thread 1195641776 won't end (waited 200 se
conds) - cancelling it...
Nov 2 19:18:00 vdr vdr[971]: timer 1 (6059 1918-1921 'CCValenciana') start
Nov 2 19:18:04 vdr vdr[971]: record /home/vdr/video/CCValenciana/2004-11-02.19
:18.50.99.rec
Nov 2 19:18:06 vdr vdr[971]: switching to channel 4011
Nov 2 19:18:06 vdr vdr[971]: info: !Canal no disponible!
Nov 2 19:18:08 vdr vdr[971]: switching to channel 6059
Nov 2 19:18:36 vdr vdr[971]: ERROR: video data stream broken
The second problem is "solved" by the attached patch (as long as the dish doesn't take more than 5 minutes to reach the target position). The proper solution would probably be to check that the dish is positioned, but I don't know how to do it inside of recorder.c (since cFileWriter doesn't know which device is sending it data).

Bye
--
- Yo también quiero una Europa libre de Patentes de Software -
- I want a Software Patents Free Europe too! And you? -
---------------------------------------------------------------
EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es
--- recorder.c.orig	2004-11-02 21:18:52.897932030 +0100
+++ recorder.c	2004-11-02 21:18:52.904929888 +0100
@@ -96,11 +96,13 @@
 void cFileWriter::Action(void)
 {
   time_t t = time(NULL);
+  time_t m = MAXBROKENTIMEOUT * 10;  //give more time to first packet
   active = true;
   while (active) {
         int Count;
         uchar *p = remux->Get(Count, &pictureType);
         if (p) {
+           m = MAXBROKENTIMEOUT; 
            //XXX+ active??? see old version (Busy)
            if (!active && pictureType == I_FRAME) // finish the recording before the next 'I' frame
               break;
@@ -118,7 +120,7 @@
               break;
            t = time(NULL);
            }
-        else if (time(NULL) - t > MAXBROKENTIMEOUT) {
+        else if (time(NULL) - t > m) {
            esyslog("ERROR: video data stream broken");
            cThread::EmergencyExit(true);
            t = time(NULL);

Attachment: signature.asc
Description: OpenPGP digital signature


Home | Main Index | Thread Index