Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  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.  
  29. void pre()
  30. {
  31.     test_init();
  32.     test_profiles();
  33. }
  34.  
  35. #define DEADVALUE 0xdeaddead
  36.  
  37. void 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.  
  81. void post()
  82. {
  83.     test_terminate();
  84. }
  85.