[MPlayer-dev-eng] [Patch] moving the picture around the screen

Mark Zealey mark at zealos.org
Thu Aug 29 16:13:32 CEST 2002


I wrote a patch that lets you move the image around the screen so rather than
being in the top-left the whole time you can put it anywhere on the screen. At
the moment i have only changed the tdfx driver, but it is a very trivial change
to any other driver. You change the position by using a -xper and -yper and
giving it a percentage, eg -xper 100 -yper 0 would be top right. Patch is
attached, if people could review it, I'll then commit it to cvs or so.

-- 

Mark Zealey (aka JALH on irc.oftc.net: #zealos and many more)
mark at zealos.org; mark at itsolve.co.uk

UL++++>$ G!>(GCM/GCS/GS/GM) dpu? s:-@ a17! C++++>$ P++++>+++++$ L+++>+++++$
!E---? W+++>$ !w--- r++ !t---?@ !X---?  !R- !tv b+ G+++ e>+++++ !h++* r!-- y--
-------------- next part --------------
? tmp
Index: cfg-mplayer.h
===================================================================
RCS file: /cvsroot/mplayer/main/cfg-mplayer.h,v
retrieving revision 1.161
diff -u -r1.161 cfg-mplayer.h
--- cfg-mplayer.h	22 Aug 2002 23:03:34 -0000	1.161
+++ cfg-mplayer.h	29 Aug 2002 14:11:28 -0000
@@ -224,6 +224,9 @@
 	// set screen dimensions (when not detectable or virtual!=visible)
 	{"screenw", &vo_screenwidth, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
 	{"screenh", &vo_screenheight, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL},
+	// set position (percentage) of the image on the screen
+	{"xper", &vo_xper, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
+	{"yper", &vo_yper, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
 	// set aspect ratio of monitor - usefull for 16:9 TVout
 	{"monitoraspect", &monitor_aspect, CONF_TYPE_FLOAT, CONF_RANGE, 0.2, 3.0, NULL},
 	// video mode switching: (x11,xv,dga)
Index: libvo/video_out.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/video_out.c,v
retrieving revision 1.55
diff -u -r1.55 video_out.c
--- libvo/video_out.c	22 Aug 2002 23:03:50 -0000	1.55
+++ libvo/video_out.c	29 Aug 2002 14:11:29 -0000
@@ -38,6 +38,10 @@
 int vo_screenwidth=0;
 int vo_screenheight=0;
 
+// Position on the screen (in percentage points)
+int vo_xper = 0;
+int vo_yper = 0;
+
 int vo_config_count=0;
 
 // requested resolution/bpp:  (-x -y -bpp options)
Index: libvo/video_out.h
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/video_out.h,v
retrieving revision 1.41
diff -u -r1.41 video_out.h
--- libvo/video_out.h	28 Aug 2002 21:32:31 -0000	1.41
+++ libvo/video_out.h	29 Aug 2002 14:11:29 -0000
@@ -163,6 +163,8 @@
 extern int vo_screenwidth;
 extern int vo_screenheight;
 
+extern int vo_xper, vo_yper;
+
 // requested resolution/bpp:  (-x -y -bpp options)
 extern int vo_dx;
 extern int vo_dy;
Index: libvo/vo_tdfxfb.c
===================================================================
RCS file: /cvsroot/mplayer/main/libvo/vo_tdfxfb.c,v
retrieving revision 1.18
diff -u -r1.18 vo_tdfxfb.c
--- libvo/vo_tdfxfb.c	29 Aug 2002 12:04:02 -0000	1.18
+++ libvo/vo_tdfxfb.c	29 Aug 2002 14:11:29 -0000
@@ -192,7 +192,8 @@
 
 		vidwidth = r_width;
 		vidheight = r_height;
-		vidx = vidy = 0;
+		vidx = (screenwidth - vidwidth) * ((float)vo_xper / 100.0);
+		vidy = (screenheight - vidheight) * ((float)vo_yper / 100.0);
 	}
 
 	clear_screen();


More information about the MPlayer-dev-eng mailing list