diff -Naur MPlayer-0.90.orig/input/input.c MPlayer-0.90/input/input.c
--- MPlayer-0.90.orig/input/input.c	2003-04-29 21:57:38.000000000 +0200
+++ MPlayer-0.90/input/input.c	2003-06-11 23:24:06.000000000 +0200
@@ -81,6 +81,7 @@
   { MP_CMD_TV_SET_CHANNEL, "tv_set_channel", 1, { { MP_CMD_ARG_STRING, {0}}, {-1,{0}}  }},
   { MP_CMD_TV_LAST_CHANNEL, "tv_last_channel", 0, { {-1,{0}} } },
 #endif
+  { MP_CMD_SWITCH_RATIO, "switch_ratio", 1, { {MP_CMD_ARG_FLOAT,{0}}, {-1,{0}} } },
   { MP_CMD_VO_FULLSCREEN, "vo_fullscreen", 0, { {-1,{0}} } },
   { MP_CMD_SCREENSHOT, "screenshot", 0, { {-1,{0}} } },
   { MP_CMD_PANSCAN, "panscan",1,  { {MP_CMD_ARG_FLOAT,{0}}, {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
diff -Naur MPlayer-0.90.orig/input/input.h MPlayer-0.90/input/input.h
--- MPlayer-0.90.orig/input/input.h	2003-04-29 21:57:38.000000000 +0200
+++ MPlayer-0.90/input/input.h	2003-06-11 23:24:06.000000000 +0200
@@ -43,6 +43,8 @@
 #define MP_CMD_SUB_ALIGNMENT 39
 #define MP_CMD_TV_LAST_CHANNEL 40
 
+#define MP_CMD_SWITCH_RATIO 44
+
 #define MP_CMD_GUI_EVENTS       5000
 #define MP_CMD_GUI_LOADFILE     5001
 #define MP_CMD_GUI_LOADSUBTITLE 5002
diff -Naur MPlayer-0.90.orig/mplayer.c MPlayer-0.90/mplayer.c
--- MPlayer-0.90.orig/mplayer.c	2003-04-29 21:57:38.000000000 +0200
+++ MPlayer-0.90/mplayer.c	2003-06-11 23:56:12.000000000 +0200
@@ -2324,6 +2324,13 @@
       }
       break;
 #endif
+    case MP_CMD_SWITCH_RATIO : {
+      if (cmd->args[0].v.f == -1)
+        movie_aspect = (float) sh_video->disp_w / sh_video->disp_h;
+      else
+        movie_aspect = cmd->args[0].v.f;
+      mpcodecs_config_vo (sh_video, sh_video->disp_w, sh_video->disp_h, 0);
+    } break;
     case MP_CMD_AUDIO_DELAY : {
       float v = cmd->args[0].v.f;
       audio_delay += v;
