1/* 2 * Copyright (c) 2007 Intel Corporation. All Rights Reserved. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the 6 * "Software"), to deal in the Software without restriction, including 7 * without limitation the rights to use, copy, modify, merge, publish, 8 * distribute, sub license, and/or sell copies of the Software, and to 9 * permit persons to whom the Software is furnished to do so, subject to 10 * the following conditions: 11 * 12 * The above copyright notice and this permission notice (including the 13 * next paragraph) shall be included in all copies or substantial portions 14 * of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 19 * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 20 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 */ 24 25#define TEST_DESCRIPTION "Get config attributes for all profiles / entrypoints" 26 27#include "test_common.c" 28 29void pre() 30{ 31 test_init(); 32 test_profiles(); 33} 34 35#define DEADVALUE 0xdeaddead 36 37void test() 38{ 39 VAConfigAttrib attributes[] = { 40 { type: VAConfigAttribRTFormat, value: DEADVALUE }, 41 { type: VAConfigAttribSpatialResidual, value: DEADVALUE }, 42 { type: VAConfigAttribSpatialClipping, value: DEADVALUE }, 43 { type: VAConfigAttribIntraResidual, value: DEADVALUE }, 44 { type: VAConfigAttribEncryption, value: DEADVALUE } 45 }; 46 int max_entrypoints; 47 int num_entrypoints; 48 int num_attribs = sizeof(attributes) / sizeof(VAConfigAttrib); 49 int i, j, k; 50 max_entrypoints = vaMaxNumEntrypoints(va_dpy); 51 ASSERT(max_entrypoints > 0); 52 VAEntrypoint *entrypoints = malloc(max_entrypoints * sizeof(VAEntrypoint)); 53 ASSERT(entrypoints); 54 55 VAConfigAttrib *attrib_list = (VAConfigAttrib *) malloc(sizeof(attributes)); 56 ASSERT(attrib_list); 57 58 for(i = 0; i < num_profiles; i++) 59 { 60 va_status = vaQueryConfigEntrypoints(va_dpy, profiles[i], entrypoints, &num_entrypoints); 61 ASSERT( VA_STATUS_SUCCESS == va_status ); 62 63 for(j = 0; j < num_entrypoints; j++) 64 { 65 memcpy(attrib_list, attributes, sizeof(attributes)); 66 status("vaGetConfigAttributes for %s, %s\n", profile2string(profiles[i]), entrypoint2string(entrypoints[j])); 67 va_status = vaGetConfigAttributes(va_dpy, profiles[i], entrypoints[j], attrib_list, num_attribs); 68 ASSERT( VA_STATUS_SUCCESS == va_status ); 69 for(k = 0; k < num_attribs; k++) 70 { 71 status(" %d -> %08x\n", attrib_list[k].type, attrib_list[k].value); 72 ASSERT(attrib_list[k].value != DEADVALUE); 73 } 74 } 75 } 76 77 free(attrib_list); 78 free(entrypoints); 79} 80 81void post() 82{ 83 test_terminate(); 84} 85