35 LOGDEBUG(
"pipreceiver: %s", __FUNCTION__);
37 AddPid(channel->Vpid());
47 LOGDEBUG(
"pipreceiver: %s", __FUNCTION__);
56 LOGDEBUG(
"pipreceiver: %s %s", __FUNCTION__, on ?
"on" :
"off");
62#define ERRORDELTASEC 60
68void cPipReceiver::Receive(const uchar *data, int size)
71 if (ParseTs(data, size) > 0)
77 LOGWARNING(
"pipreceiver: %d TS packet(s) not accepted in pip stream", m_numLostPackets);
79 m_lastErrorReport = cTimeMs::Now();
93 LOGWARNING(
"pipreceiver: %s null data received, reset pes buffer!", __FUNCTION__);
99 LOGWARNING(
"pipreceiver: %s TS fragment received!", __FUNCTION__);
103 while (size >= TS_SIZE) {
104 if (
int skipped = TS_SYNC(data, size)) {
105 LOGWARNING(
"pipreceiver: %s TS stream not in sync!", __FUNCTION__);
106 return played + skipped;
109 if (TsHasPayload(data)) {
110 int payloadOffset = TsPayloadOffset(data);
111 if (payloadOffset < TS_SIZE) {
112 int w =
PlayTs(data, TS_SIZE);
114 return played ? played : w;
135 if (TsPayloadStart(data)) {
virtual ~cPipReceiver(void)
pip receiver class destructor
int PlayTs(const uchar *, int)
Get the pes payload and send it to the player.
uint64_t m_lastErrorReport
virtual void Activate(bool)
called before the receiver gets attached or after it got detached
int ParseTs(const uchar *, int)
Parse the ts stream and send it to the pes player.
cSoftHdDevice * m_pDevice
cPipReceiver(const cChannel *, cSoftHdDevice *)
pip receiver class constructor
int PlayPipVideo(const uchar *, int)
Play a video packet of the pip videostream.
Logger class header file.
Pip receiver header file.
Device class header file.