1664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen/************************************************************************** 2664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * 3664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * Copyright 2010 Thomas Balling Sørensen & Orasanu Lucian. 4664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * All Rights Reserved. 5664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * 6664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * Permission is hereby granted, free of charge, to any person obtaining a 7664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * copy of this software and associated documentation files (the 8664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * "Software"), to deal in the Software without restriction, including 9664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * without limitation the rights to use, copy, modify, merge, publish, 10664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * distribute, sub license, and/or sell copies of the Software, and to 11664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * permit persons to whom the Software is furnished to do so, subject to 12664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * the following conditions: 13664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * 14664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * The above copyright notice and this permission notice (including the 15664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * next paragraph) shall be included in all copies or substantial portions 16664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * of the Software. 17664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * 18664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR 22664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen * 26664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen **************************************************************************/ 27664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 28664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen#include <va/va.h> 29664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen#include <va/va_backend.h> 305e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König 318bc7ccede1e126329c371e22b6d462edd21720d0Kai Wasserbäch#include "util/u_debug.h" 325e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König 33664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen#include "va_private.h" 34664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 355e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigVAStatus 365e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigvlVaQueryConfigProfiles(VADriverContextP ctx, VAProfile *profile_list, int *num_profiles) 37664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen{ 385e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König if (!ctx) 395e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_INVALID_CONTEXT; 40664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 415e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König int i = 0; 422b296ec77c2b95e7632b45100de5a0878ac2a294Thomas Balling Sørensen 435e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König profile_list[i++] = VAProfileMPEG2Simple; 445e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König *num_profiles = i; 452b296ec77c2b95e7632b45100de5a0878ac2a294Thomas Balling Sørensen 465e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_SUCCESS; 47664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen} 48664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 49664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 505e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigVAStatus 515e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigvlVaQueryConfigEntrypoints(VADriverContextP ctx, VAProfile profile, 525e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König VAEntrypoint *entrypoint_list, int *num_entrypoints) 53664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen{ 545e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König if (!ctx) 555e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_INVALID_CONTEXT; 562b296ec77c2b95e7632b45100de5a0878ac2a294Thomas Balling Sørensen 575e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König VAStatus vaStatus = VA_STATUS_SUCCESS; 585e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König 595e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König switch (profile) { 605e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König case VAProfileMPEG2Simple: 615e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König case VAProfileMPEG2Main: 625e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König VA_INFO("Using profile %08x\n",profile); 635e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König entrypoint_list[0] = VAEntrypointMoComp; 645e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König *num_entrypoints = 1; 655e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König break; 665e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König 675e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König case VAProfileH264Baseline: 685e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König case VAProfileH264Main: 695e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König case VAProfileH264High: 705e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; 715e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König *num_entrypoints = 0; 725e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König break; 735e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König 745e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König default: 755e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König VA_ERROR("Unsupported profile %08x\n",profile); 765e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; 775e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König *num_entrypoints = 0; 785e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König break; 795e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König } 805e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König 815e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return vaStatus; 82664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen} 83664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 845e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigVAStatus 855e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigvlVaGetConfigAttributes(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, 865e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König VAConfigAttrib *attrib_list, int num_attribs) 87664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen{ 885e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König if (!ctx) 895e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_INVALID_CONTEXT; 90664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 915e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_UNIMPLEMENTED; 92664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen} 93664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 945e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigVAStatus 955e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigvlVaCreateConfig(VADriverContextP ctx, VAProfile profile, VAEntrypoint entrypoint, 965e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König VAConfigAttrib *attrib_list, int num_attribs, VAConfigID *config_id) 97664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen{ 985e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König if (!ctx) 995e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_INVALID_CONTEXT; 100664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 1015e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_UNIMPLEMENTED; 102664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen} 103664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 1045e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigVAStatus 1055e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigvlVaDestroyConfig(VADriverContextP ctx, VAConfigID config_id) 106664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen{ 1075e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König if (!ctx) 1085e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_INVALID_CONTEXT; 109664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 1105e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_UNIMPLEMENTED; 111664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen} 112664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 1135e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigVAStatus 1145e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian KönigvlVaQueryConfigAttributes(VADriverContextP ctx, VAConfigID config_id, VAProfile *profile, 1155e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König VAEntrypoint *entrypoint, VAConfigAttrib *attrib_list, int *num_attribs) 116664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen{ 1175e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König if (!ctx) 1185e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_INVALID_CONTEXT; 119664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen 1205e5d7acc2f93ddad8212b00c845dbd6381ee4119Christian König return VA_STATUS_ERROR_UNIMPLEMENTED; 121664f10625a74a7e0ed1bfd44b2fb6f44bd8828a2Thomas Balling Sørensen} 122