X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4fcbd4dd4bee8c65b46b7185879c445beae6ca29..894d8e0be915db6a8ee6454cbd01f95b5f6abad9:/lib/dvb/demux.cpp?ds=sidebyside diff --git a/lib/dvb/demux.cpp b/lib/dvb/demux.cpp index bdd8e67d..5a143c5e 100644 --- a/lib/dvb/demux.cpp +++ b/lib/dvb/demux.cpp @@ -59,6 +59,36 @@ RESULT eDVBDemux::getMPEGDecoder(ePtr &decoder) return 0; } +RESULT eDVBDemux::getSTC(pts_t &pts) +{ + char filename[128]; +#if HAVE_DVB_API_VERSION < 3 + sprintf(filename, "/dev/dvb/card%d/demux%d", adapter, demux); +#else + sprintf(filename, "/dev/dvb/adapter%d/demux%d", adapter, demux); +#endif + int fd = ::open(filename, O_RDWR); + + if (fd < 0) + return -ENODEV; + + struct dmx_stc stc; + stc.num = 0; + stc.base = 1; + + if (ioctl(fd, DMX_GET_STC, &stc) < 0) + { + ::close(fd); + return -1; + } + + pts = stc.stc; + + ::close(fd); + return 0; +} + + void eDVBSectionReader::data(int) { __u8 data[4096]; // max. section size