summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2009-01-30 19:11:55 +0000
committerphintuka <phintuka>2009-01-30 19:11:55 +0000
commit20e2458ff7aa9bf69ec18696d91434f3c73333d1 (patch)
tree077adc507553e12d99b2fb253946f78d04c7f1d5
parent1b1b99ca64155e17aa87ad532d54eada11646416 (diff)
downloadxineliboutput-20e2458ff7aa9bf69ec18696d91434f3c73333d1.tar.gz
xineliboutput-20e2458ff7aa9bf69ec18696d91434f3c73333d1.tar.bz2
Join multiple TS packets to one transport packet
-rw-r--r--device.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/device.h b/device.h
index 7320007f..f395e419 100644
--- a/device.h
+++ b/device.h
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: device.h,v 1.41 2009-01-26 12:28:53 phintuka Exp $
+ * $Id: device.h,v 1.42 2009-01-30 19:11:55 phintuka Exp $
*
*/
@@ -251,10 +251,19 @@ class cXinelibDevice : public cDevice
#if VDRVERSNUM >= 10701
cPatPmtParser m_PatPmtParser;
+ /* join multiple TS packets to xineliboutput transport packet */
+ uint8_t m_TsBuf[4096];
+ uint m_TsBufSize;
+ void TsBufferFlush(void) { if (m_TsBufSize) PlayAny(m_TsBuf, m_TsBufSize); };
+ void TsBufferClear(void) { m_TsBufSize = 0; };
+
virtual int PlayTsVideo(const uchar *Data, int Length);
virtual int PlayTsAudio(const uchar *Data, int Length);
virtual int PlayTsSubtitle(const uchar *Data, int Length);
virtual int PlayTs(const uchar *Data, int Length, bool VideoOnly = false);
+#else
+ void TsBufferClear(void) {}
+ void TsBufferFlush(void) {}
#endif
};