mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Increased the maximum possible packet size to avoid corrupted streams
This commit is contained in:
		| @@ -525,3 +525,7 @@ Walter Stroebel <walter.stroebel@lifeline.nl> | ||||
|  | ||||
| Paul Gohn <pgohn@nexgo.de> | ||||
|  for adding 'Hrvatska radiotelevizija' and 'RTV Slovenija' to ca.conf | ||||
|  | ||||
| Teemu Rantanen <tvr@iki.fi> | ||||
|  for increased the maximum possible packet size in remux.c to avoid corrupted streams | ||||
|  with broadcasters that send extremely large PES packets | ||||
|   | ||||
							
								
								
									
										4
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -1917,7 +1917,7 @@ Video Disk Recorder Revision History | ||||
|   EPG data, that string is now limited in length when used in a recording's | ||||
|   file name. | ||||
|  | ||||
| 2003-01-19: Version 1.1.22 | ||||
| 2003-01-24: Version 1.1.22 | ||||
|  | ||||
| - Added 'Hrvatska radiotelevizija' and 'RTV Slovenija' to ca.conf (thanks to | ||||
|   Paul Gohn). | ||||
| @@ -1925,3 +1925,5 @@ Video Disk Recorder Revision History | ||||
| - Since disk file systems apparently don't honor the O_NONBLOCK flag to read from | ||||
|   a file in non-blocking mode the cDvbPlayer now uses a non blocking file reader | ||||
|   class to make sure replay remains smooth even under heavy system load. | ||||
| - Increased the maximum possible packet size in remux.c to avoid corrupted streams | ||||
|   with broadcasters that send extremely large PES packets (thanks to Teemu Rantanen). | ||||
|   | ||||
							
								
								
									
										8
									
								
								remux.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								remux.c
									
									
									
									
									
								
							| @@ -8,7 +8,7 @@ | ||||
|  * the Linux DVB driver's 'tuxplayer' example and were rewritten to suit | ||||
|  * VDR's needs. | ||||
|  * | ||||
|  * $Id: remux.c 1.12 2002/10/12 13:33:54 kls Exp $ | ||||
|  * $Id: remux.c 1.13 2003/01/24 14:21:17 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| /* The calling interface of the 'cRemux::Process()' function is defined | ||||
| @@ -103,8 +103,8 @@ | ||||
| #define ADAPT_FIELD    0x20 | ||||
| //XXX TODO | ||||
|  | ||||
| #define MAX_PLENGTH 0xFFFF | ||||
| #define MMAX_PLENGTH (4*MAX_PLENGTH) | ||||
| #define MAX_PLENGTH  0xFFFF          // the maximum PES packet length (theoretically) | ||||
| #define MMAX_PLENGTH (8*MAX_PLENGTH) // some stations send PES packets that are extremely large, e.g. DVB-T in Finland | ||||
|  | ||||
| #define IPACKS 2048 | ||||
|  | ||||
| @@ -384,6 +384,8 @@ void cTS2PES::instant_repack(const uint8_t *Buf, int Count) | ||||
|         } | ||||
|  | ||||
|      if (plength && found == plength + 6) { | ||||
|         if (plength == MMAX_PLENGTH - 6) | ||||
|            esyslog("ERROR: PES packet length overflow in remuxer (stream corruption)"); | ||||
|         send_ipack(); | ||||
|         reset_ipack(); | ||||
|         if (c < Count) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user