0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00

Scaling bug fixed.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@977 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
se7encode 2001-06-03 23:10:37 +00:00
parent d6c2f7df7d
commit 49e8b6b0cd

View File

@ -130,7 +130,7 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
uint32_t req_w = (d_width > 0 ? d_width : width);
uint32_t req_h = (d_height > 0 ? d_height : height);
uint16_t vid_mode = 0;
uint8_t widescreen = (((req_w*1.0)/req_h) > (4.0/3)) ? 1 : 0;
uint8_t res_widescr, vid_widescr = (((req_w*1.0)/req_h) > (4.0/3)) ? 1 : 0;
uint16_t buf_w = USHRT_MAX, buf_h = USHRT_MAX;
vga_modelist_t *list = modelist;
@ -256,6 +256,7 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
vid_mode = list->modenum;
buf_w = list->modeinfo.width;
buf_h = list->modeinfo.height;
res_widescr = (((buf_w*1.0)/buf_h) > (4.0/3)) ? 1 : 0;
}
break;
case 24: if (list->modeinfo.bytesperpixel == 3)
@ -263,6 +264,7 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
vid_mode = list->modenum;
buf_w = list->modeinfo.width;
buf_h = list->modeinfo.height;
res_widescr = (((buf_w*1.0)/buf_h) > (4.0/3)) ? 1 : 0;
}
break;
case 16: if (list->modeinfo.colors == 65536)
@ -270,6 +272,7 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
vid_mode = list->modenum;
buf_w = list->modeinfo.width;
buf_h = list->modeinfo.height;
res_widescr = (((buf_w*1.0)/buf_h) > (4.0/3)) ? 1 : 0;
}
break;
case 15: if (list->modeinfo.colors == 32768)
@ -277,6 +280,7 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
vid_mode = list->modenum;
buf_w = list->modeinfo.width;
buf_h = list->modeinfo.height;
res_widescr = (((buf_w*1.0)/buf_h) > (4.0/3)) ? 1 : 0;
}
break;
}
@ -320,8 +324,8 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width,
orig_w = width;
orig_h = height;
if ((fullscreen & 0x04) && (WIDTH != orig_w)) {
if (!widescreen) {
if ((fullscreen & 0x04) && (WIDTH != orig_w) && (HEIGHT != orig_h)) {
if (!vid_widescr || !res_widescr) {
maxh = HEIGHT;
scaling = maxh / (orig_h * 1.0);
maxw = (uint32_t) (orig_w * scaling);
@ -492,9 +496,6 @@ static uint32_t draw_slice(uint8_t *image[], int stride[],
uint32_t sw, sh;
yuv2rgb(yuvbuf, image[0], image[1], image[2], w, h, orig_w * BYTESPERPIXEL, stride[0], stride[1]);
//#ifdef HAVE_MMX
// emms();
//#endif
sw = (uint32_t) (w * scaling);
sh = (uint32_t) (h * scaling);
if (scalebuf != NULL) {