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 <salvador@inti.gov.ar>


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8602 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
arpi 2002-12-28 13:41:02 +00:00
parent 288868f16a
commit 17c39c4e57
4 changed files with 18 additions and 2 deletions

View File

@ -824,6 +824,16 @@ Selects Hungarian and falls back to English if Hungarian is not available.
.B \-sub <subtitle\ file>
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

View File

@ -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},

View File

@ -40,6 +40,8 @@ int sub_pos=100;
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 @@ static void alloc_buf(mp_osd_obj_t* obj)
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

View File

@ -101,6 +101,8 @@ extern int sub_width_p;
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));