changeset 8601:7fe391d6c293

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>
author arpi
date Sat, 28 Dec 2002 13:41:02 +0000
parents 54eac4cf587c
children 36d5c7137876
files DOCS/mplayer.1 cfg-common.h libvo/sub.c libvo/sub.h
diffstat 4 files changed, 18 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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 <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
--- 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},
--- 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
--- 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));