git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
switch appsink to async again (fixes embedded mkv text subtitles)
[enigma2.git]
/
lib
/
dvb
/
dvbtime.cpp
diff --git
a/lib/dvb/dvbtime.cpp
b/lib/dvb/dvbtime.cpp
index 03847ecb88b7bfb245f298b1bd0d85a0be184fbb..bb6b94b0d9e7207a9a77ed4ddaedf855dd59f1d8 100644
(file)
--- a/
lib/dvb/dvbtime.cpp
+++ b/
lib/dvb/dvbtime.cpp
@@
-20,7
+20,7
@@
void setRTC(time_t time)
FILE *f = fopen("/proc/stb/fp/rtc", "w");
if (f)
{
FILE *f = fopen("/proc/stb/fp/rtc", "w");
if (f)
{
- if (fprintf(f, "%u", time))
+ if (fprintf(f, "%u",
(unsigned int)
time))
prev_time = time;
else
eDebug("write /proc/stb/fp/rtc failed (%m)");
prev_time = time;
else
eDebug("write /proc/stb/fp/rtc failed (%m)");
@@
-47,8
+47,11
@@
time_t getRTC()
if (f)
{
// sanity check to detect corrupt atmel firmware
if (f)
{
// sanity check to detect corrupt atmel firmware
- if (fscanf(f, "%u", &rtc_time) != 1)
+ unsigned int tmp;
+ if (fscanf(f, "%u", &tmp) != 1)
eDebug("read /proc/stb/fp/rtc failed (%m)");
eDebug("read /proc/stb/fp/rtc failed (%m)");
+ else
+ rtc_time=tmp;
fclose(f);
}
else
fclose(f);
}
else
@@
-64,7
+67,7
@@
time_t getRTC()
return rtc_time != prev_time ? rtc_time : 0;
}
return rtc_time != prev_time ? rtc_time : 0;
}
-time_t parseDVBtime(__u8 t1, __u8 t2, __u8 t3, __u8 t4, __u8 t5)
+time_t parseDVBtime(__u8 t1, __u8 t2, __u8 t3, __u8 t4, __u8 t5
, __u16 *hash
)
{
tm t;
t.tm_sec=fromBCD(t5);
{
tm t;
t.tm_sec=fromBCD(t5);
@@
-84,6
+87,11
@@
time_t parseDVBtime(__u8 t1, __u8 t2, __u8 t3, __u8 t4, __u8 t5)
t.tm_isdst = 0;
t.tm_gmtoff = 0;
t.tm_isdst = 0;
t.tm_gmtoff = 0;
+ if (hash) {
+ *hash = t.tm_hour * 60 + t.tm_min;
+ *hash |= t.tm_mday << 11;
+ }
+
return timegm(&t);
}
return timegm(&t);
}