diff options
-rw-r--r-- | src/dxr3/video_out_dxr3.c | 6 | ||||
-rw-r--r-- | src/video_out/alphablend.c | 2 | ||||
-rw-r--r-- | src/video_out/video_out_aa.c | 4 | ||||
-rw-r--r-- | src/video_out/video_out_none.c | 4 | ||||
-rw-r--r-- | src/video_out/video_out_opengl.c | 6 | ||||
-rw-r--r-- | src/video_out/video_out_pgx64.c | 8 | ||||
-rw-r--r-- | src/video_out/video_out_syncfb.c | 4 | ||||
-rw-r--r-- | src/video_out/video_out_vidix.c | 6 | ||||
-rw-r--r-- | src/video_out/video_out_xshm.c | 6 | ||||
-rw-r--r-- | src/video_out/video_out_xv.c | 6 | ||||
-rw-r--r-- | src/xine-engine/video_out.h | 4 | ||||
-rw-r--r-- | src/xine-engine/vo_scale.c | 39 | ||||
-rw-r--r-- | src/xine-engine/vo_scale.h | 13 |
13 files changed, 73 insertions, 35 deletions
diff --git a/src/dxr3/video_out_dxr3.c b/src/dxr3/video_out_dxr3.c index 735dc9e40..663be6cd0 100644 --- a/src/dxr3/video_out_dxr3.c +++ b/src/dxr3/video_out_dxr3.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_dxr3.c,v 1.62 2002/11/22 16:20:33 mroi Exp $ + * $Id: video_out_dxr3.c,v 1.63 2002/11/22 18:06:09 mroi Exp $ */ /* mpeg1 encoding video out plugin for the dxr3. @@ -75,7 +75,7 @@ static vo_info_t vo_info_dxr3 = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 11, "dxr3", XINE_VERSION_CODE, &vo_info_dxr3, &dxr3_vo_init_plugin }, + { PLUGIN_VIDEO_OUT, 12, "dxr3", XINE_VERSION_CODE, &vo_info_dxr3, &dxr3_vo_init_plugin }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; @@ -216,7 +216,7 @@ static vo_driver_t *dxr3_vo_open_plugin(video_driver_class_t *class_gen, const v pthread_mutex_init(&this->spu_device_lock, NULL); - vo_scale_init(&this->scale, 0, 0); + vo_scale_init(&this->scale, 0, 0, config); this->class = class; this->swap_fields = config->register_bool(config, diff --git a/src/video_out/alphablend.c b/src/video_out/alphablend.c index 207352cf2..b0ef47813 100644 --- a/src/video_out/alphablend.c +++ b/src/video_out/alphablend.c @@ -30,8 +30,8 @@ /* #define LOG_BLEND_YUV -*/ #define LOG_BLEND_RGB16 +*/ #include <string.h> #include <stdlib.h> diff --git a/src/video_out/video_out_aa.c b/src/video_out/video_out_aa.c index f1fb360e2..64b625fb9 100644 --- a/src/video_out/video_out_aa.c +++ b/src/video_out/video_out_aa.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_aa.c,v 1.30 2002/11/20 11:57:48 mroi Exp $ + * $Id: video_out_aa.c,v 1.31 2002/11/22 18:06:17 mroi Exp $ * * video_out_aa.c, ascii-art output plugin for xine * @@ -328,6 +328,6 @@ static vo_info_t vo_info_aa = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 11, "aa", XINE_VERSION_CODE, &vo_info_aa, init_class }, + { PLUGIN_VIDEO_OUT, 12, "aa", XINE_VERSION_CODE, &vo_info_aa, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_none.c b/src/video_out/video_out_none.c index e29caa502..92cb0ea99 100644 --- a/src/video_out/video_out_none.c +++ b/src/video_out/video_out_none.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_none.c,v 1.3 2002/11/20 11:57:48 mroi Exp $ + * $Id: video_out_none.c,v 1.4 2002/11/22 18:06:18 mroi Exp $ * * Was originally part of toxine frontend. */ @@ -297,6 +297,6 @@ static vo_info_t vo_info_none = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 11, "none", XINE_VERSION_CODE, &vo_info_none, init_class }, + { PLUGIN_VIDEO_OUT, 12, "none", XINE_VERSION_CODE, &vo_info_none, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_opengl.c b/src/video_out/video_out_opengl.c index f6c1ce3b7..5952f485a 100644 --- a/src/video_out/video_out_opengl.c +++ b/src/video_out/video_out_opengl.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_opengl.c,v 1.19 2002/11/21 23:24:50 mshopf Exp $ + * $Id: video_out_opengl.c,v 1.20 2002/11/22 18:06:19 mroi Exp $ * * video_out_glut.c, glut based OpenGL rendering interface for xine * Matthias Hopf <mat@mshopf.de> @@ -913,7 +913,7 @@ static vo_driver_t *opengl_open_plugin (video_driver_class_t *class_gen, this->display = visual->display; this->screen = visual->screen; - vo_scale_init (&this->sc, 0, 0); + vo_scale_init (&this->sc, 0, 0, class->config); this->sc.frame_output_cb = visual->frame_output_cb; this->sc.dest_size_cb = visual->dest_size_cb; @@ -993,7 +993,7 @@ static vo_info_t vo_info_opengl = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 11, "opengl", XINE_VERSION_CODE, + { PLUGIN_VIDEO_OUT, 12, "opengl", XINE_VERSION_CODE, &vo_info_opengl, opengl_init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_pgx64.c b/src/video_out/video_out_pgx64.c index b59e623e3..749d1ce1c 100644 --- a/src/video_out/video_out_pgx64.c +++ b/src/video_out/video_out_pgx64.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_pgx64.c,v 1.14 2002/11/20 11:57:48 mroi Exp $ + * $Id: video_out_pgx64.c,v 1.15 2002/11/22 18:06:20 mroi Exp $ * * video_out_pgx64.c, Sun PGX64/PGX24 output plugin for xine * @@ -689,7 +689,7 @@ static pgx64_driver_t* init_driver(pgx64_driver_class_t *class) this->fb_width = attr.fbtype.fb_width; this->fb_height = attr.fbtype.fb_height; - vo_scale_init(&this->vo_scale, 0, 0); + vo_scale_init(&this->vo_scale, 0, 0, this->class->config); this->vo_scale.user_ratio = ASPECT_AUTO; set_reg_bits(this, BUS_CNTL, BUS_EXT_REG_EN); @@ -833,8 +833,8 @@ static pgx64_driver_class_t* pgx64fb_init_class(xine_t *xine, void *visual_gen) plugin_info_t xine_plugin_info[] = { #ifdef HAVE_X11 - {PLUGIN_VIDEO_OUT, 11, "pgx64", XINE_VERSION_CODE, &vo_info_pgx64, (void*)pgx64_init_class}, + {PLUGIN_VIDEO_OUT, 12, "pgx64", XINE_VERSION_CODE, &vo_info_pgx64, (void*)pgx64_init_class}, #endif - {PLUGIN_VIDEO_OUT, 11, "pgx64fb", XINE_VERSION_CODE, &vo_info_pgx64fb, (void*)pgx64fb_init_class}, + {PLUGIN_VIDEO_OUT, 12, "pgx64fb", XINE_VERSION_CODE, &vo_info_pgx64fb, (void*)pgx64fb_init_class}, {PLUGIN_NONE, 0, "", 0, NULL, NULL} }; diff --git a/src/video_out/video_out_syncfb.c b/src/video_out/video_out_syncfb.c index f321e10f4..45bb855af 100644 --- a/src/video_out/video_out_syncfb.c +++ b/src/video_out/video_out_syncfb.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_syncfb.c,v 1.79 2002/11/20 11:57:48 mroi Exp $ + * $Id: video_out_syncfb.c,v 1.80 2002/11/22 18:06:20 mroi Exp $ * * video_out_syncfb.c, SyncFB (for Matrox G200/G400 cards) interface for xine * @@ -949,7 +949,7 @@ static void *init_video_out_plugin(config_values_t *config, void *visual_gen) this->drawable = visual->d; this->gc = XCreateGC (this->display, this->drawable, 0, NULL); - vo_scale_init( &this->sc, visual->display_ratio, 1, 0 ); + vo_scale_init( &this->sc, visual->display_ratio, 1, 0, config ); this->sc.frame_output_cb = visual->frame_output_cb; this->sc.user_data = visual->user_data; diff --git a/src/video_out/video_out_vidix.c b/src/video_out/video_out_vidix.c index 3f598f6d3..f7caff158 100644 --- a/src/video_out/video_out_vidix.c +++ b/src/video_out/video_out_vidix.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_vidix.c,v 1.14 2002/11/20 11:57:48 mroi Exp $ + * $Id: video_out_vidix.c,v 1.15 2002/11/22 18:06:22 mroi Exp $ * * video_out_vidix.c * @@ -694,7 +694,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi this->screen = visual->screen; this->drawable = visual->d; - vo_scale_init( &this->sc, 1, /*this->vidix_cap.flags & FLAG_UPSCALER,*/ 0 ); + vo_scale_init( &this->sc, 1, /*this->vidix_cap.flags & FLAG_UPSCALER,*/ 0, config ); this->sc.frame_output_cb = visual->frame_output_cb; this->sc.user_data = visual->user_data; this->zoom_x = this->zoom_y = 100; @@ -796,6 +796,6 @@ static vo_info_t vo_info_vidix = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 11, "vidix", XINE_VERSION_CODE, &vo_info_vidix, init_class }, + { PLUGIN_VIDEO_OUT, 12, "vidix", XINE_VERSION_CODE, &vo_info_vidix, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_xshm.c b/src/video_out/video_out_xshm.c index 291918f6a..699451138 100644 --- a/src/video_out/video_out_xshm.c +++ b/src/video_out/video_out_xshm.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_xshm.c,v 1.95 2002/11/20 11:57:49 mroi Exp $ + * $Id: video_out_xshm.c,v 1.96 2002/11/22 18:06:22 mroi Exp $ * * video_out_xshm.c, X11 shared memory extension interface for xine * @@ -1054,7 +1054,7 @@ static vo_driver_t *xshm_open_plugin (video_driver_class_t *class_gen, const voi this->display = visual->display; this->screen = visual->screen; - vo_scale_init( &this->sc, 0, 0 ); + vo_scale_init( &this->sc, 0, 0, config ); this->sc.frame_output_cb = visual->frame_output_cb; this->sc.dest_size_cb = visual->dest_size_cb; this->sc.user_data = visual->user_data; @@ -1265,6 +1265,6 @@ static vo_info_t vo_info_xshm = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 11, "xshm", XINE_VERSION_CODE, &vo_info_xshm, xshm_init_class }, + { PLUGIN_VIDEO_OUT, 12, "xshm", XINE_VERSION_CODE, &vo_info_xshm, xshm_init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index ef4e04a6e..c0cff2042 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.150 2002/11/20 11:57:49 mroi Exp $ + * $Id: video_out_xv.c,v 1.151 2002/11/22 18:06:26 mroi Exp $ * * video_out_xv.c, X11 video extension interface for xine * @@ -1109,7 +1109,7 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi this->xv_port = class->xv_port; this->config = config; - vo_scale_init (&this->sc, 1, 0 ); + vo_scale_init (&this->sc, 1, 0, config ); this->sc.frame_output_cb = visual->frame_output_cb; this->sc.user_data = visual->user_data; @@ -1388,7 +1388,7 @@ static vo_info_t vo_info_xv = { plugin_info_t xine_plugin_info[] = { /* type, API, "name", version, special_info, init_function */ - { PLUGIN_VIDEO_OUT, 11, "xv", XINE_VERSION_CODE, &vo_info_xv, init_class }, + { PLUGIN_VIDEO_OUT, 12, "xv", XINE_VERSION_CODE, &vo_info_xv, init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/xine-engine/video_out.h b/src/xine-engine/video_out.h index e011b2788..15d21035d 100644 --- a/src/xine-engine/video_out.h +++ b/src/xine-engine/video_out.h @@ -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.h,v 1.70 2002/11/20 11:57:49 mroi Exp $ + * $Id: video_out.h,v 1.71 2002/11/22 18:06:11 mroi Exp $ * * * xine version of video_out.h @@ -234,7 +234,7 @@ struct xine_video_port_s { * from generic vo functions. */ -#define VIDEO_OUT_DRIVER_IFACE_VERSION 11 +#define VIDEO_OUT_DRIVER_IFACE_VERSION 12 struct vo_driver_s { diff --git a/src/xine-engine/vo_scale.c b/src/xine-engine/vo_scale.c index aa9c851ba..940e9a096 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.15 2002/10/24 16:43:07 mroi Exp $ + * $Id: vo_scale.c,v 1.16 2002/11/22 18:06:13 mroi Exp $ * * Contains common code to calculate video scaling parameters. * In short, it will map frame dimensions to screen/window size. @@ -190,8 +190,10 @@ void vo_scale_compute_output_size (vo_scale_t *this) { this->displayed_height = this->delivered_height; } } - 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; + this->output_xoffset = + (this->gui_width - this->output_width) * this->output_horizontal_position + this->gui_x; + this->output_yoffset = + (this->gui_height - this->output_height) * this->output_vertical_position + this->gui_y; this->displayed_xoffset = (this->delivered_width - this->displayed_width) / 2; this->displayed_yoffset = (this->delivered_height - this->displayed_height) / 2; @@ -338,11 +340,30 @@ char *vo_scale_aspect_ratio_name(int a) { } +/* + * config callbacks + */ +static void vo_scale_horizontal_pos_changed(void *data, xine_cfg_entry_t *entry) { + vo_scale_t *this = (vo_scale_t *)data; + + this->output_horizontal_position = entry->num_value / 100.0; + this->force_redraw = 1; +} + +static void vo_scale_vertical_pos_changed(void *data, xine_cfg_entry_t *entry) { + vo_scale_t *this = (vo_scale_t *)data; + + this->output_vertical_position = entry->num_value / 100.0; + this->force_redraw = 1; +} + + /* * initialize rescaling struct */ -void vo_scale_init(vo_scale_t *this, int support_zoom, int scaling_disabled ) { +void vo_scale_init(vo_scale_t *this, int support_zoom, int scaling_disabled, + config_values_t *config ) { memset( this, 0, sizeof(vo_scale_t) ); this->support_zoom = support_zoom; @@ -352,5 +373,13 @@ void vo_scale_init(vo_scale_t *this, int support_zoom, int scaling_disabled ) { this->zoom_factor_y = 1.0; this->gui_pixel_aspect = 1.0; this->user_ratio = ASPECT_AUTO; + + this->output_horizontal_position = + config->register_range(config, "video.horizontal_position", 50, 0, 100, + _("horizontal image position in the output window"), NULL, 0, + vo_scale_horizontal_pos_changed, this) / 100.0; + this->output_vertical_position = + config->register_range(config, "video.vertical_position", 33, 0, 100, + _("vertical image position in the output window"), NULL, 0, + vo_scale_vertical_pos_changed, this) / 100.0; } - diff --git a/src/xine-engine/vo_scale.h b/src/xine-engine/vo_scale.h index 953134512..6cb2474cc 100644 --- a/src/xine-engine/vo_scale.h +++ b/src/xine-engine/vo_scale.h @@ -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.h,v 1.4 2002/09/08 16:52:57 mroi Exp $ + * $Id: vo_scale.h,v 1.5 2002/11/22 18:06:14 mroi Exp $ * * vo_scale.h * @@ -104,6 +104,7 @@ struct vo_scale_s { int output_height; int output_xoffset; int output_yoffset; + /* */ int force_redraw; @@ -128,6 +129,14 @@ struct vo_scale_s { /* borders */ vo_scale_rect_t border[4]; + + /* + * border ratios to determine image position in the + * viewport; these are set by user config + */ + double output_horizontal_position; + double output_vertical_position; + }; typedef struct vo_scale_s vo_scale_t; @@ -172,7 +181,7 @@ char *vo_scale_aspect_ratio_name(int a); * initialize rescaling struct */ -void vo_scale_init(vo_scale_t *this, int support_zoom, int scaling_disabled ); +void vo_scale_init(vo_scale_t *this, int support_zoom, int scaling_disabled, config_values_t *config ); #ifdef __cplusplus } |