Merge branch 'mesa_7_6_branch'
[mesa.git] / src / gallium / state_trackers / xorg / xvmc / block.c
1 #include <assert.h>
2 #include <X11/Xlib.h>
3 #include <X11/extensions/XvMClib.h>
4 #include <util/u_memory.h>
5 #include "xvmc_private.h"
6
7 Status XvMCCreateBlocks(Display *dpy, XvMCContext *context, unsigned int num_blocks, XvMCBlockArray *blocks)
8 {
9 assert(dpy);
10
11 if (!context)
12 return XvMCBadContext;
13 if (num_blocks == 0)
14 return BadValue;
15
16 assert(blocks);
17
18 blocks->context_id = context->context_id;
19 blocks->num_blocks = num_blocks;
20 blocks->blocks = MALLOC(BLOCK_SIZE_BYTES * num_blocks);
21 blocks->privData = NULL;
22
23 return Success;
24 }
25
26 Status XvMCDestroyBlocks(Display *dpy, XvMCBlockArray *blocks)
27 {
28 assert(dpy);
29 assert(blocks);
30 FREE(blocks->blocks);
31
32 return Success;
33 }
34
35 Status XvMCCreateMacroBlocks(Display *dpy, XvMCContext *context, unsigned int num_blocks, XvMCMacroBlockArray *blocks)
36 {
37 assert(dpy);
38
39 if (!context)
40 return XvMCBadContext;
41 if (num_blocks == 0)
42 return BadValue;
43
44 assert(blocks);
45
46 blocks->context_id = context->context_id;
47 blocks->num_blocks = num_blocks;
48 blocks->macro_blocks = MALLOC(sizeof(XvMCMacroBlock) * num_blocks);
49 blocks->privData = NULL;
50
51 return Success;
52 }
53
54 Status XvMCDestroyMacroBlocks(Display *dpy, XvMCMacroBlockArray *blocks)
55 {
56 assert(dpy);
57 assert(blocks);
58 FREE(blocks->macro_blocks);
59
60 return Success;
61 }