Mailing List archive

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

[vdr] Re: Necessity of Emergency Exits...



-----BEGIN PGP SIGNED MESSAGE-----

Thanks a lot, I'll try to build a patched version of VDR tonight...
Maybe one or the other question will come up... ;)

On Tuesday 23 July 2002 15:19, Otto Felbecker wrote:
> Hi Karsten,
>
> That's the original patch from Klaus:
> ---------------------------------------------------------------
> --- dvbapi.c    2002/03/29 11:32:47
> +++ dvbapi.c    2002/03/16 14:20:47
> @@ -525,7 +527,6 @@
>    time_t t = time(NULL);
>    recording = true;
>    for (;;) {
> -      if (cFile::FileReady(videoDev, 100)) {
>           int r = read(videoDev, b, sizeof(b));
>           if (r > 0) {
>              uchar *p = b;
> @@ -546,12 +547,12 @@
>                    }
>                 }
>              }
> -         }
>        if (time(NULL) - t > MAXBROKENTIMEOUT) {
>           esyslog(LOG_ERR, "ERROR: video data stream broken");
>           cThread::EmergencyExit(true);
>           t = time(NULL);
>           }
> +      cFile::FileReady(videoDev, 100);
>        if (!recording)
>           break;
>        }
>
> ---------------------------------------------------------------
> I think the line numbers hase changed.
>
> My patch:
> Original dvapi.c
> line 526
>
>   for (;;) {
>       if (cFile::FileReady(videoDev, 100)) {
>          int r = read(videoDev, b, sizeof(b));
>          if (r > 0) {
>             uchar *p = b;
>             while (r > 0) {
>                   int w = Put(p, r);
>                   p += w;
>                   r -= w;
>                   if (r > 0)
>                      usleep(1); // this keeps the CPU load low
>                   }
>             t = time(NULL);
>             }
>          else if (r < 0) {
>             if (FATALERRNO) {
>                if (errno == EBUFFEROVERFLOW) // this error code is not
> defined in the library
>                   esyslog(LOG_ERR, "ERROR (%s,%d): DVB driver buffer
> overflow", __FILE__, __LINE__);
>                else {
>                   LOG_ERROR;
>                   break;
>                   }
>                }
>             }
>          }
>       if (time(NULL) - t > MAXBROKENTIMEOUT) {
>          esyslog(LOG_ERR, "ERROR: video data stream broken");
>          cThread::EmergencyExit(true);
>          t = time(NULL);
>          }
>       if (!recording)
>          break;
>       }
>
> changed to:
> (same number of lines)
>
>   for (;;) {
> //      if (cFile::FileReady(videoDev, 100)) {
>          int r = read(videoDev, b, sizeof(b));
>          if (r > 0) {
>             uchar *p = b;
>             while (r > 0) {
>                   int w = Put(p, r);
>                   p += w;
>                   r -= w;
>                   if (r > 0)    //
>                      usleep(1); // this keeps the CPU load low
>                   }
>             t = time(NULL);
>             }
>          else if (r < 0) {
>             if (FATALERRNO) {
>                if (errno == EBUFFEROVERFLOW) // this error code is not
> defined in the library
>                   esyslog(LOG_ERR, "ERROR (%s,%d): DVB driver buffer
> overflow", __FILE__, __LINE__);
>                else {
>                   LOG_ERROR;
>                   break;
>                   }
>                }
>             }
> //         }
>       if (time(NULL) - t > MAXBROKENTIMEOUT) {
>          esyslog(LOG_ERR, "ERROR: video data stream broken");
>          cThread::EmergencyExit(true);
>          t = time(NULL);         }
>       cFile::FileReady(videoDev, 100);
>       if (!recording)
>          break;
>       }
>
> Karsten Müller schrieb:
> > -----BEGIN PGP SIGNED MESSAGE-----
> >
> > On Tuesday 23 July 2002 11:23, Otto Felbecker wrote:
> > > Hi,
> > > the code changed in dvbapi.c from vdr-1.0.0.pre4 to pre5. I always
> > > patch the dvbapi.c with old pre4 code (watch for the exact line numbers
> > > for the AIO patch). From this point all the restart problems (perhaps
> > > weak signal) are gone. Ok i live with audio/video glitches, no problem
> > > at all. Otto
> >
> > That would be my solution :) Where can I get that patch from ?
> > Maybe we could (re-) incorporate that source into the "normal"
> > tree encapsulated within a build option like e.g. "NORESTARTS=1"
> >
> > > Karsten Müller schrieb:
> >
> > [...lots of stuff deleted...]
> >
> > - --
> > with best regards
> > - ---
> > Karsten Mueller
> > Softwaredevelopment / Keyaccount Manager
> > RATIO Entwicklungen GmbH
> > Admiralitaetstr. 59
> > 20459 Hamburg
> > Email: mailto:kmu@ratio.de
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.0.6 (GNU/Linux)
> > Comment: For info see http://www.gnupg.org
> >
> > iQEVAwUBPT0x/Pa/7v6IZOEZAQFkxQf/arODKk6yqflb/PmfKgWwtxXmNawkLyS3
> > Edm+sXetsR+1xip+49RxqspTIThqEd3gL//0eKJDtulhUflk6grHjp8BObmMGuzB
> > WChgS/QFIj16rjERBeJEMpreG19V17eOoqhtdsR1ffviYCDb84wDXfM81RjRBIgZ
> > aTitpzrYaw5yl/EdBEY1hDvdLkkWJ6rr9D5QcmaxtJkXwANWa4sCN33SLYwFvdnS
> > ugF0xWA+f8ZT8Tr6djWw6XKBSTmfLTI2ve+ehFF3vBIBQpnPneska+5v15EIhEFN
> > xIjCxdchfLjylKNQ4RKacoA76P1l5nAZbO+iKJGAgqYdQ0wnXc0dDA==
> > =uVzp
> > -----END PGP SIGNATURE-----

- -- 
with best regards
- ---
Karsten Mueller
Softwaredevelopment / Keyaccount Manager
RATIO Entwicklungen GmbH
Admiralitaetstr. 59
20459 Hamburg
Email: mailto:kmu@ratio.de

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iQEVAwUBPT6Vy/a/7v6IZOEZAQGh/wgAq7NLtq/0t/1XF94caOrruFvTH533G4ET
7jMn39Q2vrFns8+KAePAfNEqeaWaJ8lniAQqPp1qGXgOUa3AWuKsFUM7rb+J7Lgf
6oVBXCMSavePopolrrpBOKnnqs1V4Sf9iYshyP6vEMjywSQfyUeFUpFAHM1+J+7M
1WpplmNNOqySZz/9bRcF50NszjjLit+aqSBeGqxLuuvg4/+d51oKzM/8ZZT5U9c1
OreDjKmPeVGO8HyXJ1TV1GXrgWeHAOvIdvXB/UDNPA7K0Thi0kvgPX3/N+nfpHP7
/uLNGZ2WKYFFryI0r3N8hSfGTs4YVh6yhRJ05T3mZVhy29Gs4kfcMg==
=w02N
-----END PGP SIGNATURE-----





Home | Main Index | Thread Index