From 67ea2163f41de6f0b42a32c25e82c7ea23b8570f Mon Sep 17 00:00:00 2001
From: Klaus Schmidinger <vdr@tvdr.de>
Date: Tue, 16 Jun 2020 14:25:43 +0200
Subject: Added cMtdCamSlot::TsPostProcess()

---
 CONTRIBUTORS | 1 +
 HISTORY      | 3 ++-
 ci.c         | 4 +++-
 mtd.c        | 7 ++++++-
 mtd.h        | 3 ++-
 5 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index e74c643c..61999e43 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -3597,6 +3597,7 @@ Helmut Binder <cco@aon.at>
  for suggesting to check and report whether the given value is valid when setting the
  override character table
  for adding codes for more languages and special audio tracks
+ for adding cMtdCamSlot::TsPostProcess()
 
 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 c1f3816a..3f3fcf4f 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9453,7 +9453,7 @@ Video Disk Recorder Revision History
   The version numbers (both VDRVERSNUM and APIVERSNUM) have been bumped to 2.4.2, so
   that plugins can detect the presence of the new cControl::Control().
 
-2020-06-15: Version 2.4.3
+2020-06-16: Version 2.4.3
 
 - Added a missing '-D' to the 'plugins' target of the Makefile (thanks to Johann
   Friedrichs).
@@ -9469,3 +9469,4 @@ Video Disk Recorder Revision History
 - Added failsafe defaults for 'make LCLBLD=1' to the Makefile (thanks to Stefan
   Herdler).
 - Added codes for more languages and special audio tracks (thanks to Helmut Binder).
+- Added cMtdCamSlot::TsPostProcess() (thanks to Helmut Binder).
diff --git a/ci.c b/ci.c
index 36864522..2f399be2 100644
--- a/ci.c
+++ b/ci.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: ci.c 4.26 2019/05/28 15:01:29 kls Exp $
+ * $Id: ci.c 4.27 2020/06/16 14:25:43 kls Exp $
  */
 
 #include "ci.h"
@@ -587,6 +587,7 @@ uint8_t cTPDU::Status(void)
 class cCiTransportConnection {
 private:
   enum eState { stIDLE, stCREATION, stACTIVE, stDELETION };
+  cMutex mutex;
   cCamSlot *camSlot;
   uint8_t tcid;
   eState state;
@@ -1811,6 +1812,7 @@ void cCiTransportConnection::SetTsPostProcessor(cCiSession *CiSession)
 
 bool cCiTransportConnection::TsPostProcess(uint8_t *TsPacket)
 {
+  cMutexLock MutexLock(&mutex);
   if (tsPostProcessor)
      return tsPostProcessor->TsPostProcess(TsPacket);
   return false;
diff --git a/mtd.c b/mtd.c
index 463c1d3e..f2c51027 100644
--- a/mtd.c
+++ b/mtd.c
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: mtd.c 1.14 2019/05/28 14:59:47 kls Exp $
+ * $Id: mtd.c 1.15 2020/06/16 14:25:43 kls Exp $
  */
 
 #include "mtd.h"
@@ -337,6 +337,11 @@ uchar *cMtdCamSlot::Decrypt(uchar *Data, int &Count)
   return d;
 }
 
+bool cMtdCamSlot::TsPostProcess(uchar *Data)
+{
+  return MasterSlot()->TsPostProcess(Data);
+}
+
 void cMtdCamSlot::InjectEit(int Sid)
 {
   MasterSlot()->InjectEit(mtdMapper->RealToUniqSid(Sid));
diff --git a/mtd.h b/mtd.h
index 9dcc1bd0..98ed99a6 100644
--- a/mtd.h
+++ b/mtd.h
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: mtd.h 1.9 2019/05/28 15:00:10 kls Exp $
+ * $Id: mtd.h 1.10 2020/06/16 14:25:43 kls Exp $
  */
 
 #ifndef __MTD_H
@@ -172,6 +172,7 @@ public:
   virtual void StartDecrypting(void);
   virtual void StopDecrypting(void);
   virtual uchar *Decrypt(uchar *Data, int &Count);
+  virtual bool TsPostProcess(uchar *Data);
   virtual void InjectEit(int Sid);
   int PutData(const uchar *Data, int Count);
   int PutCat(const uchar *Data, int Count);
-- 
cgit v1.2.3