From: Darren S. <li...@yo...> - 2009-11-30 21:25:08
|
# [node 65cfe7575e1875915f78dc6bf1a5718d6ba9f3fa part 7] diff --git a/src/video_out/video_out_pgx64.c b/src/video_out/video_out_pgx64.c --- a/src/video_out/video_out_pgx64.c +++ b/src/video_out/video_out_pgx64.c @@ -1,18 +1,18 @@ /* * Copyright (C) 2000-2004 the xine project - * + * * This file is part of xine, a free video player. - * + * * xine is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * xine is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA @@ -213,7 +213,7 @@ uint8_t *buffer_ptrs[3]; } pgx64_frame_t; -typedef struct { +typedef struct { vo_driver_t vo_driver; vo_scale_t vo_scale; @@ -671,7 +671,7 @@ DGA_DRAW_UNLOCK(this->dgadraw); XUnlockDisplay(this->display); - if (_x_vo_scale_redraw_needed(&this->vo_scale)) { + if (_x_vo_scale_redraw_needed(&this->vo_scale)) { short int *cliprects, wx0, wy0, wx1, wy1, cx0, cy0, cx1, cy1; int dgavis; @@ -991,7 +991,7 @@ if (x + width - 1 > overlay->hili_right) { width -= overlay->hili_right - x; len += overlay->hili_right - x; - } + } } } @@ -999,7 +999,7 @@ int j; clut_t *src_clut; uint8_t *src_trans; - + if (use_clip_palette) { src_clut = (clut_t *)&overlay->hili_color; src_trans = (uint8_t *)&overlay->hili_trans; @@ -1035,7 +1035,7 @@ else { palette[use_clip_palette][j] = BlackPixel(this->display, this->screen); } - } + } } else { palette[use_clip_palette][j] = this->colour_key; @@ -1273,7 +1273,7 @@ DGA_DRAW_UNLOCK(this->dgadraw); XUnlockDisplay(this->display); - if (modif || _x_vo_scale_redraw_needed(&this->vo_scale)) { + if (modif || _x_vo_scale_redraw_needed(&this->vo_scale)) { this->vo_scale.force_redraw = 1; this->chromakey_regen_needed = 1; return 1; @@ -1320,7 +1320,7 @@ if (strcmp(entry->key, "video.device.pgx64_colour_key") == 0) { pgx64_set_property(this_gen, VO_PROP_COLORKEY, entry->num_value); update_colour_key_rgb(this); - } + } else if (strcmp(entry->key, "video.device.pgx64_chromakey_en") == 0) { this->chromakey_en = entry->num_value; } diff --git a/src/video_out/video_out_raw.c b/src/video_out/video_out_raw.c --- a/src/video_out/video_out_raw.c +++ b/src/video_out/video_out_raw.c @@ -152,23 +152,23 @@ x = pos%ovl->ovl_w; y = pos/ovl->ovl_w; if ( (x>=overlay->hili_left && x<=overlay->hili_right) && (y>=overlay->hili_top && y<=overlay->hili_bottom) ) { - colors = hili_colors; - trans = hili_trans; + colors = hili_colors; + trans = hili_trans; } else { - colors = low_colors; - trans = low_trans; + colors = low_colors; + trans = low_trans; } rlelen = rle->len; clr = rle->color; alpha = trans[clr]; for ( i=0; i<rlelen; ++i ) { - rgba[0] = colors[clr].y; - rgba[1] = colors[clr].cr; - rgba[2] = colors[clr].cb; - rgba[3] = alpha*255/15; - rgba+= 4; - ++pos; + rgba[0] = colors[clr].y; + rgba[1] = colors[clr].cr; + rgba[2] = colors[clr].cb; + rgba[3] = alpha*255/15; + rgba+= 4; + ++pos; } ++rle; --num_rle; @@ -182,7 +182,7 @@ raw_driver_t *this = (raw_driver_t *) this_gen; if ( !changed ) - return; + return; ++this->ovl_changed; } diff --git a/src/video_out/video_out_sdl.c b/src/video_out/video_out_sdl.c --- a/src/video_out/video_out_sdl.c +++ b/src/video_out/video_out_sdl.c @@ -83,7 +83,7 @@ vo_driver_t vo_driver; config_values_t *config; - + int hw_accel; SDL_Surface *surface; @@ -100,7 +100,7 @@ int screen; Drawable drawable; #endif - + vo_scale_t sc; xine_t *xine; @@ -142,7 +142,7 @@ if (!frame) return NULL; - + pthread_mutex_init (&frame->vo_frame.mutex, NULL); /* @@ -207,8 +207,8 @@ if (frame->overlay == NULL) return; - /* - * This needs to be done becuase I have found that + /* + * This needs to be done becuase I have found that * pixels isn't setup until this is called. */ SDL_LockYUVOverlay (frame->overlay); @@ -242,7 +242,7 @@ this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x; this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y; - + if (overlay->rle) { if( frame->format == XINE_IMGFMT_YV12 ) _x_blend_yuv( frame->vo_frame.base, overlay, frame->width, frame->height, frame->vo_frame.pitches, &this->alphablend_extra_data); @@ -354,7 +354,7 @@ static int sdl_get_property (vo_driver_t *this_gen, int property) { sdl_driver_t *this = (sdl_driver_t *) this_gen; - + switch (property) { case VO_PROP_WINDOW_WIDTH: return this->sc.gui_width; @@ -383,7 +383,7 @@ if (value>=XINE_VO_ASPECT_NUM_RATIOS) value = XINE_VO_ASPECT_AUTO; this->sc.user_ratio = value; - xprintf(this->xine, XINE_VERBOSITY_DEBUG, + xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_sdl: aspect ratio changed to %s\n", _x_vo_scale_aspect_ratio_name(value)); sdl_compute_ideal_size (this); @@ -458,7 +458,7 @@ SDL_QuitSubSystem (SDL_INIT_VIDEO); _x_alphablend_free(&this->alphablend_extra_data); - + free(this); } @@ -476,16 +476,16 @@ #ifdef HAVE_X11 XWindowAttributes window_attributes; #endif - + this = (sdl_driver_t *) calloc(1, sizeof(sdl_driver_t)); if (!this) return NULL; _x_alphablend_init(&this->alphablend_extra_data, class->xine); - + this->sdlflags = SDL_HWSURFACE | SDL_RESIZABLE; - - this->hw_accel = class->config->register_bool(class->config, + + this->hw_accel = class->config->register_bool(class->config, "video.device.sdl_hw_accel", 1, _("use hardware acceleration if available"), _("When your system supports it, hardware acceleration provided by your " @@ -525,7 +525,7 @@ if (!SDL_ListModes (vidInfo->vfmt, SDL_HWSURFACE | SDL_RESIZABLE)) { this->sdlflags = SDL_RESIZABLE; if (!SDL_ListModes (vidInfo->vfmt, SDL_RESIZABLE)) { - xprintf (this->xine, XINE_VERBOSITY_DEBUG, + xprintf (this->xine, XINE_VERBOSITY_DEBUG, "video_out_sdl: open_plugin - sdl couldn't get any acceptable video mode\n"); return NULL; } @@ -533,7 +533,7 @@ this->bpp = vidInfo->vfmt->BitsPerPixel; if (this->bpp < 16) { - xprintf(this->xine, XINE_VERBOSITY_LOG, + xprintf(this->xine, XINE_VERBOSITY_LOG, _("sdl has to emulate a 16 bit surfaces, that will slow things down.\n")); this->bpp = 16; } @@ -593,17 +593,17 @@ static void *init_class (xine_t *xine, void *visual_gen) { /* x11_visual_t *visual = (x11_visual_t *) visual_gen; */ sdl_class_t *this; - + /* check if we have SDL */ if ((SDL_Init (SDL_INIT_VIDEO)) < 0) { - xprintf (xine, XINE_VERBOSITY_DEBUG, + xprintf (xine, XINE_VERBOSITY_DEBUG, "video_out_sdl: open_plugin - sdl video initialization failed.\n"); return NULL; } SDL_QuitSubSystem (SDL_INIT_VIDEO); this = (sdl_class_t*) calloc(1, sizeof(sdl_class_t)); - + this->driver_class.open_plugin = open_plugin; this->driver_class.get_identifier = get_identifier; this->driver_class.get_description = get_description; diff --git a/src/video_out/video_out_stk.c b/src/video_out/video_out_stk.c --- a/src/video_out/video_out_stk.c +++ b/src/video_out/video_out_stk.c @@ -22,7 +22,7 @@ * * based on video_out_sdl from * Miguel Freitas - * + * * based on mpeg2dec code from * Ryan C. Gordon <ic...@lo...> and * Dominik Schnitzer <ae...@li...> @@ -82,9 +82,9 @@ vo_driver_t vo_driver; /* stk private data */ - config_values_t* config; - surface_t* surface; - xine_panel_t* xine_panel; + config_values_t* config; + surface_t* surface; + xine_panel_t* xine_panel; uint8_t bpp; /* do we need this ? */ pthread_mutex_t mutex; uint32_t capabilities; @@ -171,25 +171,25 @@ //printf("video_out_stk: update_frame_format()\n"); if ((frame->width != width) || (frame->height != height) || (frame->format != format)) { - lprintf("update_frame_format - %d=%d, %d=%d, %d=%d\n", + lprintf("update_frame_format - %d=%d, %d=%d, %d=%d\n", frame->width, width, frame->height, height, frame->format, format); - lprintf("vo_frame data - width, height, format: %d, %d, %d\n", + lprintf("vo_frame data - width, height, format: %d, %d, %d\n", frame->vo_frame.width, frame->vo_frame.height, frame->vo_frame.format); - + /* (re-) allocate image */ if (frame->overlay) { - stk_overlay_free(frame->overlay); + stk_overlay_free(frame->overlay); frame->overlay = NULL; } if (format == XINE_IMGFMT_YV12) { lprintf ("format YV12\n"); - frame->overlay = stk_surface_create_overlay(this->surface, width, height, + frame->overlay = stk_surface_create_overlay(this->surface, width, height, STK_FORMAT_YV12); } else if (format == XINE_IMGFMT_YUY2) { lprintf("format YUY2\n"); - frame->overlay = stk_surface_create_overlay(this->surface, width, height, + frame->overlay = stk_surface_create_overlay(this->surface, width, height, STK_FORMAT_YUY2); } @@ -197,7 +197,7 @@ return; /* From the SDL driver: - * This needs to be done becuase I have found that + * This needs to be done becuase I have found that * pixels isn't setup until this is called. */ stk_overlay_lock(frame->overlay); @@ -224,7 +224,7 @@ stk_driver_t* this = (stk_driver_t*)this_gen; stk_frame_t* frame = (stk_frame_t*)frame_gen; //printf("video_out_stk: overlay_blend()\n"); - + this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x; this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y; @@ -238,7 +238,7 @@ } static void stk_check_events (stk_driver_t* this) { - /* SDL checks for a resize, our video panels aren't resizeable... */ + /* SDL checks for a resize, our video panels aren't resizeable... */ //printf("video_out_stk: check_events()\n"); } @@ -247,7 +247,7 @@ stk_driver_t* this = (stk_driver_t*)this_gen; int ret = 0; static int last_gui_width, last_gui_height; - + //printf("video_out_stk: redraw_needed()\n"); if( last_gui_width != this->sc.gui_width || @@ -273,7 +273,7 @@ stk_frame_t* frame = (stk_frame_t*)frame_gen; //printf("video_out_stk: display_frame()\n"); - + pthread_mutex_lock(&this->mutex); if ( (frame->width != this->sc.delivered_width) @@ -308,7 +308,7 @@ static int stk_get_property (vo_driver_t* this_gen, int property) { stk_driver_t* this = (stk_driver_t *)this_gen; - + //printf("video_out_stk: get_property()\n"); if (property == VO_PROP_ASPECT_RATIO) @@ -321,7 +321,7 @@ stk_driver_t* this = (stk_driver_t*)this_gen; //printf("video_out_stk: set_property()\n"); - + if ( property == VO_PROP_ASPECT_RATIO) { if (value>=XINE_VO_ASPECT_NUM_RATIOS) value = XINE_VO_ASPECT_AUTO; @@ -341,7 +341,7 @@ //printf("video_out_stk: get_property_min_max()\n"); } -static int stk_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data) { +static int stk_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data) { stk_driver_t *this = (stk_driver_t*)this_gen; switch (data_type) @@ -349,9 +349,9 @@ case XINE_GUI_SEND_COMPLETION_EVENT: break; - case XINE_GUI_SEND_EXPOSE_EVENT: + case XINE_GUI_SEND_EXPOSE_EVENT: break; - + case XINE_GUI_SEND_DRAWABLE_CHANGED: this->xine_panel = (xine_panel_t*)data; this->surface = stk_xine_panel_surface(this->xine_panel); @@ -365,18 +365,18 @@ case XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO: break; } - + return 0; } static void stk_dispose (vo_driver_t * this_gen) { stk_driver_t* this = (stk_driver_t*)this_gen; - + //printf("video_out_stk: dispose()\n"); - - /* FIXME: any libstk deleting must be done in the app or library + + /* FIXME: any libstk deleting must be done in the app or library * since we didn't create the surface */ - + _x_alphablend_free(&this->alphablend_extra_data); free(this); @@ -386,9 +386,9 @@ stk_class_t * class = (stk_class_t *) class_gen; /* allocate the video output driver class */ stk_driver_t* this; - + //printf("video_out_stk: open_plugin()\n"); - + this = calloc(1, sizeof (stk_driver_t)); if (!this) return NULL; @@ -432,7 +432,7 @@ /* FIXME: move this to the stk SDL driver code */ xine_setenv("SDL_VIDEO_YUV_HWACCEL", "1", 1); xine_setenv("SDL_VIDEO_X11_NODIRECTCOLOR", "1", 1); - + xprintf (this->xine, XINE_VERBOSITY_DEBUG, "video_out_stk: warning, xine's STK driver is EXPERIMENTAL\n"); return &this->vo_driver; @@ -460,7 +460,7 @@ static void *init_class (xine_t *xine, void *visual_gen) { stk_class_t* this; - + //printf("video_out_stk: init_class()\n"); this = calloc(1, sizeof(stk_class_t)); @@ -469,7 +469,7 @@ this->driver_class.get_identifier = get_identifier; this->driver_class.get_description = get_description; this->driver_class.dispose = dispose_class; - + this->config = xine->config; this->xine = xine; diff --git a/src/video_out/video_out_syncfb.c b/src/video_out/video_out_syncfb.c --- a/src/video_out/video_out_syncfb.c +++ b/src/video_out/video_out_syncfb.c @@ -7,7 +7,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * xine is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -18,14 +18,14 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA * * video_out_syncfb.c, SyncFB (for Matrox G200/G400 cards) interface for xine - * + * * based on video_out_xv.c by (see file for original authors) - * + * * with lot's of code from: * video_out_syncfb.c by Joachim Koenig <joa...@gm...> * and by Matthias Oelmann <ma...@we...> * video_out_mga by Aaron Holtzman <aho...@es...> - * + * * glued together for xine by Matthias Dahl <mat...@we...> */ @@ -133,7 +133,7 @@ /* returns boolean value (1 success, 0 failure) */ static int syncfb_overlay_on(syncfb_driver_t* this) { - if(ioctl(this->fd, SYNCFB_ON)) { + if(ioctl(this->fd, SYNCFB_ON)) { xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_syncfb: error. (on ioctl failed)\n"); return 0; @@ -145,7 +145,7 @@ /* returns boolean value (1 success, 0 failure) */ static int syncfb_overlay_off(syncfb_driver_t* this) -{ +{ if(ioctl(this->fd, SYNCFB_OFF)) { xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_syncfb: error. (off ioctl failed)\n"); @@ -169,7 +169,7 @@ for(h = 0; h < (frame->height / 2); h++) { cbp = cb; crp = cr; - + for(w = 0; w < (frame->width / 2); w++) { *dst32++ = (*y) + ((*cb)<<8) + ((*(y+1))<<16) + ((*cr)<<24); y++; y++; cb++; cr++; @@ -181,33 +181,33 @@ *dst32++ = (*y) + ((*cbp)<<8) + ((*(y+1))<<16) + ((*crp)<<24); y++; y++; cbp++; crp++; } - + dst32 += (this->syncfb_config.src_pitch - frame->width) / 2; } } static void write_frame_YUV420P2(syncfb_driver_t* this, syncfb_frame_t* frame) -{ +{ uint8_t* y = (uint8_t *)frame->vo_frame.base[0]; uint8_t* cb = (uint8_t *)frame->vo_frame.base[1]; uint8_t* cr = (uint8_t *)frame->vo_frame.base[2]; uint8_t* dst8 = this->video_mem + this->bufinfo.offset_p2; - int h, w; - + int h, w; + register uint32_t* tmp32; register uint8_t* rcr; register uint8_t* rcb; rcr = cr; rcb = cb; - + for(h = 0; h < (frame->height / 2); h++) { tmp32 = (uint32_t *)dst8; w = (frame->width / 8) * 2; - + while(w--) { register uint32_t temp; - + temp = (*rcb) | (*rcr << 8); rcr++; rcb++; @@ -217,7 +217,7 @@ *tmp32 = temp; tmp32++; } - + dst8 += this->syncfb_config.src_pitch; } @@ -230,13 +230,13 @@ } static void write_frame_YUV420P3(syncfb_driver_t* this, syncfb_frame_t* frame) -{ +{ uint8_t* y = (uint8_t *)frame->vo_frame.base[0]; uint8_t* cb = (uint8_t *)frame->vo_frame.base[1]; uint8_t* cr = (uint8_t *)frame->vo_frame.base[2]; uint8_t* dst8 = this->video_mem + this->bufinfo.offset; int h, half_width = (frame->width/2); - + for(h = 0; h < frame->height; h++) { xine_fast_memcpy(dst8, y, frame->width); y += frame->width; @@ -247,16 +247,16 @@ for(h = 0; h < (frame->height / 2); h++) { xine_fast_memcpy((dst8 + this->bufinfo.offset_p2), cb, half_width); xine_fast_memcpy((dst8 + this->bufinfo.offset_p3), cr, half_width); - [... 539 lines omitted ...] free(this); - + return NULL; } - + /* * init properties and capabilities - */ + */ for (i = 0; i<VO_NUM_PROPERTIES; i++) { this->props[i].value = 0; this->props[i].min = 0; @@ -953,13 +953,13 @@ this->yuv_format = VIDEO_PALETTE_YUV420P2; xprintf(this->xine, XINE_VERBOSITY_LOG, _("video_out_syncfb: info. (SyncFB module supports YUV 4:2:0 (2 plane))\n")); - } else if(this->capabilities.palettes & (1<<VIDEO_PALETTE_YUV422)) { + } else if(this->capabilities.palettes & (1<<VIDEO_PALETTE_YUV422)) { this->supported_capabilities |= VO_CAP_YV12; this->yuv_format = VIDEO_PALETTE_YUV422; xprintf(this->xine, XINE_VERBOSITY_DEBUG, _("video_out_syncfb: info. (SyncFB module supports YUV 4:2:2)\n")); } - + if(this->capabilities.palettes & (1<<VIDEO_PALETTE_YUV422)) { this->supported_capabilities |= VO_CAP_YUY2; xprintf(this->xine, XINE_VERBOSITY_DEBUG, @@ -976,11 +976,11 @@ if(!this->supported_capabilities) { xprintf(this->xine, XINE_VERBOSITY_DEBUG, _("video_out_syncfb: aborting. (SyncFB module does not support YV12, YUY2 nor RGB565)\n")); - - munmap(0, this->capabilities.memory_size); + + munmap(0, this->capabilities.memory_size); close(this->fd); free(this); - + return NULL; } @@ -1002,21 +1002,21 @@ /* check for virtual screen size and screen depth - this is rather important because that data is later used for free memory calculation */ XGetWindowAttributes(visual->display, DefaultRootWindow(visual->display), &attr); - + this->virtual_screen_height = attr.height; this->virtual_screen_width = attr.width; this->screen_depth = attr.depth; - + /* initialize the rest of the variables now with default values */ this->bufinfo.id = -1; this->config = config; this->cur_frame = NULL; - + /* FIXME: setting the default_repeat to anything higher than 1 will result in a distorted video, so for now, set this manually to 0 until the kernel driver is fixed... */ #if 0 - this->default_repeat = config->register_range(config, + this->default_repeat = config->register_range(config, "video.device.syncfb_default_repeat", 3, 1, 4, _("default number of frame repetitions"), _("This specifies how many times a single video " @@ -1024,7 +1024,7 @@ 10, NULL, NULL); #endif this->default_repeat = 0; - + this->display = visual->display; this->drawable = visual->d; this->gc = XCreateGC (this->display, this->drawable, 0, NULL); @@ -1034,9 +1034,9 @@ this->sc.user_data = visual->user_data; this->overlay = NULL; - this->screen = visual->screen; + this->screen = visual->screen; this->video_win_visibility = 1; - + XAllocNamedColor(this->display, DefaultColormap(this->display, this->screen), "black", &this->black, &dummy); @@ -1084,7 +1084,7 @@ int fd; device_name = xine->config->register_filename(xine->config, "video.device.syncfb_device", "/dev/syncfb", - XINE_CONFIG_STRING_IS_DEVICE_NAME, + XINE_CONFIG_STRING_IS_DEVICE_NAME, _("SyncFB device name"), _("Specifies the file name for the SyncFB (TeleTux) device " "to be used.\nThis setting is security critical, " @@ -1093,7 +1093,7 @@ "So you should be careful that the value you enter " "really is a proper framebuffer device."), XINE_CONFIG_SECURITY, NULL, NULL); - + /* check for syncfb device */ if((fd = open(device_name, O_RDWR)) < 0) { xprintf(xine, XINE_VERBOSITY_DEBUG, @@ -1101,7 +1101,7 @@ return NULL; } close(fd); - + /* * from this point on, nothing should go wrong anymore */ @@ -1115,7 +1115,7 @@ this->config = xine->config; this->xine = xine; this->device_name = device_name; - + return this; } diff --git a/src/video_out/video_out_syncfb.h b/src/video_out/video_out_syncfb.h --- a/src/video_out/video_out_syncfb.h +++ b/src/video_out/video_out_syncfb.h @@ -83,16 +83,16 @@ #define SYNCFB_FEATURE_SCALE_H 1 #define SYNCFB_FEATURE_SCALE_V 2 #define SYNCFB_FEATURE_SCALE 3 -#define SYNCFB_FEATURE_CROP 4 +#define SYNCFB_FEATURE_CROP 4 #define SYNCFB_FEATURE_OFFSET 8 -#define SYNCFB_FEATURE_DEINTERLACE 16 -#define SYNCFB_FEATURE_PROCAMP 32 -#define SYNCFB_FEATURE_TRANSITIONS 64 -#define SYNCFB_FEATURE_COLKEY 128 -#define SYNCFB_FEATURE_MIRROR_H 256 -#define SYNCFB_FEATURE_MIRROR_V 512 -#define SYNCFB_FEATURE_BLOCK_REQUEST 1024 -#define SYNCFB_FEATURE_FREQDIV2 2048 +#define SYNCFB_FEATURE_DEINTERLACE 16 +#define SYNCFB_FEATURE_PROCAMP 32 +#define SYNCFB_FEATURE_TRANSITIONS 64 +#define SYNCFB_FEATURE_COLKEY 128 +#define SYNCFB_FEATURE_MIRROR_H 256 +#define SYNCFB_FEATURE_MIRROR_V 512 +#define SYNCFB_FEATURE_BLOCK_REQUEST 1024 +#define SYNCFB_FEATURE_FREQDIV2 2048 typedef struct syncfb_config_s @@ -107,7 +107,7 @@ uint_32 buffers; /* RO, number of available buffers */ uint_32 buffer_size; /* RO, filled in by syncfb */ - uint_32 default_repeat; /* default repeat time for a single frame, can be overridden in syncfb_buffer_info_t */ + uint_32 default_repeat; /* default repeat time for a single frame, can be overridden in syncfb_buffer_info_t */ uint_32 src_width; /* source image width in pixel */ uint_32 src_height; /* source image height in pixel */ @@ -121,7 +121,7 @@ uint_32 scale_filters; /* 0: no filtering, 255: all filters on */ uint_32 image_width; /* onscreen image width */ uint_32 image_height; /* onscreen image height */ - + /* if syncfb has FEATURE_CROP */ uint_32 src_crop_left; /* */ uint_32 src_crop_right; /* */ @@ -176,8 +176,8 @@ uint_32 skip_field_cnt; /* skipped fields when fifo was about to fill up */ uint_32 request_frames; /* number of request_buffer calls */ - uint_32 commit_frames; /* number of commit_buffer calls */ - + uint_32 commit_frames; /* number of commit_buffer calls */ + uint_32 failed_requests; /* number of calls to request_buffer that failed */ uint_32 buffers_waiting; @@ -188,7 +188,7 @@ -typedef struct syncfb_capability_s +typedef struct syncfb_capability_s { char name[64]; /* A name for the syncfb ... */ uint_32 palettes; /* supported palettes - see videodev.h for palettes, test the corresponding bit here */ diff --git a/src/video_out/video_out_vidix.c b/src/video_out/video_out_vidix.c --- a/src/video_out/video_out_vidix.c +++ b/src/video_out/video_out_vidix.c @@ -7,7 +7,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * xine is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -65,7 +65,7 @@ #ifdef HAVE_X11 #include "x11osd.h" #endif - + #define NUM_FRAMES 3 typedef struct vidix_driver_s vidix_driver_t; @@ -109,16 +109,16 @@ uint32_t colourkey; int use_doublebuffer; - + int supports_yv12; - + pthread_mutex_t mutex; vidix_property_t props[VO_NUM_PROPERTIES]; uint32_t capabilities; int visual_type; - + /* X11 related stuff */ #ifdef HAVE_X11 Display *display; @@ -128,17 +128,17 @@ x11osd *xoverlay; int ovl_changed; #endif - + /* fb related stuff */ int fb_width; int fb_height; - + int depth; vo_scale_t sc; int delivered_format; - + xine_t *xine; alphablend_t alphablend_extra_data; @@ -151,7 +151,7 @@ VDL_HANDLE vidix_handler; vidix_capability_t vidix_cap; - + xine_t *xine; } vidix_class_t; @@ -175,7 +175,7 @@ } static void write_frame_YUV420P2(vidix_driver_t* this, vidix_frame_t* frame) -{ +{ uint8_t* y = frame->vo_frame.base[0] + this->sc.displayed_xoffset + this->sc.displayed_yoffset*frame->vo_frame.pitches[0]; uint8_t* cb = frame->vo_frame.base[1] + this->sc.displayed_xoffset/2 + @@ -183,16 +183,16 @@ uint8_t* cr = frame->vo_frame.base[2]+this->sc.displayed_xoffset/2 + this->sc.displayed_yoffset*frame->vo_frame.pitches[2]/2; uint8_t* dst8 = (this->vidix_mem + - this->vidix_play.offsets[this->next_frame] + + this->vidix_play.offsets[this->next_frame] + this->vidix_play.offset.y); - int h, w; - + int h, w; + for(h = 0; h < this->sc.displayed_height; h++) { xine_fast_memcpy(dst8, y, this->sc.displayed_width); y += frame->vo_frame.pitches[0]; dst8 += this->dstrides.y; } - + dst8 = (this->vidix_mem + this->vidix_play.offsets[this->next_frame] + this->vidix_play.offset.v); @@ -211,7 +211,7 @@ { uint8_t *base = this->vidix_mem+this->vidix_play.offsets[this->next_frame]; - switch(frame->format) { + switch(frame->format) { case XINE_IMGFMT_YUY2: yuy2_to_yuy2( /* src */ @@ -223,7 +223,7 @@ /* width x height */ this->sc.displayed_width, this->sc.displayed_height); break; - + case XINE_IMGFMT_YV12: { uint8_t* y = frame->vo_frame.base[0] + this->sc.displayed_xoffset + this->sc.displayed_yoffset*frame->vo_frame.pitches[0]; @@ -231,7 +231,7 @@ this->sc.displayed_yoffset*frame->vo_frame.pitches[1]/2; uint8_t* cr = frame->vo_frame.base[2] + this->sc.displayed_xoffset/2 + this->sc.displayed_yoffset*frame->vo_frame.pitches[2]/2; - + if(this->supports_yv12) { if(this->vidix_play.flags & VID_PLAY_INTERLEAVED_UV) write_frame_YUV420P2(this, frame); [... 758 lines omitted ...] query_fourccs(this); XLockDisplay (this->display); - if(this->colourkey) { + if(this->colourkey) { this->xoverlay = x11osd_create (this->xine, this->display, this->screen, this->drawable, X11OSD_COLORKEY); if(this->xoverlay) x11osd_colorkey(this->xoverlay, this->colourkey, &this->sc); } else { - this->xoverlay = x11osd_create (this->xine, this->display, this->screen, + this->xoverlay = x11osd_create (this->xine, this->display, this->screen, this->drawable, X11OSD_SHAPED); } XUnlockDisplay (this->display); @@ -1216,14 +1216,14 @@ static void *vidix_init_class (xine_t *xine, void *visual_gen) { vidix_class_t *this = init_class (xine, visual_gen); - + if(this) { this->driver_class.open_plugin = vidix_open_plugin; this->driver_class.get_identifier = vidix_get_identifier; this->driver_class.get_description = vidix_get_description; this->driver_class.dispose = dispose_class; } - + return this; } @@ -1240,9 +1240,9 @@ char *device; int fd; struct fb_var_screeninfo fb_var; - + this->visual_type = XINE_VISUAL_TYPE_FB; - + /* Register config option for fb device */ device = config->register_filename(config, "video.device.vidixfb_device", "/dev/fb0", XINE_CONFIG_STRING_IS_DEVICE_NAME, _("framebuffer device name"), @@ -1251,45 +1251,45 @@ "can be used to fill this file with arbitrary content. So you should be careful that " "the value you enter really is a proper framebuffer device."), XINE_CONFIG_SECURITY, NULL, NULL); - + /* Open fb device for reading */ if((fd = open("/dev/fb0", O_RDONLY)) < 0) { - xprintf(this->xine, XINE_VERBOSITY_DEBUG, + xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_vidix: unable to open frame buffer device \"%s\": %s\n", device, strerror(errno)); return NULL; } - + /* Read screen info */ if(ioctl(fd, FBIOGET_VSCREENINFO, &fb_var) != 0) { - xprintf(this->xine, XINE_VERBOSITY_DEBUG, + xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_vidix: error in ioctl FBIOGET_VSCREENINFO: %s", strerror(errno)); close(fd); return NULL; } - + /* Store screen bpp and dimensions */ this->depth = fb_var.bits_per_pixel; this->fb_width = fb_var.xres; this->fb_height = fb_var.yres; - + /* Close device */ close(fd); - + this->sc.frame_output_cb = vidixfb_frame_output_cb; this->sc.user_data = this; - + /* Make sure colour keying is turned off */ this->vidix_grkey.ckey.op = CKEY_FALSE; vdlSetGrKeys(this->vidix_handler, &this->vidix_grkey); - + query_fourccs(this); - + return &this->vo_driver; } static char* vidixfb_get_identifier (video_driver_class_t *this_gen) { return "vidixfb"; -} +} static char* vidixfb_get_description (video_driver_class_t *this_gen) { return _("xine video output plugin using libvidix for linux frame buffer"); @@ -1298,14 +1298,14 @@ static void *vidixfb_init_class (xine_t *xine, void *visual_gen) { vidix_class_t *this = init_class (xine, visual_gen); - + if(this) { this->driver_class.open_plugin = vidixfb_open_plugin; this->driver_class.get_identifier = vidixfb_get_identifier; this->driver_class.get_description = vidixfb_get_description; this->driver_class.dispose = dispose_class; } - + return this; } @@ -1320,7 +1320,7 @@ */ const plugin_info_t xine_plugin_info[] EXPORTED = { - /* type, API, "name", version, special_info, init_function */ + /* type, API, "name", version, special_info, init_function */ #ifdef HAVE_X11 { PLUGIN_VIDEO_OUT, 21, "vidix", XINE_VERSION_CODE, &vo_info_vidix, vidix_init_class }, #endif diff --git a/src/video_out/video_out_xcbshm.c b/src/video_out/video_out_xcbshm.c --- a/src/video_out/video_out_xcbshm.c +++ b/src/video_out/video_out_xcbshm.c @@ -1,13 +1,13 @@ /* * Copyright (C) 2000-2003, 2007 the xine project - * + * * This file is part of xine, a free video player. - * + * * xine is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * xine is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -23,7 +23,7 @@ * Aaron Holtzman <aho...@es...> * * xine-specific code by Guenter Bartsch <bar...@st...> - * + * * ported to xcb by Christoph Pfister - Feb 2007 */ @@ -71,7 +71,7 @@ int flags; vo_scale_t sc; - + uint8_t *image; int bytes_per_line; xcb_shm_seg_t shmseg; @@ -96,7 +96,7 @@ int bpp; int scanline_pad; int use_shm; - + int yuv2rgb_brightness; int yuv2rgb_contrast; int yuv2rgb_saturation; @@ -104,7 +104,7 @@ yuv2rgb_factory_t *yuv2rgb_factory; vo_scale_t sc; - + xshm_frame_t *cur_frame; xcbosd *xoverlay; int ovl_changed; @@ -126,7 +126,7 @@ /* - * allocate an XImage, try XShm first but fall back to + * allocate an XImage, try XShm first but fall back to * plain X11 if XShm should fail */ static void create_ximage(xshm_driver_t *this, xshm_frame_t *frame, int width, int height) @@ -151,9 +151,9 @@ "video_out_xcbshm: => not using MIT Shared Memory extension.\n"), strerror(errno)); goto shm_fail1; } - + frame->image = shmat(shmid, 0, 0); - + if (frame->image == ((void *) -1)) { xprintf(this->xine, XINE_VERBOSITY_LOG, _("video_out_xcbshm: shared memory error (address error) when allocating image \n" @@ -173,10 +173,10 @@ goto shm_fail3; } - /* + /* * Now that the Xserver has learned about and attached to the * shared memory segment, delete it. It's actually deleted by - * the kernel when all users of that segment have detached from + * the kernel when all users of that segment have detached from * it. Gives an automatic shared memory cleanup in case we crash. */ @@ -229,10 +229,10 @@ static void xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src) { xshm_frame_t *frame = (xshm_frame_t *) vo_img ; /*xshm_driver_t *this = (xshm_driver_t *) vo_img->driver; */ - - vo_img->proc_called = 1; - - if( frame->vo_frame.crop_left || frame->vo_frame.crop_top || + + vo_img->proc_called = 1; + + if( frame->vo_frame.crop_left || frame->vo_frame.crop_top || frame->vo_frame.crop_right || frame->vo_frame.crop_bottom ) { /* we don't support crop, so don't even waste cpu cycles. @@ -240,7 +240,7 @@ */ return; } - + lprintf ("copy... (format %d)\n", frame->format); if (frame->format == XINE_IMGFMT_YV12) @@ -249,7 +249,7 @@ else frame->yuv2rgb->yuy22rgb_fun (frame->yuv2rgb, frame->rgb_dst, src[0]); - + lprintf ("copy...done\n"); } @@ -306,10 +306,10 @@ /* * supply required functions/fields */ - [... 259 lines omitted ...] - + case XINE_GUI_SEND_DRAWABLE_CHANGED: this->window = (xcb_window_t) data; @@ -887,7 +887,7 @@ if (this->cur_frame) { x11_rectangle_t *rect = data; int x1, y1, x2, y2; - + _x_vo_scale_translate_gui2video(&this->cur_frame->sc, rect->x, rect->y, &x1, &y1); @@ -910,16 +910,16 @@ static void xshm_dispose (vo_driver_t *this_gen) { xshm_driver_t *this = (xshm_driver_t *) this_gen; - + if (this->cur_frame) this->cur_frame->vo_frame.dispose (&this->cur_frame->vo_frame); this->yuv2rgb_factory->dispose (this->yuv2rgb_factory); - + pthread_mutex_lock(&this->main_mutex); xcb_free_gc(this->connection, this->gc); pthread_mutex_unlock(&this->main_mutex); - + if( this->xoverlay ) { pthread_mutex_lock(&this->main_mutex); xcbosd_destroy(this->xoverlay); @@ -929,7 +929,7 @@ pthread_mutex_destroy(&this->main_mutex); _x_alphablend_free(&this->alphablend_extra_data); - + free (this); } @@ -1014,7 +1014,7 @@ xcb_get_geometry_reply_t *geometry_reply; const xcb_query_extension_reply_t *query_extension_reply; - + this = (xshm_driver_t *) calloc(1, sizeof(xshm_driver_t)); if (!this) @@ -1023,7 +1023,7 @@ 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; @@ -1032,15 +1032,15 @@ 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; - + this->sc.user_ratio = XINE_VO_ASPECT_AUTO; - + this->cur_frame = NULL; this->gc = xcb_generate_id(this->connection); xcb_create_gc(this->connection, this->gc, this->window, XCB_GC_FOREGROUND, &this->screen->black_pixel); this->xoverlay = NULL; this->ovl_changed = 0; - + this->xine = class->xine; this->vo_driver.get_capabilities = xshm_get_capabilities; @@ -1108,7 +1108,7 @@ query_extension_reply = xcb_get_extension_data(this->connection, &xcb_shm_id); if (query_extension_reply && query_extension_reply->present) { this->use_shm = 1; - } + } else { xprintf(this->xine, XINE_VERBOSITY_LOG, _("video_out_xcbshm: MIT shared memory extension not present on display.\n")); @@ -1147,7 +1147,7 @@ */ cpu_byte_order = htonl(1) == 1 ? XCB_IMAGE_ORDER_MSB_FIRST : XCB_IMAGE_ORDER_LSB_FIRST; swapped = cpu_byte_order != image_byte_order; - + xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_xcbshm: video mode depth is %d (%d bpp), %s, %sswapped,\n" "\tred: %08x, green: %08x, blue: %08x\n", @@ -1209,16 +1209,16 @@ } if (!mode) { - xprintf (this->xine, XINE_VERBOSITY_LOG, + xprintf (this->xine, XINE_VERBOSITY_LOG, _("video_out_xcbshm: your video mode was not recognized, sorry :-(\n")); return NULL; } - + this->yuv2rgb_brightness = 0; this->yuv2rgb_contrast = 128; this->yuv2rgb_saturation = 128; - - this->yuv2rgb_factory = yuv2rgb_factory_init (mode, swapped, + + this->yuv2rgb_factory = yuv2rgb_factory_init (mode, swapped, this->yuv2rgb_cmap); this->yuv2rgb_factory->set_csc_levels (this->yuv2rgb_factory, this->yuv2rgb_brightness, @@ -1274,7 +1274,7 @@ */ const plugin_info_t xine_plugin_info[] EXPORTED = { - /* type, API, "name", version, special_info, init_function */ + /* type, API, "name", version, special_info, init_function */ { PLUGIN_VIDEO_OUT, 21, "xshm", XINE_VERSION_CODE, &vo_info_xshm, xshm_init_class }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } }; diff --git a/src/video_out/video_out_xcbxv.c b/src/video_out/video_out_xcbxv.c --- a/src/video_out/video_out_xcbxv.c +++ b/src/video_out/video_out_xcbxv.c @@ -196,7 +196,7 @@ 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 @@ 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 @@ 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 @@ 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_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 @@ 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 @@ 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 @@ } } 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 @@ 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 @@ /* printf ("video_out_xcbxv: xv_display_frame...\n"); */ - + /* * queue frames (deinterlacing) * free old frames @@ -795,7 +795,7 @@ 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 @@ this->props[property].entry->num_value = this->props[property].value; return this->props[property].value; - } + } else { switch (property) { @@ -843,13 +843,13 @@ xv_compute_output_size (this); } break; - + [... 99 lines omitted ...] 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 @@ 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 @@ /* 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ } 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 void dispose_class (video_driver_class_t *this_gen) { xv_class_t *this = (xv_class_t *) this_gen; - + free (this); } diff --git a/src/video_out/video_out_xshm.c b/src/video_out/video_out_xshm.c --- a/src/video_out/video_out_xshm.c +++ b/src/video_out/video_out_xshm.c @@ -1,13 +1,13 @@ /* * Copyright (C) 2000-2003 the xine project - * + * * This file is part of xine, a free video player. - * + * * xine is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * xine is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -76,7 +76,7 @@ int flags; vo_scale_t sc; - + XImage *image; XShmSegmentInfo shminfo; @@ -100,7 +100,7 @@ int depth, bpp, bytes_per_pixel, image_byte_order; int use_shm; XColor black; - + int yuv2rgb_brightness; int yuv2rgb_contrast; int yuv2rgb_saturation; @@ -108,7 +108,7 @@ yuv2rgb_factory_t *yuv2rgb_factory; vo_scale_t sc; - + xshm_frame_t *cur_frame; x11osd *xoverlay; int ovl_changed; @@ -164,11 +164,11 @@ } /* - * allocate an XImage, try XShm first but fall back to + * allocate an XImage, try XShm first but fall back to * plain X11 if XShm should fail */ /* called xlocked */ -static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo, +static XImage *create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo, int width, int height) { XImage *myimage = NULL; @@ -177,16 +177,16 @@ /* * try shm */ - + gX11Fail = 0; x11_InstallXErrorHandler (this); - myimage = XShmCreateImage(this->display, + myimage = XShmCreateImage(this->display, this->visual, this->depth, ZPixmap, NULL, shminfo, - width, + width, height); if (myimage == NULL ) { @@ -196,15 +196,15 @@ this->use_shm = 0; goto finishShmTesting; } - + this->bpp = myimage->bits_per_pixel; this->bytes_per_pixel = this->bpp / 8; this->image_byte_order = myimage->byte_order; - + shminfo->shmid=shmget(IPC_PRIVATE, - myimage->bytes_per_line * myimage->height, + myimage->bytes_per_line * myimage->height, IPC_CREAT | 0777); - + if (shminfo->shmid < 0 ) { xprintf(this->xine, XINE_VERBOSITY_LOG, _("video_out_xshm: %s: allocating image\n" @@ -212,9 +212,9 @@ this->use_shm = 0; goto finishShmTesting; } - + shminfo->shmaddr = (char *) shmat(shminfo->shmid, 0, 0); - + if (shminfo->shmaddr == ((char *) -1)) { xprintf(this->xine, XINE_VERBOSITY_LOG, _("video_out_xshm: shared memory error (address error) when allocating image \n" @@ -224,12 +224,12 @@ this->use_shm = 0; goto finishShmTesting; } - + shminfo->readOnly = False; myimage->data = shminfo->shmaddr; - + XShmAttach(this->display, shminfo); - + XSync(this->display, False); [... 405 lines omitted ...] Atom to_get; - + retval = NULL; length = 0x7fffffff; to_get = XInternAtom(this->display, "_IMLIB_COLORMAP", False); @@ -1034,7 +1034,7 @@ if (format_ret == 8) { unsigned int i; unsigned long j; - + j = 1 + retval[0]*4; this->yuv2rgb_cmap = malloc(sizeof(uint8_t) * 32 * 32 * 32); for (i = 0; i < 32 * 32 * 32 && j < num_ret; i++) @@ -1082,14 +1082,14 @@ int swapped; int cpu_byte_order; XColor dummy; - + this = (xshm_driver_t *) calloc(1, sizeof(xshm_driver_t)); if (!this) return NULL; _x_alphablend_init(&this->alphablend_extra_data, class->xine); - + this->display = visual->display; this->screen = visual->screen; @@ -1102,9 +1102,9 @@ 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; - + this->sc.user_ratio = XINE_VO_ASPECT_AUTO; - + this->drawable = visual->d; this->cur_frame = NULL; LOCK_DISPLAY(this); @@ -1112,7 +1112,7 @@ UNLOCK_DISPLAY(this); this->xoverlay = NULL; this->ovl_changed = 0; - + this->x11_old_error_handler = NULL; this->xine = class->xine; @@ -1129,7 +1129,7 @@ this->vo_driver.gui_data_exchange = xshm_gui_data_exchange; this->vo_driver.dispose = xshm_dispose; this->vo_driver.redraw_needed = xshm_redraw_needed; - + LOCK_DISPLAY(this); XAllocNamedColor (this->display, DefaultColormap (this->display, this->screen), @@ -1151,7 +1151,7 @@ UNLOCK_DISPLAY(this); this->visual = attribs.visual; this->depth = attribs.depth; - + if (this->depth>16) xprintf(this->xine, XINE_VERBOSITY_LOG, _("\n\nWARNING: current display depth is %d. For better performance\n" @@ -1164,7 +1164,7 @@ LOCK_DISPLAY(this); if (XShmQueryExtension(this->display)) { this->use_shm = 1; - } + } else { xprintf(this->xine, XINE_VERBOSITY_LOG, _("video_out_xshm: MIT shared memory extension not present on display.\n")); @@ -1186,7 +1186,7 @@ */ cpu_byte_order = htonl(1) == 1 ? MSBFirst : LSBFirst; swapped = cpu_byte_order != this->image_byte_order; - + xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video_out_xshm: video mode depth is %d (%d bpp), %s, %sswapped,\n" "\tred: %08lx, green: %08lx, blue: %08lx\n", @@ -1250,16 +1250,16 @@ } if (!mode) { - xprintf (this->xine, XINE_VERBOSITY_LOG, + xprintf (this->xine, XINE_VERBOSITY_LOG, _("video_out_xshm: your video mode was not recognized, sorry :-(\n")); return NULL; } - + this->yuv2rgb_brightness = 0; this->yuv2rgb_contrast = 128; this->yuv2rgb_saturation = 128; - - this->yuv2rgb_factory = yuv2rgb_factory_init (mode, swapped, + + this->yuv2rgb_factory = yuv2rgb_factory_init (mode, swapped, this->yuv2rgb_cmap); this->yuv2rgb_factory->set_csc_levels (this->yuv2rgb_factory, this->yuv2rgb_brightness, @@ -1287,7 +1287,7 @@ visual.frame_output_cb = old_visual->frame_output_cb; visual.lock_display = NULL; visual.unlock_display = NULL; - + return xshm_open_plugin_2(class_gen, (void *)&visual); } @@ -1347,7 +1347,7 @@ */ const plugin_info_t xine_plugin_info[] EXPORTED = { - /* type, API, "name", version, special_info, init_function */ + /* type, API, "name", version, special_info, init_function */ { PLUGIN_VIDEO_OUT, 21, "xshm", XINE_VERSION_CODE, &vo_info_xshm, xshm_init_class }, { PLUGIN_VIDEO_OUT, 21, "xshm", XINE_VERSION_CODE, &vo_info_xshm_2, xshm_init_class_2 }, { PLUGIN_NONE, 0, "", 0, NULL, NULL } diff --git a/src/video_out/video_out_xv.c b/src/video_out/video_out_xv.c --- a/src/video_out/video_out_xv.c +++ b/src/video_out/video_out_xv.c @@ -218,7 +218,7 @@ frame = (xv_frame_t *) calloc(1, sizeof(xv_frame_t)); if (!frame) return NULL; - + pthread_mutex_init (&frame->vo_frame.mutex, NULL); /* @@ -235,7 +235,7 @@ static int HandleXError (Display *display, XErrorEvent *xevent) { char str [1024]; - + XGetErrorText (display, xevent->error_code, str, 1024); printf ("received X error event: %s\n", str); gX11Fail = 1; @@ -309,7 +309,7 @@ lprintf( "XvImage height %d\n", image->height ); lprintf( "XvImage data_size %d\n", image->data_size ); lprintf( "XvImage num_planes %d\n", image->num_planes ); - + for( q=0; q < image->num_planes; q++) { lprintf( "XvImage pitches[%d] %d\n", q, image->pitches[q] ); @@ -425,10 +425,10 @@ shminfo->shmid = -1; } - } + } else { free (myimage->data); - + XFree (myimage); } } @@ -466,7 +466,7 @@ if(format == XINE_IMGFMT_YUY2) { frame->vo_frame.pitches[0] = frame->image->pitches[0]; frame->vo_frame.base[0] = frame->image->data + frame->image->offsets[0]; - } + } else { frame->vo_frame.pitches[0] = frame->image->pitches[0]; frame->vo_frame.pitches[1] = frame->image->pitches[2]; @@ -505,7 +505,7 @@ if(this->deinterlace_frame.image) dispose_ximage (this, &this->deinterlace_frame.shminfo, this->deinterlace_frame.image); - + this->deinterlace_frame.image = create_ximage (this, &this->deinterlace_frame.shminfo, frame->width,frame->height / xvscaling, frame->format); @@ -621,12 +621,12 @@ this->sc.output_xoffset, this->sc.output_yoffset, this->sc.output_width, this->sc.output_height); } - + if (this->xoverlay) { x11osd_resize (this->xoverlay, this->sc.gui_width, this->sc.gui_height); this->ovl_changed = 1; } - + UNLOCK_DISPLAY(this); } @@ -657,7 +657,7 @@ } } -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; @@ -665,10 +665,10 @@ if( this->ovl_changed && this->xoverlay ) { LOCK_DISPLAY(this); - x11osd_clear(this->xoverlay); + x11osd_clear(this->xoverlay); UNLOCK_DISPLAY(this); } - + this->alphablend_extra_data.offset_x = frame_gen->overlay_offset_x; this->alphablend_extra_data.offset_y = frame_gen->overlay_offset_y; } @@ -685,7 +685,7 @@ 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; @@ -694,16 +694,16 @@ if( overlay->unscaled ) { if( this->ovl_changed && this->xoverlay ) { LOCK_DISPLAY(this); - x11osd_blend(this->xoverlay, overlay); + x11osd_blend(this->xoverlay, overlay); UNLOCK_DISPLAY(this); } } 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); } @@ -747,7 +747,7 @@ [... 165 lines omitted ...] int_default = 0; - + if (config_name) { /* is this a boolean property ? */ if ((attr.min_value == 0) && (attr.max_value == 1)) { @@ -1242,12 +1242,12 @@ 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); } @@ -1384,7 +1384,7 @@ return NULL; _x_alphablend_init(&this->alphablend_extra_data, class->xine); - + this->display = visual->display; this->screen = visual->screen; this->config = config; @@ -1446,19 +1446,19 @@ xprintf(class->xine, XINE_VERBOSITY_LOG, _("video_out_xv: 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")); - + /* XvFree... [truncated message content] |