2 * Copyright (C) 2016 Intel Corporation. All Rights Reserved.
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:
12 * The above copyright notice and this permission notice (including the
13 * next paragraph) shall be included in all copies or substantial portions
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.
28 #include <gtest/gtest.h>
33 #define EXPECT_STATUS(status) \
34 EXPECT_EQ(VaapiStatus(VA_STATUS_SUCCESS), VaapiStatus(status))
36 #define ASSERT_STATUS(status) \
37 ASSERT_EQ(VaapiStatus(VA_STATUS_SUCCESS), VaapiStatus(status))
39 #define EXPECT_STATUS_EQ(expect, status) \
40 EXPECT_EQ(VaapiStatus(expect), VaapiStatus(status))
42 #define ASSERT_STATUS_EQ(expect, status) \
43 ASSERT_EQ(VaapiStatus(expect), VaapiStatus(status))
45 #define EXPECT_ID(id) \
46 EXPECT_NE(VA_INVALID_ID, (id))
48 #define ASSERT_ID(id) \
49 ASSERT_NE(VA_INVALID_ID, (id))
51 #define EXPECT_INVALID_ID(id) \
52 EXPECT_EQ(VA_INVALID_ID, (id))
54 #define ASSERT_INVALID_ID(id) \
55 ASSERT_EQ(VA_INVALID_ID, (id))
57 #define EXPECT_PTR(ptr) \
58 EXPECT_FALSE(NULL == (ptr))
60 #define ASSERT_PTR(ptr) \
61 ASSERT_FALSE(NULL == (ptr))
63 #define EXPECT_PTR_NULL(ptr) \
64 EXPECT_TRUE(NULL == (ptr))
66 #define ASSERT_PTR_NULL(ptr) \
67 ASSERT_TRUE(NULL == (ptr))
72 explicit VaapiStatus(VAStatus status)
76 bool operator ==(const VaapiStatus& other) const
78 return m_status == other.m_status;
81 friend std::ostream& operator <<(std::ostream& os, const VaapiStatus& t)
85 case VA_STATUS_SUCCESS:
86 status = "VA_STATUS_SUCCESS"; break;
87 case VA_STATUS_ERROR_OPERATION_FAILED:
88 status = "VA_STATUS_ERROR_OPERATION_FAILED"; break;
89 case VA_STATUS_ERROR_ALLOCATION_FAILED:
90 status = "VA_STATUS_ERROR_ALLOCATION_FAILED"; break;
91 case VA_STATUS_ERROR_INVALID_DISPLAY:
92 status = "VA_STATUS_ERROR_INVALID_DISPLAY"; break;
93 case VA_STATUS_ERROR_INVALID_CONFIG:
94 status = "VA_STATUS_ERROR_INVALID_CONFIG"; break;
95 case VA_STATUS_ERROR_INVALID_CONTEXT:
96 status = "VA_STATUS_ERROR_INVALID_CONTEXT"; break;
97 case VA_STATUS_ERROR_INVALID_SURFACE:
98 status = "VA_STATUS_ERROR_INVALID_SURFACE"; break;
99 case VA_STATUS_ERROR_INVALID_BUFFER:
100 status = "VA_STATUS_ERROR_INVALID_BUFFER"; break;
101 case VA_STATUS_ERROR_INVALID_IMAGE:
102 status = "VA_STATUS_ERROR_INVALID_IMAGE"; break;
103 case VA_STATUS_ERROR_INVALID_SUBPICTURE:
104 status = "VA_STATUS_ERROR_INVALID_SUBPICTURE"; break;
105 case VA_STATUS_ERROR_ATTR_NOT_SUPPORTED:
106 status = "VA_STATUS_ERROR_ATTR_NOT_SUPPORTED"; break;
107 case VA_STATUS_ERROR_MAX_NUM_EXCEEDED:
108 status = "VA_STATUS_ERROR_MAX_NUM_EXCEEDED"; break;
109 case VA_STATUS_ERROR_UNSUPPORTED_PROFILE:
110 status = "VA_STATUS_ERROR_UNSUPPORTED_PROFILE"; break;
111 case VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT:
112 status = "VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT"; break;
113 case VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT:
114 status = "VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT"; break;
115 case VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE:
116 status = "VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE"; break;
117 case VA_STATUS_ERROR_SURFACE_BUSY:
118 status = "VA_STATUS_ERROR_SURFACE_BUSY"; break;
119 case VA_STATUS_ERROR_FLAG_NOT_SUPPORTED:
120 status = "VA_STATUS_ERROR_FLAG_NOT_SUPPORTED"; break;
121 case VA_STATUS_ERROR_INVALID_PARAMETER:
122 status = "VA_STATUS_ERROR_INVALID_PARAMETER"; break;
123 case VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED:
124 status = "VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED"; break;
125 case VA_STATUS_ERROR_UNIMPLEMENTED:
126 status = "VA_STATUS_ERROR_UNIMPLEMENTED"; break;
127 case VA_STATUS_ERROR_SURFACE_IN_DISPLAYING:
128 status = "VA_STATUS_ERROR_SURFACE_IN_DISPLAYING"; break;
129 case VA_STATUS_ERROR_INVALID_IMAGE_FORMAT:
130 status = "VA_STATUS_ERROR_INVALID_IMAGE_FORMAT"; break;
131 case VA_STATUS_ERROR_DECODING_ERROR:
132 status = "VA_STATUS_ERROR_DECODING_ERROR"; break;
133 case VA_STATUS_ERROR_ENCODING_ERROR:
134 status = "VA_STATUS_ERROR_ENCODING_ERROR"; break;
135 case VA_STATUS_ERROR_INVALID_VALUE:
136 status = "VA_STATUS_ERROR_INVALID_VALUE"; break;
137 case VA_STATUS_ERROR_UNSUPPORTED_FILTER:
138 status = "VA_STATUS_ERROR_UNSUPPORTED_FILTER"; break;
139 case VA_STATUS_ERROR_INVALID_FILTER_CHAIN:
140 status = "VA_STATUS_ERROR_INVALID_FILTER_CHAIN"; break;
141 case VA_STATUS_ERROR_HW_BUSY:
142 status = "VA_STATUS_ERROR_HW_BUSY"; break;
143 case VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE:
144 status = "VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE"; break;
145 case VA_STATUS_ERROR_UNKNOWN:
146 status = "VA_STATUS_ERROR_UNKNOWN"; break;
148 status = "Unknown VAStatus";