diff options
author | Xiang, Haihao <haihao.xiang@intel.com> | 2014-02-14 12:36:16 +0800 |
---|---|---|
committer | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2014-03-03 16:32:44 +0100 |
commit | c7359cea175cdcdb2fb5fd51751ff5cbd1ff5336 (patch) | |
tree | b9d874c11b4a29189b81453acf6c6126fe6d37f7 | |
parent | d92718942612bbc4b05fb6387d1945fbf94fff14 (diff) |
vainfo: Query the supported profile list before listing profile/entrypoint
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
-rw-r--r-- | test/vainfo/vainfo.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/test/vainfo/vainfo.c b/test/vainfo/vainfo.c index 9fffb57..62132ed 100644 --- a/test/vainfo/vainfo.c +++ b/test/vainfo/vainfo.c @@ -88,7 +88,8 @@ int main(int argc, const char* argv[]) int major_version, minor_version; const char *driver; const char *name = strrchr(argv[0], '/'); - VAProfile profile; + VAProfile profile, *profile_list = NULL; + int num_profiles, max_num_profiles, i; VAEntrypoint entrypoint, entrypoints[10]; int num_entrypoint; int ret_val = 0; @@ -115,9 +116,22 @@ int main(int argc, const char* argv[]) printf("%s: Driver version: %s\n", name, driver ? driver : "<unknown>"); printf("%s: Supported profile and entrypoints\n", name); - for (profile = VAProfileNone; profile <= VAProfileVP8Version0_3; profile++) { + max_num_profiles = vaMaxNumProfiles(va_dpy); + profile_list = malloc(max_num_profiles * sizeof(VAProfile)); + + if (!profile_list) { + printf("Failed to allocate memory for profile list\n"); + ret_val = 5; + goto error; + } + + va_status = vaQueryConfigProfiles(va_dpy, profile_list, &num_profiles); + CHECK_VASTATUS(va_status, "vaQueryConfigProfiles", 6); + + for (i = 0; i < num_profiles; i++) { char *profile_str; + profile = profile_list[i]; va_status = vaQueryConfigEntrypoints(va_dpy, profile, entrypoints, &num_entrypoint); if (va_status == VA_STATUS_ERROR_UNSUPPORTED_PROFILE) @@ -131,6 +145,7 @@ int main(int argc, const char* argv[]) } error: + free(profile_list); vaTerminate(va_dpy); va_close_display(va_dpy); |