xine-lib 1.2.11
Data Structures | Macros | Functions | Variables
video_out_xshm.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <errno.h>
#include <X11/extensions/XShm.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/time.h>
#include <pthread.h>
#include <netinet/in.h>
#include "xine.h"
#include <xine/video_out.h>
#include <xine/xine_internal.h>
#include "yuv2rgb.h"
#include <xine/xineutils.h>
#include <xine/vo_scale.h>
#include "x11osd.h"
#include "xine_mmx.h"
#include "color_matrix.c"

Data Structures

struct  xshm_frame_t
 
struct  xshm_driver_t
 
struct  xshm_class_t
 

Macros

#define LOG_MODULE   "video_out_xshm"
 
#define LOG_VERBOSE
 
#define LOCK_DISPLAY(this)
 
#define UNLOCK_DISPLAY(this)
 
#define FS_DONE   1
 
#define FS_LATE   2
 
#define FS_FLAGS   4
 
#define CM_LUT
 
#define CM_DRIVER_T   xshm_driver_t
 

Functions

static int HandleXError (Display *display, XErrorEvent *xevent)
 
static void x11_InstallXErrorHandler (xshm_driver_t *this)
 
static void x11_DeInstallXErrorHandler (xshm_driver_t *this)
 
static XImage * create_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo, int width, int height)
 
static void dispose_ximage (xshm_driver_t *this, XShmSegmentInfo *shminfo, XImage *myimage)
 
static uint32_t xshm_get_capabilities (vo_driver_t *this_gen)
 
static void xshm_compute_ideal_size (xshm_driver_t *this, xshm_frame_t *frame)
 
static void xshm_compute_rgb_size (xshm_driver_t *this, xshm_frame_t *frame)
 
static void xshm_frame_field (vo_frame_t *vo_img, int which_field)
 
static void xshm_frame_proc_setup (vo_frame_t *vo_img)
 
static void xshm_frame_proc_slice (vo_frame_t *vo_img, uint8_t **src)
 
static void xshm_frame_dispose (vo_frame_t *vo_img)
 
static vo_frame_txshm_alloc_frame (vo_driver_t *this_gen)
 
static void xshm_update_frame_format (vo_driver_t *this_gen, vo_frame_t *frame_gen, uint32_t width, uint32_t height, double ratio, int format, int flags)
 
static void xshm_overlay_clut_yuv2rgb (xshm_driver_t *this, vo_overlay_t *overlay, xshm_frame_t *frame)
 
static void xshm_overlay_begin (vo_driver_t *this_gen, vo_frame_t *frame_gen, int changed)
 
static void xshm_overlay_end (vo_driver_t *this_gen, vo_frame_t *vo_img)
 
static void xshm_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay)
 
static void clean_output_area (xshm_driver_t *this, xshm_frame_t *frame)
 
static int xshm_redraw_needed (vo_driver_t *this_gen)
 
static void xshm_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
 
static int xshm_get_property (vo_driver_t *this_gen, int property)
 
static int xshm_set_property (vo_driver_t *this_gen, int property, int value)
 
static void xshm_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max)
 
static int xshm_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data)
 
static void xshm_dispose (vo_driver_t *this_gen)
 
static int ImlibPaletteLUTGet (xshm_driver_t *this)
 
static const char * visual_class_name (Visual *visual)
 
static vo_driver_txshm_open_plugin_2 (video_driver_class_t *class_gen, const void *visual_gen)
 
static vo_driver_txshm_open_plugin_old (video_driver_class_t *class_gen, const void *visual_gen)
 
static void * xshm_init_class (xine_t *xine, const void *visual_gen)
 
static void * xshm_init_class_2 (xine_t *xine, const void *visual_gen)
 

Variables

static int gX11Fail
 
static const vo_info_t vo_info_xshm
 
static const vo_info_t vo_info_xshm_2
 
const plugin_info_t xine_plugin_info[] EXPORTED
 

Macro Definition Documentation

◆ CM_DRIVER_T

#define CM_DRIVER_T   xshm_driver_t

◆ CM_LUT

#define CM_LUT

◆ FS_DONE

#define FS_DONE   1

◆ FS_FLAGS

#define FS_FLAGS   4

◆ FS_LATE

#define FS_LATE   2

◆ LOCK_DISPLAY

#define LOCK_DISPLAY (   this)
Value:
{if(this->lock_display) this->lock_display(this->user_data); \
else XLockDisplay(this->display);}
static void user_data(vdpau_mpeg4_decoder_t *this_gen, uint8_t *buffer, int len)
Definition: vdpau_mpeg4.c:695

◆ LOG_MODULE

#define LOG_MODULE   "video_out_xshm"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ UNLOCK_DISPLAY

#define UNLOCK_DISPLAY (   this)
Value:
{if(this->unlock_display) this->unlock_display(this->user_data); \
else XUnlockDisplay(this->display);}

Function Documentation

◆ clean_output_area()

static void clean_output_area ( xshm_driver_t this,
xshm_frame_t frame 
)
static

◆ create_ximage()

static XImage * create_ximage ( xshm_driver_t this,
XShmSegmentInfo *  shminfo,
int  width,
int  height 
)
static

◆ dispose_ximage()

static void dispose_ximage ( xshm_driver_t this,
XShmSegmentInfo *  shminfo,
XImage *  myimage 
)
static

◆ HandleXError()

static int HandleXError ( Display *  display,
XErrorEvent *  xevent 
)
static

References gX11Fail, and LOG_MODULE.

Referenced by x11_InstallXErrorHandler().

◆ ImlibPaletteLUTGet()

static int ImlibPaletteLUTGet ( xshm_driver_t this)
static

References NULL.

Referenced by xshm_open_plugin_2().

◆ visual_class_name()

static const char * visual_class_name ( Visual *  visual)
static

Referenced by xshm_open_plugin_2().

◆ x11_DeInstallXErrorHandler()

static void x11_DeInstallXErrorHandler ( xshm_driver_t this)
static

References NULL.

Referenced by create_ximage().

◆ x11_InstallXErrorHandler()

static void x11_InstallXErrorHandler ( xshm_driver_t this)
static

References HandleXError().

Referenced by create_ximage().

◆ xshm_alloc_frame()

static vo_frame_t * xshm_alloc_frame ( vo_driver_t this_gen)
static

◆ xshm_compute_ideal_size()

static void xshm_compute_ideal_size ( xshm_driver_t this,
xshm_frame_t frame 
)
static

◆ xshm_compute_rgb_size()

static void xshm_compute_rgb_size ( xshm_driver_t this,
xshm_frame_t frame 
)
static

◆ xshm_display_frame()

static void xshm_display_frame ( vo_driver_t this_gen,
vo_frame_t frame_gen 
)
static

◆ xshm_dispose()

static void xshm_dispose ( vo_driver_t this_gen)
static

◆ xshm_frame_dispose()

static void xshm_frame_dispose ( vo_frame_t vo_img)
static

◆ xshm_frame_field()

static void xshm_frame_field ( vo_frame_t vo_img,
int  which_field 
)
static

◆ xshm_frame_proc_setup()

static void xshm_frame_proc_setup ( vo_frame_t vo_img)
static

◆ xshm_frame_proc_slice()

static void xshm_frame_proc_slice ( vo_frame_t vo_img,
uint8_t **  src 
)
static

◆ xshm_get_capabilities()

static uint32_t xshm_get_capabilities ( vo_driver_t this_gen)
static

◆ xshm_get_property()

static int xshm_get_property ( vo_driver_t this_gen,
int  property 
)
static

◆ xshm_get_property_min_max()

static void xshm_get_property_min_max ( vo_driver_t this_gen,
int  property,
int *  min,
int *  max 
)
static

◆ xshm_gui_data_exchange()

static int xshm_gui_data_exchange ( vo_driver_t this_gen,
int  data_type,
void *  data 
)
static

◆ xshm_init_class()

static void * xshm_init_class ( xine_t xine,
const void *  visual_gen 
)
static

◆ xshm_init_class_2()

static void * xshm_init_class_2 ( xine_t xine,
const void *  visual_gen 
)
static

◆ xshm_open_plugin_2()

static vo_driver_t * xshm_open_plugin_2 ( video_driver_class_t class_gen,
const void *  visual_gen 
)
static

◆ xshm_open_plugin_old()

static vo_driver_t * xshm_open_plugin_old ( video_driver_class_t class_gen,
const void *  visual_gen 
)
static

◆ xshm_overlay_begin()

static void xshm_overlay_begin ( vo_driver_t this_gen,
vo_frame_t frame_gen,
int  changed 
)
static

◆ xshm_overlay_blend()

static void xshm_overlay_blend ( vo_driver_t this_gen,
vo_frame_t frame_gen,
vo_overlay_t overlay 
)
static

◆ xshm_overlay_clut_yuv2rgb()

static void xshm_overlay_clut_yuv2rgb ( xshm_driver_t this,
vo_overlay_t overlay,
xshm_frame_t frame 
)
static

◆ xshm_overlay_end()

static void xshm_overlay_end ( vo_driver_t this_gen,
vo_frame_t vo_img 
)
static

◆ xshm_redraw_needed()

static int xshm_redraw_needed ( vo_driver_t this_gen)
static

◆ xshm_set_property()

static int xshm_set_property ( vo_driver_t this_gen,
int  property,
int  value 
)
static

◆ xshm_update_frame_format()

static void xshm_update_frame_format ( vo_driver_t this_gen,
vo_frame_t frame_gen,
uint32_t  width,
uint32_t  height,
double  ratio,
int  format,
int  flags 
)
static

Variable Documentation

◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED
Initial value:
= {
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
static const vo_info_t vo_info_xshm
Definition: video_out_xshm.c:1472
static void * xshm_init_class(xine_t *xine, const void *visual_gen)
Definition: video_out_xshm.c:1444
static void * xshm_init_class_2(xine_t *xine, const void *visual_gen)
Definition: video_out_xshm.c:1462
static const vo_info_t vo_info_xshm_2
Definition: video_out_xshm.c:1478
#define XINE_VERSION_CODE
Definition: xine_internal.h:57
NULL
Definition: xine_plugin.c:78
#define PLUGIN_NONE
Definition: xine_plugin.h:29
#define PLUGIN_VIDEO_OUT
Definition: xine_plugin.h:36

◆ gX11Fail

int gX11Fail
static

Referenced by create_ximage(), and HandleXError().

◆ vo_info_xshm

const vo_info_t vo_info_xshm
static
Initial value:
= {
.priority = 6,
.visual_type = XINE_VISUAL_TYPE_X11,
}
#define XINE_VISUAL_TYPE_X11
Definition: xine.h:154

◆ vo_info_xshm_2

const vo_info_t vo_info_xshm_2
static
Initial value:
= {
.priority = 6,
.visual_type = XINE_VISUAL_TYPE_X11_2,
}
#define XINE_VISUAL_TYPE_X11_2
Definition: xine.h:155