summaryrefslogtreecommitdiff
path: root/src/video_out/video_out_xv.c
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-03-21 18:29:51 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2002-03-21 18:29:51 +0000
commit859b68e23eb526205b907d43a5e00e1983418545 (patch)
treeeb8708c93afd6de51d0b692d436b19c6939a171a /src/video_out/video_out_xv.c
parent891fb0a646780b715e4f8d53b49e4615917a13e8 (diff)
downloadxine-lib-859b68e23eb526205b907d43a5e00e1983418545.tar.gz
xine-lib-859b68e23eb526205b907d43a5e00e1983418545.tar.bz2
adding new parameters to frame_output_cb
CVS patchset: 1606 CVS date: 2002/03/21 18:29:51
Diffstat (limited to 'src/video_out/video_out_xv.c')
-rw-r--r--src/video_out/video_out_xv.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c
index f98226b42..1ea74b91b 100644
--- a/src/video_out/video_out_xv.c
+++ b/src/video_out/video_out_xv.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: video_out_xv.c,v 1.106 2002/03/21 16:21:02 miguelfreitas Exp $
+ * $Id: video_out_xv.c,v 1.107 2002/03/21 18:29:51 miguelfreitas Exp $
*
* video_out_xv.c, X11 video extension interface for xine
*
@@ -161,6 +161,7 @@ struct xv_driver_s {
int gui_x, gui_y;
int gui_width, gui_height;
+ int gui_win_x, gui_win_y;
/*
* "output" size:
@@ -187,7 +188,8 @@ struct xv_driver_s {
void (*frame_output_cb) (void *user_data,
int video_width, int video_height,
int *dest_x, int *dest_y,
- int *dest_height, int *dest_width);
+ int *dest_height, int *dest_width,
+ int *win_x, int *win_y);
char scratch[256];
@@ -575,7 +577,7 @@ static void xv_clean_output_area (xv_driver_t *this) {
XSetForeground (this->display, this->gc, this->black.pixel);
XFillRectangle(this->display, this->drawable, this->gc,
- 0, 0, this->gui_width, this->gui_height);
+ this->gui_x, this->gui_y, this->gui_width, this->gui_height);
if (this->use_colorkey) {
XSetForeground (this->display, this->gc, this->colorkey);
@@ -700,8 +702,8 @@ static void xv_compute_output_size (xv_driver_t *this) {
this->output_height = (double) this->ideal_height * y_factor ;
}
- this->output_xoffset = (this->gui_width - this->output_width) / 2;
- this->output_yoffset = (this->gui_height - this->output_height) / 2;
+ this->output_xoffset = (this->gui_width - this->output_width) / 2 + this->gui_x;
+ this->output_yoffset = (this->gui_height - this->output_height) / 2 + this->gui_y;
#ifdef LOG
printf ("video_out_xv: frame source %d x %d => screen output %d x %d\n",
@@ -759,20 +761,24 @@ static void xv_flush_recent_frames (xv_driver_t *this) {
static int xv_redraw_needed (vo_driver_t *this_gen) {
xv_driver_t *this = (xv_driver_t *) this_gen;
- int gui_x, gui_y, gui_width, gui_height;
+ int gui_x, gui_y, gui_width, gui_height, gui_win_x, gui_win_y;
int ret = 0;
this->frame_output_cb (this->user_data,
this->ideal_width, this->ideal_height,
- &gui_x, &gui_y, &gui_width, &gui_height);
+ &gui_x, &gui_y, &gui_width, &gui_height,
+ &gui_win_x, &gui_win_y );
if ( (gui_x != this->gui_x) || (gui_y != this->gui_y)
- || (gui_width != this->gui_width) || (gui_height != this->gui_height) ) {
+ || (gui_width != this->gui_width) || (gui_height != this->gui_height)
+ || (gui_win_x != this->gui_win_x) || (gui_win_y != this->gui_win_y) ) {
this->gui_x = gui_x;
this->gui_y = gui_y;
this->gui_width = gui_width;
this->gui_height = gui_height;
+ this->gui_win_x = gui_win_x;
+ this->gui_win_y = gui_win_y;
xv_compute_output_size (this);