1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Added missing reset of the 'repacker' to cTS2PES::Clear()

This commit is contained in:
Klaus Schmidinger 2005-02-13 14:38:08 +01:00
parent 9055f754dd
commit 1594333047
3 changed files with 8 additions and 2 deletions

View File

@ -1146,6 +1146,7 @@ Marco Schl
this is now done when attaching the player to the device this is now done when attaching the player to the device
for adding DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer for adding DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer
for reporting a missing 'resultSkipped = 0' in cRemux::Clear() for reporting a missing 'resultSkipped = 0' in cRemux::Clear()
for reporting a missing reset of the 'repacker' in cTS2PES::Clear()
Jürgen Schmitz <j.schmitz@web.de> Jürgen Schmitz <j.schmitz@web.de>
for reporting a bug in displaying the current channel when switching via the SVDRP for reporting a bug in displaying the current channel when switching via the SVDRP

View File

@ -3413,3 +3413,5 @@ Video Disk Recorder Revision History
- The new function cDvbDevice::SetTransferModeForDolbyDigital() can be used by - The new function cDvbDevice::SetTransferModeForDolbyDigital() can be used by
plugins that implement Dolby Digital output and thus want to prevent the cDvbDevice plugins that implement Dolby Digital output and thus want to prevent the cDvbDevice
from starting Transfer Mode in order to replay DD over the DVB device. from starting Transfer Mode in order to replay DD over the DVB device.
- Added missing reset of the 'repacker' to cTS2PES::Clear() (thanks to Marco
Schlüßler for reporting this one).

View File

@ -11,7 +11,7 @@
* The cDolbyRepacker code was originally written by Reinhard Nissl <rnissl@gmx.de>, * The cDolbyRepacker code was originally written by Reinhard Nissl <rnissl@gmx.de>,
* and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de. * and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de.
* *
* $Id: remux.c 1.30 2005/02/13 10:23:10 kls Exp $ * $Id: remux.c 1.31 2005/02/13 14:36:23 kls Exp $
*/ */
#include "remux.h" #include "remux.h"
@ -29,6 +29,7 @@ protected:
public: public:
cRepacker(void) { maxPacketSize = 6 + 65535; subStreamId = 0; } cRepacker(void) { maxPacketSize = 6 + 65535; subStreamId = 0; }
virtual ~cRepacker() {} virtual ~cRepacker() {}
virtual void Reset(void) {}
virtual int Put(cRingBufferLinear *ResultBuffer, const uchar *Data, int Count) = 0; virtual int Put(cRingBufferLinear *ResultBuffer, const uchar *Data, int Count) = 0;
virtual int BreakAt(const uchar *Data, int Count) = 0; virtual int BreakAt(const uchar *Data, int Count) = 0;
void SetMaxPacketSize(int MaxPacketSize) { maxPacketSize = MaxPacketSize; } void SetMaxPacketSize(int MaxPacketSize) { maxPacketSize = MaxPacketSize; }
@ -56,13 +57,13 @@ private:
get_length, get_length,
output_packet output_packet
} state; } state;
void Reset(void);
void ResetPesHeader(void); void ResetPesHeader(void);
void AppendSubStreamID(void); void AppendSubStreamID(void);
bool FinishRemainder(cRingBufferLinear *ResultBuffer, const uchar *const Data, const int Todo, int &Done, int &Bite); bool FinishRemainder(cRingBufferLinear *ResultBuffer, const uchar *const Data, const int Todo, int &Done, int &Bite);
bool StartNewPacket(cRingBufferLinear *ResultBuffer, const uchar *const Data, const int Todo, int &Done, int &Bite); bool StartNewPacket(cRingBufferLinear *ResultBuffer, const uchar *const Data, const int Todo, int &Done, int &Bite);
public: public:
cDolbyRepacker(void); cDolbyRepacker(void);
virtual void Reset(void);
virtual int Put(cRingBufferLinear *ResultBuffer, const uchar *Data, int Count); virtual int Put(cRingBufferLinear *ResultBuffer, const uchar *Data, int Count);
virtual int BreakAt(const uchar *Data, int Count); virtual int BreakAt(const uchar *Data, int Count);
}; };
@ -474,6 +475,8 @@ cTS2PES::~cTS2PES()
void cTS2PES::Clear(void) void cTS2PES::Clear(void)
{ {
reset_ipack(); reset_ipack();
if (repacker)
repacker->Reset();
} }
void cTS2PES::store(uint8_t *Data, int Count) void cTS2PES::store(uint8_t *Data, int Count)