1
0
mirror of https://github.com/mpv-player/mpv synced 2025-04-11 04:01:31 +00:00

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> .B \-sub <subtitle\ file>
Use/\:display this subtitle file. Use/\:display this subtitle file.
.TP .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 \ .B \-subcc \
Display DVD Closed Caption (CC) subtitles. Display DVD Closed Caption (CC) subtitles.
These are NOT the VOB subtitles, these are special ASCII subtitles for the These are NOT the VOB subtitles, these are special ASCII subtitles for the

View File

@ -181,6 +181,8 @@
// enable Closed Captioning display // enable Closed Captioning display
{"subcc", &subcc_enabled, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"subcc", &subcc_enabled, CONF_TYPE_FLAG, 0, 0, 1, NULL},
{"nooverlapsub", &suboverlap_enabled, CONF_TYPE_FLAG, 0, 0, 0, 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 #endif
#ifdef USE_OSD #ifdef USE_OSD
{"font", &font_name, CONF_TYPE_STRING, 0, 0, 0, NULL}, {"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_width_p=100;
int sub_alignment=0; /* 0=top, 1=center, 2=bottom */ int sub_alignment=0; /* 0=top, 1=center, 2=bottom */
int sub_visibility=1; int sub_visibility=1;
int sub_bkg_color=0; /* subtitles background color */
int sub_bkg_alpha=0;
// return the real height of a char: // return the real height of a char:
static inline int get_height(int c,int h){ 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->bitmap_buffer = (unsigned char *)memalign(16, len);
obj->alpha_buffer = (unsigned char *)memalign(16, len); obj->alpha_buffer = (unsigned char *)memalign(16, len);
} }
memset(obj->bitmap_buffer, 0, len); memset(obj->bitmap_buffer, sub_bkg_color, len);
memset(obj->alpha_buffer, 0, len); memset(obj->alpha_buffer, sub_bkg_alpha, len);
} }
// renders the buffer // renders the buffer

View File

@ -101,6 +101,8 @@ extern int sub_width_p;
extern int sub_alignment; extern int sub_alignment;
extern int sub_visibility; extern int sub_visibility;
extern int suboverlap_enabled; 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_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)); //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));