#define HAS_H264_MVC_ENCODING(ctx) ((ctx)->codec_info->has_h264_mvc_encoding && \
(ctx)->intel.has_bsd)
+#define HAS_HEVC_DECODING(ctx) ((ctx)->codec_info->has_hevc_decoding && \
+ (ctx)->intel.has_bsd)
+
static int get_sampling_from_fourcc(unsigned int fourcc);
/* Check whether we are rendering to X11 (VA/X11 or VA/GLX API) */
profile_list[i++] = VAProfileH264StereoHigh;
}
+ if (HAS_HEVC_DECODING(i965)) {
+ profile_list[i++] = VAProfileHEVCMain;
+ }
+
/* If the assert fails then I965_MAX_PROFILES needs to be bigger */
ASSERT_RET(i <= I965_MAX_PROFILES, VA_STATUS_ERROR_OPERATION_FAILED);
*num_profiles = i;
if (HAS_VP8_ENCODING(i965))
entrypoint_list[n++] = VAEntrypointEncSlice;
+ break;
+
+ case VAProfileHEVCMain:
+ if (HAS_HEVC_DECODING(i965))
+ entrypoint_list[n++] = VAEntrypointVLD;
+
+ break;
+
default:
break;
}
break;
+ case VAProfileHEVCMain:
+ if (HAS_HEVC_DECODING(i965) && (entrypoint == VAEntrypointVLD))
+ va_status = VA_STATUS_SUCCESS;
+ else
+ va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+
+ break;
+
default:
va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
break;
vaStatus = VA_STATUS_SUCCESS;
break;
+ case VAProfileHEVCMain:
+ vaStatus = VA_STATUS_SUCCESS;
+ break;
+
default:
ASSERT_RET(0, VA_STATUS_ERROR_UNSUPPORTED_PROFILE);
break;
unsigned int has_vp8_decoding:1;
unsigned int has_vp8_encoding:1;
unsigned int has_h264_mvc_encoding:1;
+ unsigned int has_hevc_decoding:1;
unsigned int num_filters;
struct i965_filter filters[VAProcFilterCount];