1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
#ifndef __RADEON_VIDEO_H__
#define __RADEON_VIDEO_H__
#include "xf86i2c.h"
#include "i2c_def.h"
#include "xf86Crtc.h"
#include "bicubic_table.h"
#include <xf86xvmc.h>
#define ClipValue(v,min,max) ((v) < (min) ? (min) : (v) > (max) ? (max) : (v))
/* Xvideo port struct */
typedef struct {
uint32_t transform_index;
uint32_t gamma; /* gamma value x 1000 */
int brightness;
int saturation;
int hue;
int contrast;
unsigned char currentBuffer;
RegionRec clip;
Time offTime;
Time freeTime;
xf86CrtcPtr desired_crtc;
int size;
void *video_memory;
int video_offset;
int planeu_offset;
int planev_offset;
/* bicubic filtering */
Bool bicubic_enabled;
uint32_t bicubic_src_offset;
int bicubic_state;
#define BICUBIC_OFF 0
#define BICUBIC_ON 1
#define BICUBIC_AUTO 2
/* textured video */
Bool textured;
DrawablePtr pDraw;
PixmapPtr pPixmap;
uint32_t src_offset;
uint32_t src_pitch;
uint8_t *src_addr;
int id;
int src_w, src_h, dst_w, dst_h;
int w, h;
int drw_x, drw_y;
int src_x, src_y;
int vsync;
Bool is_planar;
int vtx_count;
int hw_align;
struct radeon_bo *src_bo[2];
} RADEONPortPrivRec, *RADEONPortPrivPtr;
/* Reference color space transform data */
typedef struct tagREF_TRANSFORM
{
float RefLuma;
float RefRCb;
float RefRCr;
float RefGCb;
float RefGCr;
float RefBCb;
float RefBCr;
} REF_TRANSFORM;
#define RTFSaturation(a) (1.0 + ((a)*1.0)/1000.0)
#define RTFBrightness(a) (((a)*1.0)/2000.0)
#define RTFIntensity(a) (((a)*1.0)/2000.0)
#define RTFContrast(a) (1.0 + ((a)*1.0)/1000.0)
#define RTFHue(a) (((a)*3.1416)/1000.0)
void RADEONFreeVideoMemory(ScrnInfoPtr pScrn, RADEONPortPrivPtr pPriv);
void RADEONStopVideo(ScrnInfoPtr, pointer, Bool);
void RADEONQueryBestSize(ScrnInfoPtr, Bool, short, short, short, short,
unsigned int *, unsigned int *, pointer);
int RADEONQueryImageAttributes(ScrnInfoPtr, int, unsigned short *,
unsigned short *, int *, int *);
XF86VideoAdaptorPtr
RADEONSetupImageTexturedVideo(ScreenPtr pScreen);
XF86MCAdaptorPtr
RADEONCreateAdaptorXvMC(ScreenPtr pScreen, char *xv_adaptor_name);
void
RADEONCopyData(ScrnInfoPtr pScrn,
unsigned char *src, unsigned char *dst,
unsigned int srcPitch, unsigned int dstPitch,
unsigned int h, unsigned int w, unsigned int bpp);
void
RADEONCopyMungedData(ScrnInfoPtr pScrn,
unsigned char *src1, unsigned char *src2,
unsigned char *src3, unsigned char *dst1,
unsigned int srcPitch, unsigned int srcPitch2,
unsigned int dstPitch, unsigned int h, unsigned int w);
#endif
|