# HG changeset patch # User arpi # Date 1041082862 0 # Node ID 7fe391d6c293d2670e109aa549c2417210699dfa # Parent 54eac4cf587c9b25f4871b59771bb3be3de1bee9 The following patch adds two new command line options: -sub-bkg-color n -sub-bkg-alpha n They control the color and alpha value used to initialize the subtitles and OSD BBOX. With this you can have subtitles inside a traslucent rectangle. This is useful when a movie already have "hardcoded" subtitles and you want to overwrite them with rendered subtitles avoiding too much confusion. patch by Salvador Eduardo Tropea diff -r 54eac4cf587c -r 7fe391d6c293 DOCS/mplayer.1 --- a/DOCS/mplayer.1 Sat Dec 28 13:39:51 2002 +0000 +++ b/DOCS/mplayer.1 Sat Dec 28 13:41:02 2002 +0000 @@ -824,6 +824,16 @@ .B \-sub Use/\:display this subtitle file. .TP +.B \-sub-bkg-alpha <0-255> +Specify the alpha channel value for subtitles and OSD backgrounds. +Big values means more transparent. The 0 value is an exception and means +completly transparent. +.TP +.B \-sub-bkg-color <0-255> +Specify the color value for subtitles and OSD backgrounds. +Currently subtitles are grayscale so this value is equivalente to the +intensity of the color. The 255 value means white and 0 black. +.TP .B \-subcc \ Display DVD Closed Caption (CC) subtitles. These are NOT the VOB subtitles, these are special ASCII subtitles for the diff -r 54eac4cf587c -r 7fe391d6c293 cfg-common.h --- a/cfg-common.h Sat Dec 28 13:39:51 2002 +0000 +++ b/cfg-common.h Sat Dec 28 13:41:02 2002 +0000 @@ -181,6 +181,8 @@ // enable Closed Captioning display {"subcc", &subcc_enabled, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"nooverlapsub", &suboverlap_enabled, CONF_TYPE_FLAG, 0, 0, 0, NULL}, + {"sub-bkg-color", &sub_bkg_color, CONF_TYPE_INT, CONF_RANGE, 0, 255, NULL}, + {"sub-bkg-alpha", &sub_bkg_alpha, CONF_TYPE_INT, CONF_RANGE, 0, 255, NULL}, #endif #ifdef USE_OSD {"font", &font_name, CONF_TYPE_STRING, 0, 0, 0, NULL}, diff -r 54eac4cf587c -r 7fe391d6c293 libvo/sub.c --- a/libvo/sub.c Sat Dec 28 13:39:51 2002 +0000 +++ b/libvo/sub.c Sat Dec 28 13:41:02 2002 +0000 @@ -40,6 +40,8 @@ int sub_width_p=100; int sub_alignment=0; /* 0=top, 1=center, 2=bottom */ int sub_visibility=1; +int sub_bkg_color=0; /* subtitles background color */ +int sub_bkg_alpha=0; // return the real height of a char: static inline int get_height(int c,int h){ @@ -97,8 +99,8 @@ obj->bitmap_buffer = (unsigned char *)memalign(16, len); obj->alpha_buffer = (unsigned char *)memalign(16, len); } - memset(obj->bitmap_buffer, 0, len); - memset(obj->alpha_buffer, 0, len); + memset(obj->bitmap_buffer, sub_bkg_color, len); + memset(obj->alpha_buffer, sub_bkg_alpha, len); } // renders the buffer diff -r 54eac4cf587c -r 7fe391d6c293 libvo/sub.h --- a/libvo/sub.h Sat Dec 28 13:39:51 2002 +0000 +++ b/libvo/sub.h Sat Dec 28 13:41:02 2002 +0000 @@ -101,6 +101,8 @@ extern int sub_alignment; extern int sub_visibility; extern int suboverlap_enabled; +extern int sub_bkg_color; /* subtitles background color */ +extern int sub_bkg_alpha; //extern void vo_draw_text_osd(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)); //extern void vo_draw_text_progbar(int dxs,int dys,void (*draw_alpha)(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride));