mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed "read incomplete section" errors
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
							
								
								
									
										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 | ||||
|   (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). | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
| @@ -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); | ||||
|                         } | ||||
|                      } | ||||
|                   } | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user