From 676d2c786d4e13d13ce6e876d5277b982c20b06a Mon Sep 17 00:00:00 2001 From: Michael Roitzsch Date: Fri, 13 Sep 2002 19:57:13 +0000 Subject: duplicating behaviour of XShm fixes the bug James discovered (some values in vo_scale being 0) CVS patchset: 2661 CVS date: 2002/09/13 19:57:13 --- src/video_out/video_out_xv.c | 21 ++++++++++++++++----- src/xine-engine/vo_scale.c | 8 ++------ 2 files changed, 18 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index 62c564735..1037609e4 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.131 2002/09/08 16:20:11 mroi Exp $ + * $Id: video_out_xv.c,v 1.132 2002/09/13 19:57:13 mroi Exp $ * * video_out_xv.c, X11 video extension interface for xine * @@ -618,14 +618,25 @@ static int xv_redraw_needed (xine_vo_driver_t *this_gen) { xv_driver_t *this = (xv_driver_t *) this_gen; int ret = 0; - if( vo_scale_redraw_needed( &this->sc ) ) { + if( this->cur_frame ) { + + this->sc.delivered_height = this->cur_frame->height; + this->sc.delivered_width = this->cur_frame->width; + this->sc.delivered_ratio_code = this->cur_frame->ratio_code; + + xv_compute_ideal_size(this); + + if( vo_scale_redraw_needed( &this->sc ) ) { - xv_compute_output_size (this); + xv_compute_output_size (this); - xv_clean_output_area (this); + xv_clean_output_area (this); + ret = 1; + } + } + else ret = 1; - } return ret; } diff --git a/src/xine-engine/vo_scale.c b/src/xine-engine/vo_scale.c index 6cd559e68..253fcbfa2 100644 --- a/src/xine-engine/vo_scale.c +++ b/src/xine-engine/vo_scale.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: vo_scale.c,v 1.9 2002/09/10 14:06:33 jcdutton Exp $ + * $Id: vo_scale.c,v 1.10 2002/09/13 19:57:13 mroi Exp $ * * Contains common code to calculate video scaling parameters. * In short, it will map frame dimensions to screen/window size. @@ -245,11 +245,7 @@ int vo_scale_redraw_needed (vo_scale_t *this) { int gui_x, gui_y, gui_width, gui_height, gui_win_x, gui_win_y; double gui_pixel_aspect; int ret = 0; - if( (this->delivered_width == 0) || - (this->delivered_height == 0) || - (this->video_pixel_aspect == 0) ) { - return 0; - } + if( this->frame_output_cb ) { this->frame_output_cb (this->user_data, this->delivered_width, this->delivered_height, -- cgit v1.2.3