diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/video_out/video_out_xcbxv.c | 12 | ||||
-rw-r--r-- | src/video_out/video_out_xv.c | 12 | ||||
-rw-r--r-- | src/video_out/video_out_xxmc.c | 12 | ||||
-rw-r--r-- | src/video_out/xv_common.h | 7 |
4 files changed, 43 insertions, 0 deletions
diff --git a/src/video_out/video_out_xcbxv.c b/src/video_out/video_out_xcbxv.c index 42b841d7c..cdaaea75d 100644 --- a/src/video_out/video_out_xcbxv.c +++ b/src/video_out/video_out_xcbxv.c @@ -159,6 +159,7 @@ typedef struct { } xv_class_t; static const char *const prefer_types[] = VIDEO_DEVICE_XV_PREFER_TYPES; +static const char *const bicubic_types[] = VIDEO_DEVICE_XV_BICUBIC_TYPES; static const char *const sync_atoms[] = VIDEO_DEVICE_XV_VSYNC_ATOMS; static uint32_t xv_get_capabilities (vo_driver_t *this_gen) { @@ -1248,6 +1249,11 @@ static void xv_update_XV_SYNC_TO_VBLANK(void *this_gen, xine_cfg_entry_t *entry) "sync to vblank"); } +static void xv_update_XV_BICUBIC(void *this_gen, xine_cfg_entry_t *entry) +{ + xv_update_attr (this_gen, entry, "XV_BICUBIC", "bicubic filtering mode"); +} + static void xv_update_xv_pitch_alignment(void *this_gen, xine_cfg_entry_t *entry) { xv_driver_t *this = (xv_driver_t *) this_gen; @@ -1522,6 +1528,12 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis "sync to under the XVideo Settings tab"), 20, xv_update_XV_SYNC_TO_VBLANK, this); config->update_num(config,"video.device.xv_sync_to_vblank",xv_sync_to_vblank); + } else if(!strcmp(name, "XV_BICUBIC")) { + int xv_bicubic = + config->register_enum (config, "video.device.xv_bicubic", 2, + bicubic_types, VIDEO_DEVICE_XV_BICUBIC_HELP, + 20, xv_update_XV_BICUBIC, this); + config->update_num(config,"video.device.xv_bicubic",xv_bicubic); } } } diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c index c6f368339..cc5ed3fb0 100644 --- a/src/video_out/video_out_xv.c +++ b/src/video_out/video_out_xv.c @@ -172,6 +172,7 @@ typedef struct { static int gX11Fail; static const char *const prefer_types[] = VIDEO_DEVICE_XV_PREFER_TYPES; +static const char *const bicubic_types[] = VIDEO_DEVICE_XV_BICUBIC_TYPES; static const char *const sync_atoms[] = VIDEO_DEVICE_XV_VSYNC_ATOMS; static uint32_t xv_get_capabilities (vo_driver_t *this_gen) { @@ -1301,6 +1302,11 @@ static void xv_update_XV_SYNC_TO_VBLANK(void *this_gen, xine_cfg_entry_t *entry) "sync to vblank"); } +static void xv_update_XV_BICUBIC(void *this_gen, xine_cfg_entry_t *entry) +{ + xv_update_attr (this_gen, entry, "XV_BICUBIC", "bicubic filtering mode"); +} + static void xv_update_xv_pitch_alignment(void *this_gen, xine_cfg_entry_t *entry) { xv_driver_t *this = (xv_driver_t *) this_gen; @@ -1580,6 +1586,12 @@ static vo_driver_t *open_plugin_2 (video_driver_class_t *class_gen, const void * "sync to under the XVideo Settings tab"), 20, xv_update_XV_SYNC_TO_VBLANK, this); config->update_num(config,"video.device.xv_sync_to_vblank",xv_sync_to_vblank); + } else if(!strcmp(name, "XV_BICUBIC")) { + int xv_bicubic = + config->register_enum (config, "video.device.xv_bicubic", 2, + bicubic_types, VIDEO_DEVICE_XV_BICUBIC_HELP, + 20, xv_update_XV_BICUBIC, this); + config->update_num(config,"video.device.xv_bicubic",xv_bicubic); } } } diff --git a/src/video_out/video_out_xxmc.c b/src/video_out/video_out_xxmc.c index 06a42b23f..454f2cb8b 100644 --- a/src/video_out/video_out_xxmc.c +++ b/src/video_out/video_out_xxmc.c @@ -46,6 +46,7 @@ static void dispose_ximage (xxmc_driver_t *this, XShmSegmentInfo *shminfo, XvImage *myimage); static const char *const prefer_types[] = VIDEO_DEVICE_XV_PREFER_TYPES; +static const char *const bicubic_types[] = VIDEO_DEVICE_XV_BICUBIC_TYPES; /* * Acceleration level priority. Static for now. It may well turn out that IDCT @@ -2152,6 +2153,11 @@ static void xxmc_update_XV_DOUBLE_BUFFER(void *this_gen, xine_cfg_entry_t *entry xxmc_update_attr (this_gen, entry, "XV_DOUBLE_BUFFER", "double buffering mode"); } +static void xxmc_update_XV_BICUBIC(void *this_gen, xine_cfg_entry_t *entry) +{ + xxmc_update_attr (this_gen, entry, "XV_BICUBIC", "bicubic filtering mode"); +} + static void xxmc_update_xv_pitch_alignment(void *this_gen, xine_cfg_entry_t *entry) { xxmc_driver_t *this = (xxmc_driver_t *) this_gen; @@ -2593,6 +2599,12 @@ static vo_driver_t *open_plugin (video_driver_class_t *class_gen, const void *vi VIDEO_DEVICE_XV_DOUBLE_BUFFER_HELP, 20, xxmc_update_XV_DOUBLE_BUFFER, this); config->update_num(config,"video.device.xv_double_buffer",xv_double_buffer); + } else if(!strcmp(name, "XV_BICUBIC")) { + int xv_bicubic = + config->register_enum (config, "video.device.xv_bicubic", 2, + bicubic_types, VIDEO_DEVICE_XV_BICUBIC_HELP, + 20, xxmc_update_XV_BICUBIC, this); + config->update_num(config,"video.device.xv_bicubic",xv_bicubic); } } } diff --git a/src/video_out/xv_common.h b/src/video_out/xv_common.h index df6a3f6dc..e24728cdd 100644 --- a/src/video_out/xv_common.h +++ b/src/video_out/xv_common.h @@ -70,3 +70,10 @@ typedef enum { _("Selects which video output method is preferred. " \ "Detection is done using the reported Xv adaptor names.\n" \ "(Only applies when auto-detecting which Xv port to use.)") + +#define VIDEO_DEVICE_XV_BICUBIC_TYPES \ + { "Off", "On", "Auto", NULL } +#define VIDEO_DEVICE_XV_BICUBIC_HELP \ + _("bicubic filtering"), \ + _("This option controls bicubic filtering of the video image. " \ + "It may be used instead of, or as well as, xine's deinterlacers.") |