summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-03-25 20:38:14 +0000
committerarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-03-25 20:38:14 +0000
commit14528e299a505570b2d5fc032a65efd8e588aa6b (patch)
tree663e42cdeca0b9b5aeda80d5dff7c3d6da5a6a92
parent89b069cae33814d8faf3265edb1fc39164316690 (diff)
downloadmpv-14528e299a505570b2d5fc032a65efd8e588aa6b.tar.bz2
mpv-14528e299a505570b2d5fc032a65efd8e588aa6b.tar.xz
font alpha resampling, see -ffactor
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@216 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--cfg-mplayer.h1
-rw-r--r--libvo/font_load.c21
-rw-r--r--libvo/font_load.h2
-rw-r--r--mplayer.c3
4 files changed, 24 insertions, 3 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index 5b21dba2c4..7805cb22f1 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -11,6 +11,7 @@ struct config conf[]={
{"dsp", &dsp, CONF_TYPE_STRING, 0, 0, 0},
{"encode", &encode_name, CONF_TYPE_STRING, 0, 0, 0},
{"font", &font_name, CONF_TYPE_STRING, 0, 0, 0},
+ {"ffactor", &font_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0.0, 10.0},
{"bg", &play_in_bg, CONF_TYPE_FLAG, 0, 0, 1},
{"nobg", &play_in_bg, CONF_TYPE_FLAG, 0, 1, 0},
{"sb", &seek_to_byte, CONF_TYPE_INT, CONF_MIN, 0, 0},
diff --git a/libvo/font_load.c b/libvo/font_load.c
index 31ddf3613d..9c5f521a72 100644
--- a/libvo/font_load.c
+++ b/libvo/font_load.c
@@ -32,7 +32,7 @@ raw_file* load_raw(char *name){
return raw;
}
-font_desc_t* read_font_desc(char* fname){
+font_desc_t* read_font_desc(char* fname,float factor){
unsigned char sor[1024];
unsigned char sor2[1024];
font_desc_t *desc;
@@ -174,6 +174,25 @@ for(i=0;i<=fontdb;i++){
printf("font: Missing bitmap(s) for sub-font #%d\n",i);
return NULL;
}
+ if(factor!=1.0f){
+ // re-sample alpha
+ int f=factor*256.0f;
+ int size=desc->pic_a[i]->w*desc->pic_a[i]->h;
+ int j;
+ printf("font: resampling alpha by factor %5.3f (%d) ",factor,f);fflush(stdout);
+ for(j=0;j<size;j++){
+ int x=desc->pic_a[i]->bmp[j];
+ int y=desc->pic_b[i]->bmp[j];
+
+ x=((x*f*(255-y))>>16)+y;
+ //x=(x*f)>>8;if(x<y) x=y;
+
+ if(x<0) x=0; else
+ if(x>255) x=255;
+ desc->pic_a[i]->bmp[j]=x;
+ }
+ printf("DONE!\n");
+ }
if(!desc->height) desc->height=desc->pic_a[i]->h;
}
diff --git a/libvo/font_load.h b/libvo/font_load.h
index a2ed9594bb..5b36842232 100644
--- a/libvo/font_load.h
+++ b/libvo/font_load.h
@@ -20,4 +20,4 @@ typedef struct {
} font_desc_t;
raw_file* load_raw(char *name);
-font_desc_t* read_font_desc(char* fname);
+font_desc_t* read_font_desc(char* fname,float factor);
diff --git a/mplayer.c b/mplayer.c
index 1de7a2dbf5..77cd4ac2f4 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -414,6 +414,7 @@ int force_ni=0;
char *conffile;
int conffile_fd;
char *font_name=NULL;
+float font_factor=0.75;
#include "cfg-mplayer.h"
printf("%s",banner_text);
@@ -461,7 +462,7 @@ if(video_driver && strcmp(video_driver,"help")==0){
// check font
if(font_name){
- vo_font=read_font_desc(font_name);
+ vo_font=read_font_desc(font_name,font_factor);
if(!vo_font) printf("Can't load font: %s\n",font_name);
}