• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

hardware/intel/intel-driver


Commit MetaInfo

Revisión5848273335f1b226deffb6e78c5368a7d403d526 (tree)
Tiempo2014-12-14 01:42:17
AutorXiang, Haihao <haihao.xiang@inte...>
CommiterXiang, Haihao

Log Message

Advertise the support for HEVC on SKL

v2: Only support HEVC Main Profile

v3: Check profile against VAProfileHEVCMain in i965_BeginPicture()

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit f623373aab09ff1477532dd25bd0ffe5bdd5e7e2)

Cambiar Resumen

Diferencia incremental

--- a/src/i965_device_info.c
+++ b/src/i965_device_info.c
@@ -342,6 +342,7 @@ static struct hw_codec_info skl_hw_codec_info = {
342342 .has_di_motion_compensated = 1,
343343 .has_vp8_decoding = 1,
344344 .has_h264_mvc_encoding = 1,
345+ .has_hevc_decoding = 1,
345346
346347 .num_filters = 5,
347348 .filters = {
--- a/src/i965_drv_video.c
+++ b/src/i965_drv_video.c
@@ -99,6 +99,9 @@
9999 #define HAS_H264_MVC_ENCODING(ctx) ((ctx)->codec_info->has_h264_mvc_encoding && \
100100 (ctx)->intel.has_bsd)
101101
102+#define HAS_HEVC_DECODING(ctx) ((ctx)->codec_info->has_hevc_decoding && \
103+ (ctx)->intel.has_bsd)
104+
102105 static int get_sampling_from_fourcc(unsigned int fourcc);
103106
104107 /* Check whether we are rendering to X11 (VA/X11 or VA/GLX API) */
@@ -460,6 +463,10 @@ i965_QueryConfigProfiles(VADriverContextP ctx,
460463 profile_list[i++] = VAProfileH264StereoHigh;
461464 }
462465
466+ if (HAS_HEVC_DECODING(i965)) {
467+ profile_list[i++] = VAProfileHEVCMain;
468+ }
469+
463470 /* If the assert fails then I965_MAX_PROFILES needs to be bigger */
464471 ASSERT_RET(i <= I965_MAX_PROFILES, VA_STATUS_ERROR_OPERATION_FAILED);
465472 *num_profiles = i;
@@ -533,6 +540,14 @@ i965_QueryConfigEntrypoints(VADriverContextP ctx,
533540 if (HAS_VP8_ENCODING(i965))
534541 entrypoint_list[n++] = VAEntrypointEncSlice;
535542
543+ break;
544+
545+ case VAProfileHEVCMain:
546+ if (HAS_HEVC_DECODING(i965))
547+ entrypoint_list[n++] = VAEntrypointVLD;
548+
549+ break;
550+
536551 default:
537552 break;
538553 }
@@ -621,6 +636,14 @@ i965_validate_config(VADriverContextP ctx, VAProfile profile,
621636
622637 break;
623638
639+ case VAProfileHEVCMain:
640+ if (HAS_HEVC_DECODING(i965) && (entrypoint == VAEntrypointVLD))
641+ va_status = VA_STATUS_SUCCESS;
642+ else
643+ va_status = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
644+
645+ break;
646+
624647 default:
625648 va_status = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
626649 break;
@@ -2294,6 +2317,10 @@ i965_BeginPicture(VADriverContextP ctx,
22942317 vaStatus = VA_STATUS_SUCCESS;
22952318 break;
22962319
2320+ case VAProfileHEVCMain:
2321+ vaStatus = VA_STATUS_SUCCESS;
2322+ break;
2323+
22972324 default:
22982325 ASSERT_RET(0, VA_STATUS_ERROR_UNSUPPORTED_PROFILE);
22992326 break;
--- a/src/i965_drv_video.h
+++ b/src/i965_drv_video.h
@@ -368,6 +368,7 @@ struct hw_codec_info
368368 unsigned int has_vp8_decoding:1;
369369 unsigned int has_vp8_encoding:1;
370370 unsigned int has_h264_mvc_encoding:1;
371+ unsigned int has_hevc_decoding:1;
371372
372373 unsigned int num_filters;
373374 struct i965_filter filters[VAProcFilterCount];