X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ca49e976280c61bb862d03567ddf65dbce3d568c..139531c95ab1bd9ea0da563d43a3d8677b937aa9:/lib/dvb/pvrparse.cpp diff --git a/lib/dvb/pvrparse.cpp b/lib/dvb/pvrparse.cpp index 1b6cb467..59313669 100644 --- a/lib/dvb/pvrparse.cpp +++ b/lib/dvb/pvrparse.cpp @@ -266,7 +266,7 @@ int eMPEGStreamInformation::getNextAccessPoint(pts_t &ts, const pts_t &start, in return 0; } -eMPEGStreamParserTS::eMPEGStreamParserTS(eMPEGStreamInformation &streaminfo): m_streaminfo(streaminfo), m_pktptr(0), m_pid(-1), m_need_next_packet(0), m_skip(0) +eMPEGStreamParserTS::eMPEGStreamParserTS(eMPEGStreamInformation &streaminfo): m_streaminfo(streaminfo), m_pktptr(0), m_pid(-1), m_need_next_packet(0), m_skip(0), m_last_pts_valid(0) { } @@ -313,6 +313,9 @@ int eMPEGStreamParserTS::processPacket(const unsigned char *pkt, off_t offset) pts |= ((unsigned long long)(pkt[12]&0xFF)) << 7; pts |= ((unsigned long long)(pkt[13]&0xFE)) >> 1; ptsvalid = 1; + + m_last_pts = pts; + m_last_pts_valid = 1; #if 0 int sec = pts / 90000; @@ -503,3 +506,15 @@ void eMPEGStreamParserTS::setPid(int _pid) m_pktptr = 0; m_pid = _pid; } + +int eMPEGStreamParserTS::getLastPTS(pts_t &last_pts) +{ + if (!m_last_pts_valid) + { + last_pts = 0; + return -1; + } + last_pts = m_last_pts; + return 0; +} +