summaryrefslogtreecommitdiffstats
path: root/mpcommon.c
diff options
context:
space:
mode:
authorvoroshil <voroshil@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-09-08 03:06:23 +0000
committervoroshil <voroshil@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-09-08 03:06:23 +0000
commit67276cc8cd70aded2079a2716499501e2055c390 (patch)
tree01b099a6c00d24db25fd064d0bf8394e51ca6a54 /mpcommon.c
parent1275eaec95af288e0ff3b4d22f3d69205232520c (diff)
downloadmpv-67276cc8cd70aded2079a2716499501e2055c390.tar.bz2
mpv-67276cc8cd70aded2079a2716499501e2055c390.tar.xz
Decrease teletext page rendering frequency from 1/frame to about 4/sec.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24362 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mpcommon.c')
-rw-r--r--mpcommon.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/mpcommon.c b/mpcommon.c
index ce1188680f..0a8bf790c0 100644
--- a/mpcommon.c
+++ b/mpcommon.c
@@ -146,8 +146,17 @@ void update_teletext(sh_video_t *sh_video, demuxer_t *demuxer, int reset)
{
#ifdef HAVE_TV_TELETEXT
tvi_handle_t* tvh=demuxer->priv;
+ int page_changed;
+
if (demuxer->type != DEMUXER_TYPE_TV || !tvh) return;
+ //Also forcing page update when such ioctl is not supported or call error occured
+ if(tvh->functions->control(tvh->priv,TV_VBI_CONTROL_IS_CHANGED,&page_changed)!=TVI_CONTROL_TRUE)
+ page_changed=1;
+
+ if(!page_changed)
+ return;
+
if(tvh->functions->control(tvh->priv,TV_VBI_CONTROL_GET_VBIPAGE,&vo_osd_teletext_page)!=TVI_CONTROL_TRUE)
vo_osd_teletext_page=NULL;
if(tvh->functions->control(tvh->priv,TV_VBI_CONTROL_GET_HALF_PAGE,&vo_osd_teletext_half)!=TVI_CONTROL_TRUE)
@@ -157,5 +166,7 @@ void update_teletext(sh_video_t *sh_video, demuxer_t *demuxer, int reset)
if(tvh->functions->control(tvh->priv,TV_VBI_CONTROL_GET_FORMAT,&vo_osd_teletext_format)!=TVI_CONTROL_TRUE)
vo_osd_teletext_format=0;
vo_osd_changed(OSDTYPE_TELETEXT);
+
+ tvh->functions->control(tvh->priv,TV_VBI_CONTROL_MARK_UNCHANGED,NULL);
#endif
}