summaryrefslogtreecommitdiff
path: root/src/xvmc/block.c
diff options
context:
space:
mode:
authorYounes Manton <younes.m@gmail.com>2009-09-27 20:18:02 -0400
committerYounes Manton <younes.m@gmail.com>2009-09-27 20:18:02 -0400
commite44c85637a3298918e292e9ddba812856cf92924 (patch)
tree25e881754374bebd8123fa51d889c070489a3320 /src/xvmc/block.c
parentf547472bfa0a797adacc2a7688b4c1ba65381a80 (diff)
g3dvl: Implement XvMC using pipe_video_context.
Diffstat (limited to 'src/xvmc/block.c')
-rw-r--r--src/xvmc/block.c90
1 files changed, 36 insertions, 54 deletions
diff --git a/src/xvmc/block.c b/src/xvmc/block.c
index b38a89be09..78fddfb79e 100644
--- a/src/xvmc/block.c
+++ b/src/xvmc/block.c
@@ -1,79 +1,61 @@
#include <assert.h>
#include <X11/Xlib.h>
-#include <X11/extensions/XvMC.h>
+#include <X11/extensions/XvMClib.h>
#include <util/u_memory.h>
-#include <vl_display.h>
-#include <vl_screen.h>
-#include <vl_context.h>
+#include "xvmc_private.h"
-#define BLOCK_SIZE (64 * 2)
-
-Status XvMCCreateBlocks(Display *display, XvMCContext *context, unsigned int num_blocks, XvMCBlockArray *blocks)
+Status XvMCCreateBlocks(Display *dpy, XvMCContext *context, unsigned int num_blocks, XvMCBlockArray *blocks)
{
- struct vlContext *vl_ctx;
-
- assert(display);
-
- if (!context)
- return XvMCBadContext;
- if (num_blocks == 0)
- return BadValue;
+ assert(dpy);
- assert(blocks);
+ if (!context)
+ return XvMCBadContext;
+ if (num_blocks == 0)
+ return BadValue;
- vl_ctx = context->privData;
- assert(display == vlGetNativeDisplay(vlGetDisplay(vlContextGetScreen(vl_ctx))));
+ assert(blocks);
- blocks->context_id = context->context_id;
- blocks->num_blocks = num_blocks;
- blocks->blocks = MALLOC(BLOCK_SIZE * num_blocks);
- /* Since we don't have a VL type for blocks, set privData to the display so we can catch mismatches */
- blocks->privData = display;
+ blocks->context_id = context->context_id;
+ blocks->num_blocks = num_blocks;
+ blocks->blocks = MALLOC(BLOCK_SIZE_BYTES * num_blocks);
+ blocks->privData = NULL;
- return Success;
+ return Success;
}
-Status XvMCDestroyBlocks(Display *display, XvMCBlockArray *blocks)
+Status XvMCDestroyBlocks(Display *dpy, XvMCBlockArray *blocks)
{
- assert(display);
- assert(blocks);
- assert(display == blocks->privData);
- FREE(blocks->blocks);
+ assert(dpy);
+ assert(blocks);
+ FREE(blocks->blocks);
- return Success;
+ return Success;
}
-Status XvMCCreateMacroBlocks(Display *display, XvMCContext *context, unsigned int num_blocks, XvMCMacroBlockArray *blocks)
+Status XvMCCreateMacroBlocks(Display *dpy, XvMCContext *context, unsigned int num_blocks, XvMCMacroBlockArray *blocks)
{
- struct vlContext *vl_ctx;
-
- assert(display);
-
- if (!context)
- return XvMCBadContext;
- if (num_blocks == 0)
- return BadValue;
+ assert(dpy);
- assert(blocks);
+ if (!context)
+ return XvMCBadContext;
+ if (num_blocks == 0)
+ return BadValue;
- vl_ctx = context->privData;
- assert(display == vlGetNativeDisplay(vlGetDisplay(vlContextGetScreen(vl_ctx))));
+ assert(blocks);
- blocks->context_id = context->context_id;
- blocks->num_blocks = num_blocks;
- blocks->macro_blocks = MALLOC(sizeof(XvMCMacroBlock) * num_blocks);
- /* Since we don't have a VL type for blocks, set privData to the display so we can catch mismatches */
- blocks->privData = display;
+ blocks->context_id = context->context_id;
+ blocks->num_blocks = num_blocks;
+ blocks->macro_blocks = MALLOC(sizeof(XvMCMacroBlock) * num_blocks);
+ blocks->privData = NULL;
- return Success;
+ return Success;
}
-Status XvMCDestroyMacroBlocks(Display *display, XvMCMacroBlockArray *blocks)
+Status XvMCDestroyMacroBlocks(Display *dpy, XvMCMacroBlockArray *blocks)
{
- assert(display);
- assert(blocks);
- assert(display == blocks->privData);
- FREE(blocks->macro_blocks);
+ assert(dpy);
+ assert(blocks);
+ FREE(blocks->macro_blocks);
- return Success;
+ return Success;
}