xine-lib 1.2.13-20230125hg15249
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

Referenced by pgx32_display_frame().

◆ AREA_STIPPLE_MODE

#define AREA_STIPPLE_MODE   0x1034

Referenced by pgx32_display_frame().

◆ blend

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

Referenced by pgx32_overlay_blend().

◆ DITHERING_MODE

#define DITHERING_MODE   0x1103

Referenced by pgx32_display_frame().

◆ DSDX

#define DSDX   0x1072

Referenced by pgx32_display_frame().

◆ DSDY_DOM

#define DSDY_DOM   0x1073

Referenced by pgx32_display_frame().

◆ DTDX

#define DTDX   0x1075

Referenced by pgx32_display_frame().

◆ DTDY_DOM

#define DTDY_DOM   0x1076

Referenced by pgx32_display_frame().

◆ DY

#define DY   0x1005

Referenced by pgx32_display_frame().

◆ FIFO_SPACE

#define FIFO_SPACE   0x0003

Referenced by pgx32_display_frame().

◆ GFXP_REGS_MMAPLEN

#define GFXP_REGS_MMAPLEN   0x00020000

Referenced by pgx32_dispose(), and pgx32_init_driver().

◆ GFXP_REGSBASE

#define GFXP_REGSBASE   0x00800000

◆ GFXP_VRAM_MMAPLEN

#define GFXP_VRAM_MMAPLEN   0x00800000

◆ LOGICAL_OP_MODE

#define LOGICAL_OP_MODE   0x1105

Referenced by pgx32_display_frame().

◆ RASTERISER_MODE

#define RASTERISER_MODE   0x1014

Referenced by pgx32_display_frame().

◆ RECT_ORIGIN

#define RECT_ORIGIN   0x101A

Referenced by pgx32_display_frame().

◆ RECT_SIZE

#define RECT_SIZE   0x101B

Referenced by pgx32_display_frame().

◆ RENDER

#define RENDER   0x1007

Referenced by pgx32_display_frame().

◆ RENDER_BEGIN

#define RENDER_BEGIN   0x00000000006020C0L

Referenced by pgx32_display_frame().

◆ SCISSOR_MAX_XY

#define SCISSOR_MAX_XY   0x1032

◆ SCISSOR_MIN_XY

#define SCISSOR_MIN_XY   0x1031

◆ SCISSOR_MODE

#define SCISSOR_MODE   0x1030

Referenced by pgx32_display_frame().

◆ SHADING_MODE

#define SHADING_MODE   0x10FC

Referenced by pgx32_display_frame().

◆ SSTART

#define SSTART   0x1071

Referenced by pgx32_display_frame().

◆ STENCIL_MODE

#define STENCIL_MODE   0x1131

Referenced by pgx32_display_frame().

◆ TEXTURE_ADDR_MODE

#define TEXTURE_ADDR_MODE   0x1070

Referenced by pgx32_display_frame().

◆ TEXTURE_BASE_ADDR

#define TEXTURE_BASE_ADDR   0x10B0

Referenced by pgx32_display_frame().

◆ TEXTURE_COLOUR_MODE

#define TEXTURE_COLOUR_MODE   0x10D0

Referenced by pgx32_display_frame().

◆ TEXTURE_DATA_FORMAT

#define TEXTURE_DATA_FORMAT   0x10B2

Referenced by pgx32_display_frame().

◆ TEXTURE_MAP_FORMAT

#define TEXTURE_MAP_FORMAT   0x10B1

Referenced by pgx32_display_frame().

◆ TEXTURE_READ_MODE

#define TEXTURE_READ_MODE   0x10CE

Referenced by pgx32_display_frame().

◆ TSTART

#define TSTART   0x1074

Referenced by pgx32_display_frame().

◆ WINDOW_ORIGIN

#define WINDOW_ORIGIN   0x1039

Referenced by pgx32_display_frame().

◆ WRITE_MASK

#define WRITE_MASK   0x1158

Referenced by pgx32_display_frame().

◆ WRITE_MODE

#define WRITE_MODE   0x1157

Referenced by pgx32_display_frame().

◆ YUV_MODE

#define YUV_MODE   0x11E0

Referenced by pgx32_display_frame().

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, v, 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