mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed "read incomplete section" errors
This commit is contained in:
parent
ad55da4ef9
commit
56e2ed2628
@ -3633,6 +3633,7 @@ Helmut Binder <cco@aon.at>
|
|||||||
possible error message
|
possible error message
|
||||||
for initializing the status variable in cDvbTuner::GetFrontendStatus() and
|
for initializing the status variable in cDvbTuner::GetFrontendStatus() and
|
||||||
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
|
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
|
||||||
|
for fixing "read incomplete section" errors
|
||||||
|
|
||||||
Ulrich Eckhardt <uli@uli-eckhardt.de>
|
Ulrich Eckhardt <uli@uli-eckhardt.de>
|
||||||
for reporting a problem with shutdown after user inactivity in case a plugin is
|
for reporting a problem with shutdown after user inactivity in case a plugin is
|
||||||
|
3
HISTORY
3
HISTORY
@ -9536,7 +9536,7 @@ Video Disk Recorder Revision History
|
|||||||
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
|
cDvbTuner::GetSignalStats() to avoid problems with drivers that don't do this
|
||||||
(thanks to Helmut Binder).
|
(thanks to Helmut Binder).
|
||||||
|
|
||||||
2020-11-22:
|
2020-11-24:
|
||||||
|
|
||||||
- Fixed multiple recording entries in case a recording is started during the initial
|
- Fixed multiple recording entries in case a recording is started during the initial
|
||||||
reading of the video directory (reported by Claus Muus).
|
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 allocating memory for cImage (reported by Christoph Haubrich).
|
||||||
- Fixed parsing the '-l' command line option (reported by Harald Milz).
|
- Fixed parsing the '-l' command line option (reported by Harald Milz).
|
||||||
- Fixed possible compilation errors with libjpeg (thanks to Bernd Kuhls).
|
- Fixed possible compilation errors with libjpeg (thanks to Bernd Kuhls).
|
||||||
|
- Fixed "read incomplete section" errors (thanks to Helmut Binder).
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "dvbdevice.h"
|
||||||
@ -2138,11 +2138,17 @@ bool cDvbDevice::SetPid(cPidHandle *Handle, int Type, bool On)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define RB_NUM_SECTIONS 8 // default: 2 sections = 8192 bytes
|
||||||
|
|
||||||
int cDvbDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask)
|
int cDvbDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask)
|
||||||
{
|
{
|
||||||
cString FileName = DvbName(DEV_DVB_DEMUX, adapter, frontend);
|
cString FileName = DvbName(DEV_DVB_DEMUX, adapter, frontend);
|
||||||
int f = open(FileName, O_RDWR | O_NONBLOCK);
|
int f = open(FileName, O_RDWR | O_NONBLOCK);
|
||||||
if (f >= 0) {
|
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;
|
dmx_sct_filter_params sctFilterParams;
|
||||||
memset(&sctFilterParams, 0, sizeof(sctFilterParams));
|
memset(&sctFilterParams, 0, sizeof(sctFilterParams));
|
||||||
sctFilterParams.pid = Pid;
|
sctFilterParams.pid = Pid;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "sections.h"
|
||||||
@ -48,7 +48,6 @@ cSectionHandler::cSectionHandler(cDevice *Device)
|
|||||||
statusCount = 0;
|
statusCount = 0;
|
||||||
on = false;
|
on = false;
|
||||||
waitForLock = false;
|
waitForLock = false;
|
||||||
lastIncompleteSection = 0;
|
|
||||||
Start();
|
Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,10 +211,8 @@ void cSectionHandler::Action(void)
|
|||||||
fi->Process(pid, tid, buf, len);
|
fi->Process(pid, tid, buf, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (time(NULL) - lastIncompleteSection > 10) { // log them only every 10 seconds
|
else
|
||||||
dsyslog("read incomplete section - len = %d, r = %d", len, r);
|
dsyslog("tp %d (%d/%02X) read incomplete section - len = %d, r = %d", Transponder(), fh->filterData.pid, buf[0], len, r);
|
||||||
lastIncompleteSection = time(NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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
|
#ifndef __SECTIONS_H
|
||||||
@ -27,7 +27,6 @@ private:
|
|||||||
cDevice *device;
|
cDevice *device;
|
||||||
int statusCount;
|
int statusCount;
|
||||||
bool on, waitForLock;
|
bool on, waitForLock;
|
||||||
time_t lastIncompleteSection;
|
|
||||||
cList<cFilter> filters;
|
cList<cFilter> filters;
|
||||||
cList<cFilterHandle> filterHandles;
|
cList<cFilterHandle> filterHandles;
|
||||||
void Add(const cFilterData *FilterData);
|
void Add(const cFilterData *FilterData);
|
||||||
|
Loading…
Reference in New Issue
Block a user