From b66bf7a698738389a030d1512d5442c149ab27db Mon Sep 17 00:00:00 2001
From: schmirl <schmirl>
Date: Fri, 28 Mar 2008 15:11:40 +0000
Subject: Rewrite of http menu (#439) Including - m3u playlists by Petri
 Hintukainen (#254) - way to pass parameters to externremux by Rolf Ahrenberg
 - using host header for absolute URLs for better DNAT / Reverse Proxy support

---
 remux/extern.c | 13 ++++++-------
 remux/extern.h |  3 ++-
 2 files changed, 8 insertions(+), 8 deletions(-)

(limited to 'remux')

diff --git a/remux/extern.c b/remux/extern.c
index 01d4b33..e137c4a 100644
--- a/remux/extern.c
+++ b/remux/extern.c
@@ -19,13 +19,13 @@ protected:
 	virtual void Action(void);
 
 public:
-	cTSExt(cRingBufferLinear *ResultBuffer);
+	cTSExt(cRingBufferLinear *ResultBuffer, std::string Parameter);
 	virtual ~cTSExt();
 
 	void Put(const uchar *Data, int Count);
 };
 
-cTSExt::cTSExt(cRingBufferLinear *ResultBuffer):
+cTSExt::cTSExt(cRingBufferLinear *ResultBuffer, std::string Parameter):
 		m_ResultBuffer(ResultBuffer),
 		m_Active(false),
 		m_Process(0),
@@ -67,9 +67,8 @@ cTSExt::cTSExt(cRingBufferLinear *ResultBuffer):
 		for (int i = STDERR_FILENO + 1; i < MaxPossibleFileDescriptors; i++)
 			close(i); //close all dup'ed filedescriptors
 
-		//printf("starting externremux.sh\n");
-		execl("/bin/sh", "sh", "-c", g_ExternRemux, NULL);
-		//printf("failed externremux.sh\n");
+		std::string cmd = std::string(g_ExternRemux) + " " + Parameter;
+		execl("/bin/sh", "sh", "-c", cmd.c_str(), NULL);
 		_exit(-1);
 	}
 
@@ -150,9 +149,9 @@ void cTSExt::Put(const uchar *Data, int Count)
 	}
 }
 
-cExternRemux::cExternRemux(int VPid, const int *APids, const int *Dpids, const int *SPids):
+cExternRemux::cExternRemux(int VPid, const int *APids, const int *Dpids, const int *SPids, std::string Parameter):
 		m_ResultBuffer(new cRingBufferLinear(WRITERBUFSIZE, TS_SIZE * 2)),
-		m_Remux(new cTSExt(m_ResultBuffer))
+		m_Remux(new cTSExt(m_ResultBuffer, Parameter))
 {
 	m_ResultBuffer->SetTimeouts(500, 100);
 }
diff --git a/remux/extern.h b/remux/extern.h
index ae055ac..7a44852 100644
--- a/remux/extern.h
+++ b/remux/extern.h
@@ -3,6 +3,7 @@
 
 #include "remux/tsremux.h"
 #include <vdr/ringbuffer.h>
+#include <string>
 
 extern const char *g_ExternRemux;
 
@@ -14,7 +15,7 @@ private:
 	cTSExt            *m_Remux;
 
 public:
-	cExternRemux(int VPid, const int *APids, const int *Dpids, const int *SPids);
+	cExternRemux(int VPid, const int *APids, const int *Dpids, const int *SPids, std::string Parameter);
 	virtual ~cExternRemux();
 	
 	int Put(const uchar *Data, int Count);
-- 
cgit v1.2.3