From b61657c12c4af79bfbe932a49ca321edf675901a Mon Sep 17 00:00:00 2001 From: voroshil Date: Sat, 1 Sep 2007 01:22:30 +0000 Subject: Proper support for flashing chars in teletext pages. Patch from Otvos Attila oattila at chello dot hu git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24312 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/sub.c | 6 ++++-- stream/tv.h | 1 + stream/tvi_vbi.c | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libvo/sub.c b/libvo/sub.c index c882759bf9..24d4935e7b 100644 --- a/libvo/sub.c +++ b/libvo/sub.c @@ -270,7 +270,7 @@ static void tt_draw_alpha_buf(mp_osd_obj_t* obj, int x0,int y0, int w,int h, uns } inline static void vo_update_text_teletext(mp_osd_obj_t *obj, int dxs, int dys) { - int h=0,w=0,i,j,font; + int h=0,w=0,i,j,font,flashon; int wm,hm; int color; int x,y,x0,y0; @@ -290,6 +290,7 @@ inline static void vo_update_text_teletext(mp_osd_obj_t *obj, int dxs, int dys) obj->flags&=~OSDFLAG_VISIBLE; return; } + flashon=(GetTimer()/1000000)%2; switch(vo_osd_teletext_half){ case TT_ZOOM_TOP_HALF: start_row=0; @@ -404,10 +405,11 @@ inline static void vo_update_text_teletext(mp_osd_obj_t *obj, int dxs, int dys) x=x0; for(j=0;jfont[tc.unicode])>=0 && y+hmwidth[tc.unicode],vo_font->height, vo_font->pic_b[font]->bmp+vo_font->start[tc.unicode]-vo_font->charspace*vo_font->pic_a[font]->w, diff --git a/stream/tv.h b/stream/tv.h index d35b78e9bb..31d5785282 100644 --- a/stream/tv.h +++ b/stream/tv.h @@ -276,6 +276,7 @@ typedef struct tt_char_s{ unsigned char fg; ///< foreground color unsigned char bg; ///< background color unsigned char gfx; ///< 0-no gfx, 1-solid gfx, 2-separated gfx + unsigned char flh; ///< 0-no flash, 1-flash unsigned char ctl; ///< control character unsigned char lng; ///< lang: 0-secondary language,1-primary language unsigned char raw; ///< raw character (as received from device) diff --git a/stream/tvi_vbi.c b/stream/tvi_vbi.c index f5513528d8..a93d9de400 100644 --- a/stream/tvi_vbi.c +++ b/stream/tvi_vbi.c @@ -690,6 +690,7 @@ static void decode_page(tt_char* p,unsigned char* raw,int primary_lang,int secon int separated=0; int conceal=0; int hold=0; + int flash=0; tt_char tt_held=tt_space; for(col=0;col=0x08 && c<=0x09){//Flash/Steady - FFSWAP(int,bg_color,fg_color); + flash=c==0x08; + p[i].flh=flash; if(c==0x09){ p[i].fg=fg_color; p[i].bg=bg_color; -- cgit v1.2.3