xine-lib 1.2.11
Data Structures | Macros | Functions | Variables
video_out_pgx32.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/fbio.h>
#include <sys/visual_io.h>
#include <sys/mman.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <dga/dga.h>
#include <xine/xine_internal.h>
#include "bswap.h"
#include <xine/vo_scale.h>
#include <xine/xineutils.h>

Data Structures

struct  pgx32_driver_class_t
 
struct  pgx32_frame_t
 
struct  pgx32_driver_t
 

Macros

#define GFXP_VRAM_MMAPLEN   0x00800000
 
#define GFXP_REGS_MMAPLEN   0x00020000
 
#define GFXP_REGSBASE   0x00800000
 
#define FIFO_SPACE   0x0003
 
#define RASTERISER_MODE   0x1014
 
#define RECT_ORIGIN   0x101A
 
#define RECT_SIZE   0x101B
 
#define SCISSOR_MODE   0x1030
 
#define SCISSOR_MIN_XY   0x1031
 
#define SCISSOR_MAX_XY   0x1032
 
#define AREA_STIPPLE_MODE   0x1034
 
#define WINDOW_ORIGIN   0x1039
 
#define DY   0x1005
 
#define TEXTURE_ADDR_MODE   0x1070
 
#define SSTART   0x1071
 
#define DSDX   0x1072
 
#define DSDY_DOM   0x1073
 
#define TSTART   0x1074
 
#define DTDX   0x1075
 
#define DTDY_DOM   0x1076
 
#define TEXTURE_BASE_ADDR   0x10B0
 
#define TEXTURE_MAP_FORMAT   0x10B1
 
#define TEXTURE_DATA_FORMAT   0x10B2
 
#define TEXTURE_READ_MODE   0x10CE
 
#define TEXTURE_COLOUR_MODE   0x10D0
 
#define SHADING_MODE   0x10FC
 
#define ALPHA_BLENDING_MODE   0x1102
 
#define DITHERING_MODE   0x1103
 
#define LOGICAL_OP_MODE   0x1105
 
#define STENCIL_MODE   0x1131
 
#define WRITE_MODE   0x1157
 
#define WRITE_MASK   0x1158
 
#define YUV_MODE   0x11E0
 
#define RENDER   0x1007
 
#define RENDER_BEGIN   0x00000000006020C0L
 
#define blend(a, b, trans)   (((a)*(trans) + (b)*(15-(trans))) / 15)
 

Functions

static int setup_dga (pgx32_driver_t *this)
 
static void cleanup_dga (pgx32_driver_t *this)
 
static void dispose_frame_internals (pgx32_frame_t *frame)
 
static uint32_t * convert_yuy2 (uint32_t *src, int width, int pitch, int height, uint32_t *dst)
 
static uint32_t * convert_yv12 (uint16_t *ysrc, uint8_t *usrc, uint8_t *vsrc, int width, int pitch, int height, uint32_t *dst)
 
static void pgx32_frame_proc_frame (vo_frame_t *frame_gen)
 
static void pgx32_frame_proc_slice (vo_frame_t *frame_gen, uint8_t **src)
 
static void pgx32_frame_field (vo_frame_t *frame_gen, int which_field)
 
static void pgx32_frame_dispose (vo_frame_t *frame_gen)
 
static uint32_t pgx32_get_capabilities (vo_driver_t *this_gen)
 
static vo_frame_tpgx32_alloc_frame (vo_driver_t *this_gen)
 
static void pgx32_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 pgx32_display_frame (vo_driver_t *this_gen, vo_frame_t *frame_gen)
 
static void pgx32_overlay_blend (vo_driver_t *this_gen, vo_frame_t *frame_gen, vo_overlay_t *overlay)
 
static int pgx32_get_property (vo_driver_t *this_gen, int property)
 
static int pgx32_set_property (vo_driver_t *this_gen, int property, int value)
 
static void pgx32_get_property_min_max (vo_driver_t *this_gen, int property, int *min, int *max)
 
static int pgx32_gui_data_exchange (vo_driver_t *this_gen, int data_type, void *data)
 
static int pgx32_redraw_needed (vo_driver_t *this_gen)
 
static void pgx32_dispose (vo_driver_t *this_gen)
 
static vo_driver_tpgx32_init_driver (video_driver_class_t *class_gen, const void *visual_gen)
 
static void * pgx32_init_class (xine_t *xine, const void *visual_gen)
 

Variables

static const int pitch_code_table [33][2]
 
static const vo_info_t vo_info_pgx32
 
const plugin_info_t xine_plugin_info[] EXPORTED
 

Macro Definition Documentation

◆ ALPHA_BLENDING_MODE

#define ALPHA_BLENDING_MODE   0x1102

◆ AREA_STIPPLE_MODE

#define AREA_STIPPLE_MODE   0x1034

◆ blend

#define blend (   a,
  b,
  trans 
)    (((a)*(trans) + (b)*(15-(trans))) / 15)

◆ DITHERING_MODE

#define DITHERING_MODE   0x1103

◆ DSDX

#define DSDX   0x1072

◆ DSDY_DOM

#define DSDY_DOM   0x1073

◆ DTDX

#define DTDX   0x1075

◆ DTDY_DOM

#define DTDY_DOM   0x1076

◆ DY

#define DY   0x1005

◆ FIFO_SPACE

#define FIFO_SPACE   0x0003

◆ GFXP_REGS_MMAPLEN

#define GFXP_REGS_MMAPLEN   0x00020000

◆ GFXP_REGSBASE

#define GFXP_REGSBASE   0x00800000

◆ GFXP_VRAM_MMAPLEN

#define GFXP_VRAM_MMAPLEN   0x00800000

◆ LOGICAL_OP_MODE

#define LOGICAL_OP_MODE   0x1105

◆ RASTERISER_MODE

#define RASTERISER_MODE   0x1014

◆ RECT_ORIGIN

#define RECT_ORIGIN   0x101A

◆ RECT_SIZE

#define RECT_SIZE   0x101B

◆ RENDER

#define RENDER   0x1007

◆ RENDER_BEGIN

#define RENDER_BEGIN   0x00000000006020C0L

◆ SCISSOR_MAX_XY

#define SCISSOR_MAX_XY   0x1032

◆ SCISSOR_MIN_XY

#define SCISSOR_MIN_XY   0x1031

◆ SCISSOR_MODE

#define SCISSOR_MODE   0x1030

◆ SHADING_MODE

#define SHADING_MODE   0x10FC

◆ SSTART

#define SSTART   0x1071

◆ STENCIL_MODE

#define STENCIL_MODE   0x1131

◆ TEXTURE_ADDR_MODE

#define TEXTURE_ADDR_MODE   0x1070

◆ TEXTURE_BASE_ADDR

#define TEXTURE_BASE_ADDR   0x10B0

◆ TEXTURE_COLOUR_MODE

#define TEXTURE_COLOUR_MODE   0x10D0

◆ TEXTURE_DATA_FORMAT

#define TEXTURE_DATA_FORMAT   0x10B2

◆ TEXTURE_MAP_FORMAT

#define TEXTURE_MAP_FORMAT   0x10B1

◆ TEXTURE_READ_MODE

#define TEXTURE_READ_MODE   0x10CE

◆ TSTART

#define TSTART   0x1074

◆ WINDOW_ORIGIN

#define WINDOW_ORIGIN   0x1039

◆ WRITE_MASK

#define WRITE_MASK   0x1158

◆ WRITE_MODE

#define WRITE_MODE   0x1157

◆ YUV_MODE

#define YUV_MODE   0x11E0

Function Documentation

◆ cleanup_dga()

static void cleanup_dga ( pgx32_driver_t this)
static

◆ convert_yuy2()

static uint32_t * convert_yuy2 ( uint32_t *  src,
int  width,
int  pitch,
int  height,
uint32_t *  dst 
)
static

References height, and width.

Referenced by pgx32_frame_proc_frame(), and pgx32_frame_proc_slice().

◆ convert_yv12()

static uint32_t * convert_yv12 ( uint16_t *  ysrc,
uint8_t *  usrc,
uint8_t *  vsrc,
int  width,
int  pitch,
int  height,
uint32_t *  dst 
)
static

References height, and width.

Referenced by pgx32_frame_proc_frame(), and pgx32_frame_proc_slice().

◆ dispose_frame_internals()

static void dispose_frame_internals ( pgx32_frame_t frame)
static

◆ pgx32_alloc_frame()

static vo_frame_t * pgx32_alloc_frame ( vo_driver_t this_gen)
static

◆ pgx32_display_frame()

static void pgx32_display_frame ( vo_driver_t this_gen,
vo_frame_t frame_gen 
)
static

◆ pgx32_dispose()

static void pgx32_dispose ( vo_driver_t this_gen)
static

◆ pgx32_frame_dispose()

static void pgx32_frame_dispose ( vo_frame_t frame_gen)
static

References dispose_frame_internals().

Referenced by pgx32_alloc_frame().

◆ pgx32_frame_field()

static void pgx32_frame_field ( vo_frame_t frame_gen,
int  which_field 
)
static

Referenced by pgx32_alloc_frame().

◆ pgx32_frame_proc_frame()

static void pgx32_frame_proc_frame ( vo_frame_t frame_gen)
static

◆ pgx32_frame_proc_slice()

static void pgx32_frame_proc_slice ( vo_frame_t frame_gen,
uint8_t **  src 
)
static

◆ pgx32_get_capabilities()

static uint32_t pgx32_get_capabilities ( vo_driver_t this_gen)
static

References VO_CAP_YUY2, and VO_CAP_YV12.

Referenced by pgx32_init_driver().

◆ pgx32_get_property()

static int pgx32_get_property ( vo_driver_t this_gen,
int  property 
)
static

◆ pgx32_get_property_min_max()

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

Referenced by pgx32_init_driver().

◆ pgx32_gui_data_exchange()

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

◆ pgx32_init_class()

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

◆ pgx32_init_driver()

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

◆ pgx32_overlay_blend()

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

◆ pgx32_redraw_needed()

static int pgx32_redraw_needed ( vo_driver_t this_gen)
static

◆ pgx32_set_property()

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

◆ pgx32_update_frame_format()

static void pgx32_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

◆ setup_dga()

static int setup_dga ( pgx32_driver_t this)
static

Variable Documentation

◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED
Initial value:
= {
}
static const vo_info_t vo_info_pgx32
Definition: video_out_pgx32.c:786
static void * pgx32_init_class(xine_t *xine, const void *visual_gen)
Definition: video_out_pgx32.c:852
#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

◆ pitch_code_table

const int pitch_code_table[33][2]
static

◆ vo_info_pgx32

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