diff options
| -rw-r--r-- | HISTORY | 1 | ||||
| -rw-r--r-- | remux.c | 8 | ||||
| -rw-r--r-- | remux.h | 4 | 
3 files changed, 7 insertions, 6 deletions
| @@ -9578,3 +9578,4 @@ Video Disk Recorder Revision History  2021-12-27:  - Fixed a possible crash in the Schedule menu, in case Setup.EPGLinger is 0. +- Fixed cTsPayload::AtPayloadStart() to ignore TS packets from other PIDs. @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: remux.c 4.9 2020/06/22 12:15:52 kls Exp $ + * $Id: remux.c 4.9.1.1 2021/12/27 10:59:22 kls Exp $   */  #include "remux.h" @@ -1292,7 +1292,7 @@ int cMpeg2Parser::Parse(const uchar *Data, int Length, int Pid)           tsPayload.Statistics();           break;           } -      if (tsPayload.AtPayloadStart() // stop at any new payload start to have the buffer refilled if necessary +      if (tsPayload.AtPayloadStart() // stop at a new payload start to have the buffer refilled if necessary           || tsPayload.Eof()) // or if we're out of data           break;        } @@ -1445,7 +1445,7 @@ int cH264Parser::Parse(const uchar *Data, int Length, int Pid)             default: ;             }           } -      if (tsPayload.AtPayloadStart() // stop at any new payload start to have the buffer refilled if necessary +      if (tsPayload.AtPayloadStart() // stop at a new payload start to have the buffer refilled if necessary           || tsPayload.Eof()) // or if we're out of data           break;        } @@ -1603,7 +1603,7 @@ int cH265Parser::Parse(const uchar *Data, int Length, int Pid)              break;              }           } -      if (tsPayload.AtPayloadStart() // stop at any new payload start to have the buffer refilled if necessary +      if (tsPayload.AtPayloadStart() // stop at a new payload start to have the buffer refilled if necessary           || tsPayload.Eof()) // or if we're out of data           break;        } @@ -4,7 +4,7 @@   * See the main source file 'vdr.c' for copyright information and   * how to reach the author.   * - * $Id: remux.h 4.6 2020/09/16 13:48:33 kls Exp $ + * $Id: remux.h 4.6.1.1 2021/12/27 10:58:36 kls Exp $   */  #ifndef __REMUX_H @@ -249,7 +249,7 @@ public:    bool AtTsStart(void) { return index < length && (index % TS_SIZE) == 0; }         ///< Returns true if this payload handler is currently pointing to first byte         ///< of a TS packet. -  bool AtPayloadStart(void) { return AtTsStart() && TsPayloadStart(data + index); } +  bool AtPayloadStart(void) { return AtTsStart() && TsPayloadStart(data + index) && TsPid(data + index) == pid; }         ///< Returns true if this payload handler is currently pointing to the first byte         ///< of a TS packet that starts a new payload.    int Available(void) { return length - index; } | 
