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