summaryrefslogtreecommitdiff
path: root/src/xvmc/radeon_xvmc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/xvmc/radeon_xvmc.h')
-rw-r--r--src/xvmc/radeon_xvmc.h48
1 files changed, 33 insertions, 15 deletions
diff --git a/src/xvmc/radeon_xvmc.h b/src/xvmc/radeon_xvmc.h
index 7770ae7..be98ac2 100644
--- a/src/xvmc/radeon_xvmc.h
+++ b/src/xvmc/radeon_xvmc.h
@@ -50,39 +50,54 @@
#include <X11/extensions/XvMClib.h>
#include <drm_sarea.h>
-/* hw xvmc support type */
-#define XVMC_RADEON_MPEG2_MC 0x01
+#include "r500_hwmc.h"
-typedef struct _radeon_xvmc_driver_rec
+typedef struct radeon_xvmc_context
{
- int type; /* hw xvmc type */
- int screen; /* current screen num*/
+ XvMCContext *context;
+ drm_context_t hw_context; /* context id to kernel drm */
+ struct _radeon_xvmc_context *next;
+} radeon_xvmc_context_t, *radeon_xvmc_context_ptr;
- int fd; /* drm file handler */
- drm_handle_t hsarea; /* DRI open connect */
- char busID[32];
+typedef struct radeon_xvmc_drm_map
+{
+ drm_handle_t handle;
+ unsigned long offset;
+ unsigned long size;
+ unsigned long bus_addr;
+ drmAddress map;
+} radeon_xvmc_drm_map_t, *radeon_xvmc_drm_map_ptr;
+
+typedef struct radeon_xvmc_driver
+{
+ int type; /* hw xvmc type */
+ int screen; /* current screen num*/
+
+ int fd; /* drm file handler */
+ drm_handle_t hsarea; /* DRI open connect */
+ char busID[32];
unsigned int sarea_size;
- drmAddress sarea_address;
+ drmAddress sarea_address;
struct
{
- unsigned int start_offset;
- unsigned int size;
- unsigned int space;
+ unsigned int start_offset;
+ unsigned int size;
+ unsigned int space;
unsigned char *ptr;
} batch;
struct
{
- void *ptr;
+ void *ptr;
unsigned int size;
unsigned int offset;
unsigned int active_buf;
unsigned int irq_emitted;
} alloc;
-// radeon_xvmc_drm_map_t batchbuffer;
+ radeon_xvmc_drm_map_t batchbuffer;
unsigned int last_render;
sigset_t sa_mask;
@@ -127,6 +142,9 @@ typedef struct _radeon_xvmc_driver_rec
Status (*get_surface_status)(Display *display, XvMCSurface *surface,
int *stat);
-};
+}radeon_xvmc_driver_t, *radeon_xvmc_driver_ptr;
+
+extern struct radeon_xvmc_driver *xvmc_driver_ptr;
+extern struct radeon_xvmc_driver r500_xvmc_driver;
#endif \ No newline at end of file