diff options
author | Younes Manton <younes.m@gmail.com> | 2009-09-27 20:18:02 -0400 |
---|---|---|
committer | Younes Manton <younes.m@gmail.com> | 2009-09-27 20:18:02 -0400 |
commit | e44c85637a3298918e292e9ddba812856cf92924 (patch) | |
tree | 25e881754374bebd8123fa51d889c070489a3320 /src/xvmc/block.c | |
parent | f547472bfa0a797adacc2a7688b4c1ba65381a80 (diff) |
g3dvl: Implement XvMC using pipe_video_context.
Diffstat (limited to 'src/xvmc/block.c')
-rw-r--r-- | src/xvmc/block.c | 90 |
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; } |