vaapi_h265: Fix build failure with old libva without 10-bit surfaces
authorMark Thompson <sw@jkqxz.net>
Sat, 10 Dec 2016 15:57:01 +0000 (15:57 +0000)
committerMark Thompson <sw@jkqxz.net>
Wed, 4 Jan 2017 21:49:41 +0000 (21:49 +0000)
10-bit surface support was added in libva 1.6.2, earlier versions
support H.265 encoding in 8-bit only.

libavcodec/vaapi_encode_h265.c

index ade7d4a..e9133b4 100644 (file)
@@ -1236,9 +1236,15 @@ static av_cold int vaapi_encode_h265_init(AVCodecContext *avctx)
         ctx->va_rt_format = VA_RT_FORMAT_YUV420;
         break;
     case FF_PROFILE_HEVC_MAIN_10:
+#ifdef VA_RT_FORMAT_YUV420_10BPP
         ctx->va_profile = VAProfileHEVCMain10;
         ctx->va_rt_format = VA_RT_FORMAT_YUV420_10BPP;
         break;
+#else
+        av_log(avctx, AV_LOG_ERROR, "10-bit encoding is not "
+               "supported with this VAAPI version.\n");
+        return AVERROR(ENOSYS);
+#endif
     default:
         av_log(avctx, AV_LOG_ERROR, "Unknown H.265 profile %d.\n",
                avctx->profile);