+time_t parseDVBtime(uint16_t mjd, uint32_t stime_bcd)
+{
+ tm t;
+ parseDVBdate(t, mjd);
+ t.tm_hour = fromBCD(stime_bcd >> 16);
+ t.tm_min = fromBCD((stime_bcd >> 8)&0xFF);
+ t.tm_sec = fromBCD(stime_bcd & 0xFF);
+ return timegm(&t);
+}
+
+time_t parseDVBtime(const uint8_t *data)
+{
+ tm t;
+ parseDVBtime_impl(t, data);
+ return timegm(&t);
+}
+
+time_t parseDVBtime(const uint8_t *data, uint16_t *hash)
+{
+ tm t;
+ parseDVBtime_impl(t, data);
+ *hash = t.tm_hour * 60 + t.tm_min;
+ *hash |= t.tm_mday << 11;