You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
3.7 KiB
75 lines
3.7 KiB
/*******************************************************************************
|
|
* video_x11.h: X11 video output display method
|
|
* (c)1999 VideoLAN
|
|
*******************************************************************************
|
|
* The X11 method for video output thread. The functions declared here should
|
|
* not be needed by any other module than video_output.c.
|
|
*******************************************************************************
|
|
* Required headers:
|
|
* <X11/Xlib.h>
|
|
* <X11/Xutil.h>
|
|
* <X11/extensions/XShm.h>
|
|
* "config.h"
|
|
* "common.h"
|
|
* "mtime.h"
|
|
* "video.h"
|
|
* "video_output.h"
|
|
*******************************************************************************/
|
|
|
|
/*******************************************************************************
|
|
* vout_x11_t: video output X11 method descriptor
|
|
*******************************************************************************
|
|
* This structure is part of the video output thread descriptor.
|
|
* It describes the X11 specific properties of an output thread. X11 video
|
|
* output is performed through regular resizable windows. Windows can be
|
|
* dynamically resized to adapt to the size of the streams.
|
|
*******************************************************************************/
|
|
typedef struct vout_x11_s
|
|
{
|
|
/* User settings */
|
|
boolean_t b_shm_ext; /* shared memory extension flag */
|
|
|
|
/* Thread configuration - these properties are copied from a video_cfg_t
|
|
* structure to be used in second step of initialization */
|
|
char * psz_display; /* display name */
|
|
char * psz_title; /* window title */
|
|
|
|
/* Internal settings and properties */
|
|
Display * p_display; /* display pointer */
|
|
int i_screen; /* screen number */
|
|
Window window; /* window instance handler */
|
|
GC gc; /* graphic context instance handler */
|
|
|
|
/* Window manager hints and atoms */
|
|
Atom wm_protocols; /* WM_PROTOCOLS atom */
|
|
Atom wm_delete_window; /* WM_DELETE_WINDOW atom */
|
|
|
|
/* Color maps and translation tables - some of those tables are shifted,
|
|
* see x11.c for more informations. */
|
|
u8 * trans_16bpp_red; /* red (16 bpp) (SHIFTED !) */
|
|
u8 * trans_16bpp_green; /* green (16 bpp) (SHIFTED !) */
|
|
u8 * trans_16bpp_blue; /* blue (16 bpp) (SHIFTED !) */
|
|
|
|
/* ?? colormaps ? */
|
|
boolean_t b_private_colormap; /* private color map flag */
|
|
Colormap private_colormap; /* private color map */
|
|
|
|
/* Display buffers and shared memory information */
|
|
int i_buffer_index; /* buffer index */
|
|
XImage * p_ximage[2]; /* XImage pointer */
|
|
XShmSegmentInfo shm_info[2]; /* shared memory zone information */
|
|
|
|
int i_completion_type; /* ?? */
|
|
} vout_x11_t;
|
|
|
|
/*******************************************************************************
|
|
* Prototypes
|
|
*******************************************************************************/
|
|
int vout_X11AllocOutputMethod ( vout_thread_t *p_vout, video_cfg_t *p_cfg );
|
|
void vout_X11FreeOutputMethod ( vout_thread_t *p_vout );
|
|
int vout_X11CreateOutputMethod ( vout_thread_t *p_vout );
|
|
void vout_X11DestroyOutputMethod ( vout_thread_t *p_vout );
|
|
int vout_X11ManageOutputMethod ( vout_thread_t *p_vout );
|
|
void vout_X11DisplayOutput ( vout_thread_t *p_vout );
|
|
|
|
|
|
|