summaryrefslogtreecommitdiff
path: root/src/video_out/video_out_xcbxv.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_out/video_out_xcbxv.c')
-rw-r--r--src/video_out/video_out_xcbxv.c92
1 files changed, 46 insertions, 46 deletions
diff --git a/src/video_out/video_out_xcbxv.c b/src/video_out/video_out_xcbxv.c
index 1e6e2b663..b3a141e61 100644
--- a/src/video_out/video_out_xcbxv.c
+++ b/src/video_out/video_out_xcbxv.c
@@ -196,7 +196,7 @@ static vo_frame_t *xv_alloc_frame (vo_driver_t *this_gen) {
frame = (xv_frame_t *) calloc(1, sizeof(xv_frame_t));
if (!frame)
return NULL;
-
+
pthread_mutex_init (&frame->vo_frame.mutex, NULL);
/*
@@ -380,7 +380,7 @@ static void xv_update_frame_format (vo_driver_t *this_gen,
if(format == XINE_IMGFMT_YUY2) {
frame->vo_frame.pitches[0] = frame->xv_pitches[0];
frame->vo_frame.base[0] = frame->image + frame->xv_offsets[0];
- }
+ }
else {
frame->vo_frame.pitches[0] = frame->xv_pitches[0];
frame->vo_frame.pitches[1] = frame->xv_pitches[2];
@@ -418,7 +418,7 @@ static void xv_deinterlace_frame (xv_driver_t *this) {
if(this->deinterlace_frame.image)
dispose_ximage(this, &this->deinterlace_frame);
-
+
create_ximage(this, &this->deinterlace_frame, frame->width, frame->height / xvscaling, frame->format);
this->deinterlace_frame.width = frame->width;
this->deinterlace_frame.height = frame->height;
@@ -539,12 +539,12 @@ static void xv_clean_output_area (xv_driver_t *this) {
this->sc.output_width, this->sc.output_height };
xcb_poly_fill_rectangle(this->connection, this->window, this->gc, 1, &rectangle);
}
-
+
if (this->xoverlay) {
xcbosd_resize(this->xoverlay, this->sc.gui_width, this->sc.gui_height);
this->ovl_changed = 1;
}
-
+
pthread_mutex_unlock(&this->main_mutex);
}
@@ -575,7 +575,7 @@ static void xv_compute_output_size (xv_driver_t *this) {
}
}
-static void xv_overlay_begin (vo_driver_t *this_gen,
+static void xv_overlay_begin (vo_driver_t *this_gen,
vo_frame_t *frame_gen, int changed) {
xv_driver_t *this = (xv_driver_t *) this_gen;
@@ -586,7 +586,7 @@ static void xv_overlay_begin (vo_driver_t *this_gen,
xcbosd_clear(this->xoverlay);
pthread_mutex_unlock(&this->main_mutex);
}
-
+
this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x;
this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y;
}
@@ -603,7 +603,7 @@ static void xv_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img) {
this->ovl_changed = 0;
}
-static void xv_overlay_blend (vo_driver_t *this_gen,
+static void xv_overlay_blend (vo_driver_t *this_gen,
vo_frame_t *frame_gen, vo_overlay_t *overlay) {
xv_driver_t *this = (xv_driver_t *) this_gen;
xv_frame_t *frame = (xv_frame_t *) frame_gen;
@@ -617,11 +617,11 @@ static void xv_overlay_blend (vo_driver_t *this_gen,
}
} else {
if (frame->format == XINE_IMGFMT_YV12)
- _x_blend_yuv(frame->vo_frame.base, overlay,
+ _x_blend_yuv(frame->vo_frame.base, overlay,
frame->width, frame->height, frame->vo_frame.pitches,
&this->alphablend_extra_data);
else
- _x_blend_yuy2(frame->vo_frame.base[0], overlay,
+ _x_blend_yuy2(frame->vo_frame.base[0], overlay,
frame->width, frame->height, frame->vo_frame.pitches[0],
&this->alphablend_extra_data);
}
@@ -665,7 +665,7 @@ static int xv_redraw_needed (vo_driver_t *this_gen) {
this->sc.delivered_height = this->cur_frame->height;
this->sc.delivered_width = this->cur_frame->width;
this->sc.delivered_ratio = this->cur_frame->ratio;
-
+
this->sc.crop_left = this->cur_frame->vo_frame.crop_left;
this->sc.crop_right = this->cur_frame->vo_frame.crop_right;
this->sc.crop_top = this->cur_frame->vo_frame.crop_top;
@@ -694,7 +694,7 @@ static void xv_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen) {
/*
printf ("video_out_xcbxv: xv_display_frame...\n");
*/
-
+
/*
* queue frames (deinterlacing)
* free old frames
@@ -795,7 +795,7 @@ static int xv_get_property (vo_driver_t *this_gen, int property) {
static void xv_property_callback (void *property_gen, xine_cfg_entry_t *entry) {
xv_property_t *property = (xv_property_t *) property_gen;
xv_driver_t *this = property->this;
-
+
pthread_mutex_lock(&this->main_mutex);
xcb_xv_set_port_attribute(this->connection, this->xv_port,
property->atom, entry->num_value);
@@ -829,7 +829,7 @@ static int xv_set_property (vo_driver_t *this_gen,
this->props[property].entry->num_value = this->props[property].value;
return this->props[property].value;
- }
+ }
else {
switch (property) {
@@ -843,13 +843,13 @@ static int xv_set_property (vo_driver_t *this_gen,
xv_compute_output_size (this);
}
break;
-
+
case VO_PROP_ASPECT_RATIO:
if (value>=XINE_VO_ASPECT_NUM_RATIOS)
value = XINE_VO_ASPECT_AUTO;
this->props[property].value = value;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
"video_out_xcbxv: VO_PROP_ASPECT_RATIO(%d)\n", this->props[property].value);
this->sc.user_ratio = value;
@@ -863,7 +863,7 @@ static int xv_set_property (vo_driver_t *this_gen,
this->props[property].value = value;
xprintf(this->xine, XINE_VERBOSITY_LOG,
"video_out_xcbxv: VO_PROP_ZOOM_X = %d\n", this->props[property].value);
-
+
this->sc.zoom_factor_x = (double)value / (double)XINE_VO_ZOOM_STEP;
xv_compute_ideal_size (this);
@@ -955,7 +955,7 @@ static int xv_gui_data_exchange (vo_driver_t *this_gen,
if(this->xoverlay)
xcbosd_expose(this->xoverlay);
-
+
xcb_flush(this->connection);
pthread_mutex_unlock(&this->main_mutex);
}
@@ -1013,7 +1013,7 @@ static void xv_store_port_attribute(xv_driver_t *this, char *name) {
xcb_xv_get_port_attribute_cookie_t get_attribute_cookie;
xcb_xv_get_port_attribute_reply_t *get_attribute_reply;
-
+
pthread_mutex_lock(&this->main_mutex);
atom_cookie = xcb_intern_atom(this->connection, 0, strlen(name), name);
atom_reply = xcb_intern_atom_reply(this->connection, atom_cookie, NULL);
@@ -1021,7 +1021,7 @@ static void xv_store_port_attribute(xv_driver_t *this, char *name) {
get_attribute_reply = xcb_xv_get_port_attribute_reply(this->connection, get_attribute_cookie, NULL);
free(atom_reply);
pthread_mutex_unlock(&this->main_mutex);
-
+
if (get_attribute_reply != NULL) {
xv_portattribute_t *attr;
@@ -1039,26 +1039,26 @@ static void xv_restore_port_attributes(xv_driver_t *this) {
xcb_intern_atom_cookie_t atom_cookie;
xcb_intern_atom_reply_t *atom_reply;
-
+
while ((ite = xine_list_front(this->port_attributes)) != NULL) {
xv_portattribute_t *attr = xine_list_get_value(this->port_attributes, ite);
xine_list_remove (this->port_attributes, ite);
-
+
pthread_mutex_lock(&this->main_mutex);
atom_cookie = xcb_intern_atom(this->connection, 0, strlen(attr->name), attr->name);
atom_reply = xcb_intern_atom_reply(this->connection, atom_cookie, NULL);
xcb_xv_set_port_attribute(this->connection, this->xv_port, atom_reply->atom, attr->value);
free(atom_reply);
pthread_mutex_unlock(&this->main_mutex);
-
+
free( attr->name );
free( attr );
}
-
+
pthread_mutex_lock(&this->main_mutex);
xcb_flush(this->connection);
pthread_mutex_unlock(&this->main_mutex);
-
+
xine_list_delete( this->port_attributes );
}
@@ -1068,7 +1068,7 @@ static void xv_dispose (vo_driver_t *this_gen) {
/* restore port attributes to their initial values */
xv_restore_port_attributes(this);
-
+
if (this->deinterlace_frame.image) {
pthread_mutex_lock(&this->main_mutex);
dispose_ximage(this, &this->deinterlace_frame);
@@ -1096,7 +1096,7 @@ static void xv_dispose (vo_driver_t *this_gen) {
pthread_mutex_destroy(&this->main_mutex);
_x_alphablend_free(&this->alphablend_extra_data);
-
+
free (this);
}
@@ -1111,7 +1111,7 @@ static int xv_check_yv12(xcb_connection_t *connection, xcb_xv_port_t port) {
if (!list_formats_reply)
return 1; /* no formats listed; probably due to an invalid port no. */
format_it = xcb_xv_list_image_formats_format_iterator(list_formats_reply);
-
+
for (; format_it.rem; xcb_xv_image_format_info_next(&format_it))
if ((format_it.data->id == XINE_IMGFMT_YV12) &&
(! (strcmp ((char *) format_it.data->guid, "YV12")))) {
@@ -1138,7 +1138,7 @@ static void xv_check_capability (xv_driver_t *this,
xcb_intern_atom_cookie_t atom_cookie;
xcb_intern_atom_reply_t *atom_reply;
-
+
/*
* some Xv drivers (Gatos ATI) report some ~0 as max values, this is confusing.
*/
@@ -1168,7 +1168,7 @@ static void xv_check_capability (xv_driver_t *this,
/* might be overridden using config entry */
if(strcmp(str_prop, "XV_AUTOPAINT_COLORKEY") == 0)
int_default = 0;
-
+
if (config_name) {
/* is this a boolean property ? */
if ((attr->min == 0) && (attr->max == 1)) {
@@ -1185,12 +1185,12 @@ static void xv_check_capability (xv_driver_t *this,
entry = this->config->lookup_entry (this->config, config_name);
- if((entry->num_value < this->props[property].min) ||
+ if((entry->num_value < this->props[property].min) ||
(entry->num_value > this->props[property].max)) {
- this->config->update_num(this->config, config_name,
+ this->config->update_num(this->config, config_name,
((this->props[property].min + this->props[property].max) >> 1));
-
+
entry = this->config->lookup_entry (this->config, config_name);
}
@@ -1339,7 +1339,7 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
pthread_mutex_init(&this->main_mutex, NULL);
_x_alphablend_init(&this->alphablend_extra_data, class->xine);
-
+
this->connection = visual->connection;
this->screen = visual->screen;
this->window = visual->window;
@@ -1404,16 +1404,16 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
xprintf(class->xine, XINE_VERBOSITY_LOG,
_("video_out_xcbxv: Xv extension is present but I couldn't find a usable yuv12 port.\n"
" Looks like your graphics hardware driver doesn't support Xv?!\n"));
-
+
/* XvFreeAdaptorInfo (adaptor_info); this crashed on me (gb)*/
return NULL;
- }
+ }
else
xprintf(class->xine, XINE_VERBOSITY_LOG,
_("video_out_xcbxv: using Xv port %d from adaptor %s for hardware "
"colour space conversion and scaling.\n"), xv_port,
xcb_xv_adaptor_info_name(adaptor_it.data));
-
+
this->xv_port = xv_port;
_x_vo_scale_init (&this->sc, 1, 0, config );
@@ -1526,10 +1526,10 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
VIDEO_DEVICE_XV_DOUBLE_BUFFER_HELP,
20, xv_update_XV_DOUBLE_BUFFER, this);
config->update_num(config,"video.device.xv_double_buffer",xv_double_buffer);
- } else if(!strcmp(name, sync_atoms[this->sync_is_vsync = 0]) ||
- !strcmp(name, sync_atoms[this->sync_is_vsync = 1])) {
+ } else if(!strcmp(name, sync_atoms[this->sync_is_vsync = 0]) ||
+ !strcmp(name, sync_atoms[this->sync_is_vsync = 1])) {
int xv_sync_to_vblank;
- xv_sync_to_vblank =
+ xv_sync_to_vblank =
config->register_bool (config, "video.device.xv_sync_to_vblank", 1,
_("enable vblank sync"),
_("This option will synchronize the update of the video image to the "
@@ -1562,10 +1562,10 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
list_formats_reply = xcb_xv_list_image_formats_reply(this->connection, list_formats_cookie, NULL);
format_it = xcb_xv_list_image_formats_format_iterator(list_formats_reply);
-
+
this->xv_format_yv12 = 0;
this->xv_format_yuy2 = 0;
-
+
for (; format_it.rem; xcb_xv_image_format_info_next(&format_it)) {
lprintf ("Xv image format: 0x%x (%4.4s) %s\n",
format_it.data->id, (char*)&format_it.data->id,
@@ -1580,19 +1580,19 @@ static vo_driver_t *open_plugin(video_driver_class_t *class_gen, const void *vis
} else if (format_it.data->id == XINE_IMGFMT_YUY2) {
this->xv_format_yuy2 = format_it.data->id;
this->capabilities |= VO_CAP_YUY2;
- xprintf(this->xine, XINE_VERBOSITY_LOG,
+ xprintf(this->xine, XINE_VERBOSITY_LOG,
_("video_out_xcbxv: this adaptor supports the yuy2 format.\n"));
}
}
free(list_formats_reply);
- this->use_pitch_alignment =
+ this->use_pitch_alignment =
config->register_bool (config, "video.device.xv_pitch_alignment", 0,
VIDEO_DEVICE_XV_PITCH_ALIGNMENT_HELP,
10, xv_update_xv_pitch_alignment, this);
- this->deinterlace_method =
+ this->deinterlace_method =
config->register_enum (config, "video.output.xv_deinterlace_method", 4,
deinterlace_methods,
_("deinterlace method (deprecated)"),
@@ -1655,7 +1655,7 @@ static char* get_description (video_driver_class_t *this_gen) {
static void dispose_class (video_driver_class_t *this_gen) {
xv_class_t *this = (xv_class_t *) this_gen;
-
+
free (this);
}