aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-06-11 23:56:40 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-06-11 23:56:40 +0200
commitd6f965e34c0e482e5579689ee3150788dad3067f (patch)
treea7cdeead6d5945e99719a28e9e137c3d81d7b0e2 /lib/service/servicedvb.cpp
parent2f97ea180b96913b356c28e3cf50fbbc318c52b3 (diff)
downloadenigma2-d6f965e34c0e482e5579689ee3150788dad3067f.tar.gz
enigma2-d6f965e34c0e482e5579689ee3150788dad3067f.zip
servicedvb.cpp: skip subtitles when pts difference is bigger than 20seconds
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 52978dc3..a57a813b 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -2824,17 +2824,21 @@ void eDVBServicePlay::checkSubtitleTiming()
m_decoder->getPTS(0, pos);
eDebug("%lld %lld", pos, show_time);
- int diff = show_time - pos;
+ int diff = show_time - pos;
if (diff < 0)
{
eDebug("[late (%d ms)]", -diff / 90);
diff = 0;
}
-// if (diff > 900000)
-// {
-// eDebug("[invalid]");
-// diff = 0;
-// }
+ if (abs(diff) > 1800000)
+ {
+ eDebug("skip [invalid]");
+ if (type == TELETEXT)
+ m_subtitle_pages.pop_front();
+ else
+ m_dvb_subtitle_pages.pop_front();
+ continue;
+ }
if ((diff/90)<20)
{