summaryrefslogtreecommitdiff
path: root/pes2ts.c
diff options
context:
space:
mode:
Diffstat (limited to 'pes2ts.c')
-rw-r--r--pes2ts.c45
1 files changed, 31 insertions, 14 deletions
diff --git a/pes2ts.c b/pes2ts.c
index f7d7f55..5f17ed0 100644
--- a/pes2ts.c
+++ b/pes2ts.c
@@ -13,26 +13,44 @@
#include "pes2ts.h"
-cPES2TSRemux::cPES2TSRemux(int VPid, int APid):
+//////////////////////////////////////////////////////////////////////////////
+cPESRemux::cPESRemux(int inputBufferSize, int outputBufferSize):
+ m_InputBuffer(new cRingBufferLinear(inputBufferSize, outputBufferSize))
+{
+ OutputLocked = false;
+ m_InputBuffer->SetTimeouts(0, 1000); // IMPORTANT to avoid busy wait in threads main loop and thus a high CPU load
+}
+
+cPESRemux::~cPESRemux()
+{
+ delete m_InputBuffer;
+}
+
+int cPESRemux::Put(const uchar *Data, int Count)
+{
+ InputMutex.Lock();
+ int result = m_InputBuffer->Put(Data, Count);
+ InputMutex.Unlock();
+ return ( result);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+cPES2TSRemux::cPES2TSRemux(int VPid, int APid): cPESRemux(INPUTBUFSIZE, IPACKS),
cThread("[ffnetdev] PES2TS remux"),
m_OutputBuffer(new cRingBufferLinear(OUTPUTBUFSIZE, TS_SIZE * 2)),
- m_InputBuffer(new cRingBufferLinear(INPUTBUFSIZE, IPACKS)),
m_Active(false),
m_PlayModeChanged(false)
{
vpid = VPid;
apid = APid;
- m_InputBuffer->SetTimeouts(0, 1000); // IMPORTANT to avoid busy wait in threads main loop and thus a high CPU load
Start();
- OutputLocked = false;
}
cPES2TSRemux::~cPES2TSRemux()
{
m_Active = false;
- delete m_InputBuffer;
delete m_OutputBuffer;
-
}
void cPES2TSRemux::Action(void)
@@ -57,8 +75,8 @@ void cPES2TSRemux::Action(void)
if (m_PlayModeChanged)
{
- cCondWait::SleepMs(1500);
- m_PlayModeChanged = false;
+ cCondWait::SleepMs(1500);
+ m_PlayModeChanged = false;
}
if (m_InputBuffer->Available() < (int)IPACKS*10) {
@@ -199,12 +217,11 @@ void cPES2TSRemux::Action(void)
}
-int cPES2TSRemux::Put(const uchar *Data, int Count)
+//////////////////////////////////////////////////////////////////////////////
+cPES2PESRemux::cPES2PESRemux(): cPESRemux(INPUTBUFSIZE + OUTPUTBUFSIZE, IPACKS)
{
- InputMutex.Lock();
- int result = m_InputBuffer->Put(Data, Count);
- InputMutex.Unlock();
- return ( result);
}
-
+cPES2PESRemux::~cPES2PESRemux()
+{
+}