summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2020-11-24 21:19:49 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2020-11-24 21:19:49 +0100
commit56e2ed262838e05cbeb2848571dd4c8d45425506 (patch)
treeb0b443369341f17bf2dfc7a9f9df1ece954df29d
parentad55da4ef95044f68cc337a4b0265b984467cc6f (diff)
downloadvdr-56e2ed262838e05cbeb2848571dd4c8d45425506.tar.gz
vdr-56e2ed262838e05cbeb2848571dd4c8d45425506.tar.bz2
Fixed "read incomplete section" errors
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY3
-rw-r--r--dvbdevice.c8
-rw-r--r--sections.c9
-rw-r--r--sections.h3
5 files changed, 14 insertions, 10 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 29a91c90..9e702288 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -3633,6 +3633,7 @@ Helmut Binder <cco@aon.at>
possible error message
for initializing the status variable in cDvbTuner::GetFrontendStatus() and
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
+ for fixing "read incomplete section" errors
Ulrich Eckhardt <uli@uli-eckhardt.de>
for reporting a problem with shutdown after user inactivity in case a plugin is
diff --git a/HISTORY b/HISTORY
index 1bf64191..16d78aaf 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9536,7 +9536,7 @@ Video Disk Recorder Revision History
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
(thanks to Helmut Binder).
-2020-11-22:
+2020-11-24:
- Fixed multiple recording entries in case a recording is started during the initial
reading of the video directory (reported by Claus Muus).
@@ -9546,3 +9546,4 @@ Video Disk Recorder Revision History
- Fixed allocating memory for cImage (reported by Christoph Haubrich).
- Fixed parsing the '-l' command line option (reported by Harald Milz).
- Fixed possible compilation errors with libjpeg (thanks to Bernd Kuhls).
+- Fixed "read incomplete section" errors (thanks to Helmut Binder).
diff --git a/dvbdevice.c b/dvbdevice.c
index a7797203..b5153db0 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbdevice.c 4.27 2020/10/16 13:58:45 kls Exp $
+ * $Id: dvbdevice.c 4.28 2020/11/24 21:19:49 kls Exp $
*/
#include "dvbdevice.h"
@@ -2138,11 +2138,17 @@ bool cDvbDevice::SetPid(cPidHandle *Handle, int Type, bool On)
return true;
}
+#define RB_NUM_SECTIONS 8 // default: 2 sections = 8192 bytes
+
int cDvbDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask)
{
cString FileName = DvbName(DEV_DVB_DEMUX, adapter, frontend);
int f = open(FileName, O_RDWR | O_NONBLOCK);
if (f >= 0) {
+ if (Pid == EITPID) { // increase ringbuffer size for EIT
+ if (ioctl(f, DMX_SET_BUFFER_SIZE, MAX_SECTION_SIZE * RB_NUM_SECTIONS) < 0)
+ dsyslog("OpenFilter (pid=%d, tid=%02X): ioctl DMX_SET_BUFFER_SIZE failed", Pid, Tid);
+ }
dmx_sct_filter_params sctFilterParams;
memset(&sctFilterParams, 0, sizeof(sctFilterParams));
sctFilterParams.pid = Pid;
diff --git a/sections.c b/sections.c
index 4f076ad0..035096bb 100644
--- a/sections.c
+++ b/sections.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: sections.c 4.1 2019/05/28 14:09:04 kls Exp $
+ * $Id: sections.c 4.2 2020/11/24 21:19:49 kls Exp $
*/
#include "sections.h"
@@ -48,7 +48,6 @@ cSectionHandler::cSectionHandler(cDevice *Device)
statusCount = 0;
on = false;
waitForLock = false;
- lastIncompleteSection = 0;
Start();
}
@@ -212,10 +211,8 @@ void cSectionHandler::Action(void)
fi->Process(pid, tid, buf, len);
}
}
- else if (time(NULL) - lastIncompleteSection > 10) { // log them only every 10 seconds
- dsyslog("read incomplete section - len = %d, r = %d", len, r);
- lastIncompleteSection = time(NULL);
- }
+ else
+ dsyslog("tp %d (%d/%02X) read incomplete section - len = %d, r = %d", Transponder(), fh->filterData.pid, buf[0], len, r);
}
}
}
diff --git a/sections.h b/sections.h
index f11f4794..3aa03953 100644
--- a/sections.h
+++ b/sections.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: sections.h 1.5 2005/08/13 11:23:55 kls Exp $
+ * $Id: sections.h 4.1 2020/11/24 21:19:49 kls Exp $
*/
#ifndef __SECTIONS_H
@@ -27,7 +27,6 @@ private:
cDevice *device;
int statusCount;
bool on, waitForLock;
- time_t lastIncompleteSection;
cList<cFilter> filters;
cList<cFilterHandle> filterHandles;
void Add(const cFilterData *FilterData);