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