1 /************************************************************************** 2 * 3 * Copyright 2009 Younes Manton. 4 * All Rights Reserved. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the 8 * "Software"), to deal in the Software without restriction, including 9 * without limitation the rights to use, copy, modify, merge, publish, 10 * distribute, sub license, and/or sell copies of the Software, and to 11 * permit persons to whom the Software is furnished to do so, subject to 12 * the following conditions: 13 * 14 * The above copyright notice and this permission notice (including the 15 * next paragraph) shall be included in all copies or substantial portions 16 * of the Software. 17 * 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21 * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR 22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25 * 26 **************************************************************************/ 27 28 #include <assert.h> 29 30 #include <X11/Xlib.h> 31 #include <X11/extensions/XvMClib.h> 32 33 #include "util/u_memory.h" 34 35 #include "xvmc_private.h" 36 37 PUBLIC 38 Status XvMCCreateBlocks(Display *dpy, XvMCContext *context, unsigned int num_blocks, XvMCBlockArray *blocks) 39 { 40 assert(dpy); 41 42 if (!context) 43 return XvMCBadContext; 44 if (num_blocks == 0) 45 return BadValue; 46 47 assert(blocks); 48 49 blocks->context_id = context->context_id; 50 blocks->num_blocks = num_blocks; 51 blocks->blocks = MALLOC(BLOCK_SIZE_BYTES * num_blocks); 52 blocks->privData = NULL; 53 54 return Success; 55 } 56 57 PUBLIC 58 Status XvMCDestroyBlocks(Display *dpy, XvMCBlockArray *blocks) 59 { 60 assert(dpy); 61 assert(blocks); 62 FREE(blocks->blocks); 63 64 return Success; 65 } 66 67 PUBLIC 68 Status XvMCCreateMacroBlocks(Display *dpy, XvMCContext *context, unsigned int num_blocks, XvMCMacroBlockArray *blocks) 69 { 70 assert(dpy); 71 72 if (!context) 73 return XvMCBadContext; 74 if (num_blocks == 0) 75 return BadValue; 76 77 assert(blocks); 78 79 blocks->context_id = context->context_id; 80 blocks->num_blocks = num_blocks; 81 blocks->macro_blocks = MALLOC(sizeof(XvMCMacroBlock) * num_blocks); 82 blocks->privData = NULL; 83 84 return Success; 85 } 86 87 PUBLIC 88 Status XvMCDestroyMacroBlocks(Display *dpy, XvMCMacroBlockArray *blocks) 89 { 90 assert(dpy); 91 assert(blocks); 92 FREE(blocks->macro_blocks); 93 94 return Success; 95 } 96