[vdr] [PATCH] time warp

Birgit & Andreas Böttger fboettger at t-online.de
Tue Jun 21 21:19:26 CEST 2005


Klaus Schmidinger schrieb:
> Isn't all that data protected by CRC32 checksums?
> How could "garbage" get in there?
> 
> Maybe somebody should try to find out why that "garbage"
> is produced in the first place...

I have inserted two DEBUG lines:

sections.c:
(vdr 1.3.22, leading spaces trimed)
-----
    // Distribute data to all attached filters:
    int pid = fh->filterData.pid;
    int tid = buf[0];
+  if (pid == 0x14) {
+     isyslog("DEBUG cSectionHandler::Action() "
+             "Length: %d, buf: %03d;%03d;%03d;%03d;%03d;%03d;%03d;%03d;",
+             len, buf[0],buf[1],buf[2],buf[3],buf[4],buf[5],buf[6],buf[7]);
+  }
    for (cFilter *fi = filters.First(); fi; fi = filters.Next(fi)) {
       if (fi->Matches(pid, tid))
          fi->Process(pid, tid, buf, len);
    }
-----

eit.c:
(vdr 1.3.22)
-----
    cTDT::cTDT(const u_char *Data)
    :SI::TDT(Data, false)
    {
+     isyslog("DEBUG cTDT::cTDT() "
+             "Data: %03d;%03d;%03d;%03d;%03d;%03d;%03d;%03d;",
+             Data[0],Data[1],Data[2],Data[3],Data[4],Data[5],Data[6],Data[7]);
+
      CheckParse();
-----

Here are two examples:

[RTL, correct time]
Jun 21 02:05:53 vdr vdr[22791]: DEBUG cSectionHandler::Action() Length: 8, buf: 112;112;005;209;038;000;005;085;
Jun 21 02:06:02 vdr vdr[22794]: DEBUG cSectionHandler::Action() Length: 8, buf: 112;112;005;064;207;022;148;003;
Jun 21 02:06:02 vdr vdr[22794]: DEBUG cTDT::cTDT() Data: 112;112;005;064;207;022;148;003;
Jun 21 02:06:02 vdr vdr[22794]: diff = 1102463777, ignored to avoid time warp :)
Jun 21 02:06:03 vdr vdr[22794]: DEBUG cSectionHandler::Action() Length: 8, buf: 112;112;005;209;038;000;006;004;

[ARD, 21 seconds to late]
Jun 21 11:13:23 vdr vdr[24655]: DEBUG cSectionHandler::Action() Length: 8, buf: 112;112;005;209;038;009;019;035;
Jun 21 11:13:23 vdr vdr[24655]: DEBUG cTDT::cTDT() Data: 112;112;005;209;038;009;019;035;
Jun 21 11:13:24 vdr vdr[24655]: DEBUG cSectionHandler::Action() Length: 72, buf: 112;112;069;243;010;029;199;036;
Jun 21 11:13:24 vdr vdr[24655]: DEBUG cTDT::cTDT() Data: 112;112;069;243;010;029;199;036;
Jun 21 11:13:24 vdr vdr[24655]: diff = 749663640, ignored to avoid time warp :)
Jun 21 11:13:25 vdr vdr[24655]: DEBUG cSectionHandler::Action() Length: 8, buf: 112;112;005;209;038;009;019;037;

It seems that it's not a bug of vdr, or am I wrong?
Could it be a driver problem?
Or garbage from transponder?

Since one hour I use ZDF to get the system time from,
waiting for "ignored to avoid time warp :)".

Kind regards
Andreas Böttger



More information about the vdr mailing list