Module: libav Branch: master Commit: 5a5df90d9c05d86d9b0564b8b40b6d64a324df5e
Author: Mark Thompson <s...@jkqxz.net> Committer: Mark Thompson <s...@jkqxz.net> Date: Fri Sep 30 11:48:43 2016 +0100 vaapi_h265: Add main 10 encode support --- libavcodec/vaapi_encode_h265.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c index 006cc2a..8715d30 100644 --- a/libavcodec/vaapi_encode_h265.c +++ b/libavcodec/vaapi_encode_h265.c @@ -803,8 +803,10 @@ static int vaapi_encode_h265_init_sequence_params(AVCodecContext *avctx) vseq->seq_fields.bits.chroma_format_idc = 1; // 4:2:0. vseq->seq_fields.bits.separate_colour_plane_flag = 0; - vseq->seq_fields.bits.bit_depth_luma_minus8 = 0; // 8-bit luma. - vseq->seq_fields.bits.bit_depth_chroma_minus8 = 0; // 8-bit chroma. + vseq->seq_fields.bits.bit_depth_luma_minus8 = + avctx->profile == FF_PROFILE_HEVC_MAIN_10 ? 2 : 0; + vseq->seq_fields.bits.bit_depth_chroma_minus8 = + avctx->profile == FF_PROFILE_HEVC_MAIN_10 ? 2 : 0; // Other misc flags all zero. // These have to come from the capabilities of the encoder. We have @@ -1231,11 +1233,12 @@ static av_cold int vaapi_encode_h265_init(AVCodecContext *avctx) case FF_PROFILE_HEVC_MAIN: case FF_PROFILE_UNKNOWN: ctx->va_profile = VAProfileHEVCMain; + ctx->va_rt_format = VA_RT_FORMAT_YUV420; break; case FF_PROFILE_HEVC_MAIN_10: - av_log(avctx, AV_LOG_ERROR, "H.265 main 10-bit profile " - "is not supported.\n"); - return AVERROR_PATCHWELCOME; + ctx->va_profile = VAProfileHEVCMain10; + ctx->va_rt_format = VA_RT_FORMAT_YUV420_10BPP; + break; default: av_log(avctx, AV_LOG_ERROR, "Unknown H.265 profile %d.\n", avctx->profile); @@ -1243,9 +1246,6 @@ static av_cold int vaapi_encode_h265_init(AVCodecContext *avctx) } ctx->va_entrypoint = VAEntrypointEncSlice; - // This will be dependent on profile when 10-bit is supported. - ctx->va_rt_format = VA_RT_FORMAT_YUV420; - if (avctx->bit_rate > 0) ctx->va_rc_mode = VA_RC_CBR; else _______________________________________________ libav-commits mailing list libav-commits@libav.org https://lists.libav.org/mailman/listinfo/libav-commits