diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2007-11-03 14:39:25 +0100 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2007-11-03 14:39:25 +0100 |
commit | db3e2a122d0ccef2596aa586fbf48cb47d10e07e (patch) | |
tree | 24736835af6565c7b1ca96ef3c15c9ef7a27a214 /remux.c | |
parent | 06f813d2a81b889ac1d1e2e8eb9c805243408abe (diff) | |
download | vdr-db3e2a122d0ccef2596aa586fbf48cb47d10e07e.tar.gz vdr-db3e2a122d0ccef2596aa586fbf48cb47d10e07e.tar.bz2 |
Fixed a possible blocking in replay when subtitles are active; fixed displaying subtitles in live mode
Diffstat (limited to 'remux.c')
-rw-r--r-- | remux.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -11,7 +11,7 @@ * The cRepacker family's code was originally written by Reinhard Nissl <rnissl@gmx.de>, * and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de. * - * $Id: remux.c 1.59 2007/09/22 12:08:22 kls Exp $ + * $Id: remux.c 1.60 2007/11/03 14:36:07 kls Exp $ */ #include "remux.h" @@ -1427,6 +1427,7 @@ int cDolbyRepacker::BreakAt(const uchar *Data, int Count) #define MMAX_PLENGTH (64*MAX_PLENGTH) // some stations send PES packets that are extremely large, e.g. DVB-T in Finland or HDTV 1920x1080 #define IPACKS 2048 +#define SUBTITLE_PACKS KILOBYTE(32) // Start codes: #define SC_SEQUENCE 0xB3 // "sequence header code" @@ -1911,7 +1912,7 @@ cRemux::cRemux(int VPid, const int *APids, const int *DPids, const int *SPids, b if (SPids) { int n = 0; while (*SPids && numTracks < MAXTRACKS && n < MAXSPIDS) - ts2pes[numTracks++] = new cTS2PES(*SPids++, resultBuffer, IPACKS, 0x00, 0x20 + n++); + ts2pes[numTracks++] = new cTS2PES(*SPids++, resultBuffer, SUBTITLE_PACKS, 0x00, 0x20 + n++); } } @@ -2009,7 +2010,7 @@ int cRemux::Put(const uchar *Data, int Count) break; if (Data[i] != TS_SYNC_BYTE) break; - if (resultBuffer->Free() < 2 * IPACKS) + if (resultBuffer->Free() < SUBTITLE_PACKS) break; // A cTS2PES might write one full packet and also a small rest int pid = GetPid(Data + i + 1); if (Data[i + 3] & 0x10) { // got payload |