diff -ru main.orig/cfg-mplayer.h main/cfg-mplayer.h
--- main.orig/cfg-mplayer.h	Sun Jul 22 11:46:54 2001
+++ main/cfg-mplayer.h	Sun Jul 29 01:27:11 2001
@@ -30,6 +30,7 @@
 extern int vo_doublebuffering;
 extern int vo_fsmode;
 extern int vo_dbpp;
+extern int vo_widescreen;
 extern int osd_level;
 extern int sub_unicode;
 
@@ -172,6 +173,7 @@
 	{"fsmode", &vo_fsmode, CONF_TYPE_INT, CONF_RANGE, 0, 7},
 	{"double", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 0, 1},
 	{"nodouble", &vo_doublebuffering, CONF_TYPE_FLAG, 0, 1, 0},
+	{"widescreen", &vo_widescreen, CONF_TYPE_FLAG, 0, 0, 1},
 #ifdef HAVE_LIRC
 	{"lircconf", &lirc_configfile, CONF_TYPE_STRING, 0, 0, 0}, 
 #endif
diff -ru main.orig/libvo/video_out.c main/libvo/video_out.c
--- main.orig/libvo/video_out.c	Wed Jul  4 01:46:24 2001
+++ main/libvo/video_out.c	Sun Jul 29 12:15:05 2001
@@ -42,6 +42,7 @@
 int vo_dbpp=0;
 int vo_doublebuffering = 0;
 int vo_fsmode = 0;
+int vo_widescreen = 0;
 
 char *vo_subdevice = NULL;
 
diff -ru main.orig/libvo/vo_xv.c main/libvo/vo_xv.c
--- main.orig/libvo/vo_xv.c	Sun Jul 29 01:22:18 2001
+++ main/libvo/vo_xv.c	Sun Jul 29 12:11:46 2001
@@ -128,8 +128,8 @@
 #endif
    hint.x = 0;
    hint.y = 0;
-   hint.width = d_width;
-   hint.height = d_height;
+   hint.width = dwidth;
+   hint.height = dheight;
    if ( mFullscreen )
     {
      hint.width=vo_screenwidth;
diff -ru main.orig/mplayer.c main/mplayer.c
--- main.orig/mplayer.c	Mon Jul 23 22:02:58 2001
+++ main/mplayer.c	Sun Jul 29 12:14:21 2001
@@ -891,6 +891,10 @@
      if(screen_size_x<=8) screen_size_x*=sh_video->disp_w;
      if(screen_size_y<=8) screen_size_y*=sh_video->disp_h;
    }
+   if (vo_widescreen){
+     /* widescreen means that input is not in 4:3 but in 16:9 format */
+     screen_size_y=(screen_size_y*(9*4))/(16*3);
+   }
 
    { const vo_info_t *info = video_out->get_info();
      printf("VO: [%s] %dx%d => %dx%d %s %s%s%s%s\n",info->short_name,
