Fixed strncpy isssue, should copy "\0" too
[profile/ivi/libva.git] / test / vainfo.c
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 #include <X11/va_x11.h>
26
27 #include <stdarg.h>
28 #include <stdio.h>
29 #include <string.h>
30 #include <stdlib.h>
31
32 int main(int argc, const char* argv[])
33 {
34   Display *dpy;
35   VADisplay va_dpy;
36   VAStatus va_status;
37   int major_version, minor_version;
38   const char *driver;
39   const char *display = getenv("DISPLAY");
40   const char *name = rindex(argv[0], '/');
41
42   if (name)
43       name++;
44   else
45       name = argv[0];
46
47   dpy = XOpenDisplay(":0.0");
48   if (NULL == dpy)
49   {
50       fprintf(stderr, "%s: Error, can't open display: '%s'\n", name, display ? display : "");
51       return 1;
52   }
53   
54   va_dpy = vaGetDisplay(dpy);
55   if (NULL == va_dpy)
56   {
57       fprintf(stderr, "%s: vaGetDisplay() failed\n", name);
58       return 2;
59   }
60   
61   va_status = vaInitialize(va_dpy, &major_version, &minor_version);
62   if (VA_STATUS_SUCCESS != va_status )
63   {
64       fprintf(stderr, "%s: vaInitialize failed with error code %d (%s)\n", 
65               name, va_status, vaErrorStr(va_status));
66       return 3;
67   }
68   printf("%s: VA API version: %d.%d\n", name, major_version, minor_version);
69
70   driver = vaQueryVendorString(va_dpy);
71   printf("%s: Driver version: %s\n", name, driver ? driver : "<unknown>");
72   vaTerminate(va_dpy);
73   return 0;
74 }