[FFmpeg-devel] [PATCH v5 1/2] configure, lavu, lavc, lavfi: Remove libva 1.x support
Xiang, Haihao
haihao.xiang at intel.com
Wed Jun 12 05:55:35 EEST 2024
On Wo, 2024-06-05 at 21:13 +0100, Mark Thompson wrote:
> libva 2.0 was released in 2017 and the 2.x versions are included in all
> supported distributions nowadays. Various features no longer need any
> configure check after this change, including all codecs except AV1.
> Note that the libva version is the API version plus one, so this is
> removing support for VAAPI 0.x and requiring VAAPI 1.x.
> ---
> Now squashed.
>
>
> configure | 25 +++--------
> libavcodec/vaapi_decode.c | 39 ++---------------
> libavcodec/vaapi_encode.c | 78 ++++++----------------------------
> libavcodec/vaapi_encode.h | 9 ----
> libavcodec/vaapi_encode_h264.c | 18 --------
> libavcodec/vaapi_encode_h265.c | 2 -
> libavfilter/vaapi_vpp.c | 22 ++++------
> libavutil/hwcontext_vaapi.c | 22 ----------
> 8 files changed, 29 insertions(+), 186 deletions(-)
>
> diff --git a/configure b/configure
> index 6c5b8aab9a..06e6fa22f2 100755
> --- a/configure
> +++ b/configure
> @@ -2630,7 +2630,6 @@ CONFIG_EXTRA="
> texturedsp
> texturedspenc
> tpeldsp
> - vaapi_1
There still are vaapi_1 in configure
configure:pad_vaapi_filter_deps="vaapi_1"
configure:drawbox_vaapi_filter_deps="vaapi_1"
Thanks
Haihao
> vaapi_encode
> vc1dsp
> videodsp
> @@ -3200,7 +3199,7 @@ hevc_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_HEVC"
> hevc_dxva2_hwaccel_select="hevc_decoder"
> hevc_nvdec_hwaccel_deps="nvdec"
> hevc_nvdec_hwaccel_select="hevc_decoder"
> -hevc_vaapi_hwaccel_deps="vaapi VAPictureParameterBufferHEVC"
> +hevc_vaapi_hwaccel_deps="vaapi"
> hevc_vaapi_hwaccel_select="hevc_decoder"
> hevc_vdpau_hwaccel_deps="vdpau VdpPictureInfoHEVC"
> hevc_vdpau_hwaccel_select="hevc_decoder"
> @@ -3272,7 +3271,7 @@ vp9_dxva2_hwaccel_deps="dxva2 DXVA_PicParams_VP9"
> vp9_dxva2_hwaccel_select="vp9_decoder"
> vp9_nvdec_hwaccel_deps="nvdec"
> vp9_nvdec_hwaccel_select="vp9_decoder"
> -vp9_vaapi_hwaccel_deps="vaapi VADecPictureParameterBufferVP9_bit_depth"
> +vp9_vaapi_hwaccel_deps="vaapi"
> vp9_vaapi_hwaccel_select="vp9_decoder"
> vp9_vdpau_hwaccel_deps="vdpau VdpPictureInfoVP9"
> vp9_vdpau_hwaccel_select="vp9_decoder"
> @@ -3365,7 +3364,6 @@ hevc_qsv_decoder_select="hevc_mp4toannexb_bsf qsvdec"
> hevc_qsv_encoder_select="hevcparse qsvenc"
> hevc_rkmpp_decoder_deps="rkmpp"
> hevc_rkmpp_decoder_select="hevc_mp4toannexb_bsf"
> -hevc_vaapi_encoder_deps="VAEncPictureParameterBufferHEVC"
> hevc_vaapi_encoder_select="atsc_a53 cbs_h265 vaapi_encode"
> hevc_v4l2m2m_decoder_deps="v4l2_m2m hevc_v4l2_m2m"
> hevc_v4l2m2m_decoder_select="hevc_mp4toannexb_bsf"
> @@ -3374,7 +3372,6 @@ mjpeg_cuvid_decoder_deps="cuvid"
> mjpeg_qsv_decoder_select="qsvdec"
> mjpeg_qsv_encoder_deps="libmfx"
> mjpeg_qsv_encoder_select="qsvenc"
> -mjpeg_vaapi_encoder_deps="VAEncPictureParameterBufferJPEG"
> mjpeg_vaapi_encoder_select="cbs_jpeg jpegtables vaapi_encode"
> mp3_mf_encoder_deps="mediafoundation"
> mpeg1_cuvid_decoder_deps="cuvid"
> @@ -3403,7 +3400,6 @@ vp8_mediacodec_decoder_deps="mediacodec"
> vp8_mediacodec_encoder_deps="mediacodec"
> vp8_qsv_decoder_select="qsvdec"
> vp8_rkmpp_decoder_deps="rkmpp"
> -vp8_vaapi_encoder_deps="VAEncPictureParameterBufferVP8"
> vp8_vaapi_encoder_select="vaapi_encode"
> vp8_v4l2m2m_decoder_deps="v4l2_m2m vp8_v4l2_m2m"
> vp8_v4l2m2m_encoder_deps="v4l2_m2m vp8_v4l2_m2m"
> @@ -3412,7 +3408,6 @@ vp9_mediacodec_decoder_deps="mediacodec"
> vp9_mediacodec_encoder_deps="mediacodec"
> vp9_qsv_decoder_select="qsvdec"
> vp9_rkmpp_decoder_deps="rkmpp"
> -vp9_vaapi_encoder_deps="VAEncPictureParameterBufferVP9"
> vp9_vaapi_encoder_select="vaapi_encode"
> vp9_qsv_encoder_deps="libmfx MFX_CODEC_VP9"
> vp9_qsv_encoder_select="qsvenc"
> @@ -3966,9 +3961,9 @@ xfade_vulkan_filter_deps="vulkan spirv_compiler"
> yadif_cuda_filter_deps="ffnvcodec"
> yadif_cuda_filter_deps_any="cuda_nvcc cuda_llvm"
> yadif_videotoolbox_filter_deps="metal corevideo videotoolbox"
> -hstack_vaapi_filter_deps="vaapi_1"
> -vstack_vaapi_filter_deps="vaapi_1"
> -xstack_vaapi_filter_deps="vaapi_1"
> +hstack_vaapi_filter_deps="vaapi"
> +vstack_vaapi_filter_deps="vaapi"
> +xstack_vaapi_filter_deps="vaapi"
> hstack_qsv_filter_deps="libmfx"
> hstack_qsv_filter_select="qsvvpp"
> vstack_qsv_filter_deps="libmfx"
> @@ -7271,7 +7266,7 @@ enabled libdrm &&
> check_pkg_config libdrm_getfb2 libdrm "xf86drmMode.h" drmModeGetFB2
>
> enabled vaapi &&
> - check_pkg_config vaapi "libva >= 0.35.0" "va/va.h" vaInitialize
> + check_pkg_config vaapi "libva >= 1.0.0" "va/va.h" vaInitialize
>
> if enabled vaapi; then
> case $target_os in
> @@ -7287,18 +7282,10 @@ if enabled vaapi; then
> check_pkg_config vaapi_x11 "libva-x11" "va/va_x11.h" vaGetDisplay
> fi
>
> - check_cpp_condition vaapi_1 "va/va.h" "VA_CHECK_VERSION(1, 0, 0)"
> -
> - check_type "va/va.h va/va_dec_hevc.h" "VAPictureParameterBufferHEVC"
> - check_struct "va/va.h" "VADecPictureParameterBufferVP9" bit_depth
> check_struct "va/va.h" "VADecPictureParameterBufferAV1" bit_depth_idx
> check_type "va/va.h va/va_vpp.h"
> "VAProcFilterParameterBufferHDRToneMapping"
> check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" rotation_flags
> check_struct "va/va.h va/va_vpp.h" "VAProcPipelineCaps" blend_flags
> - check_type "va/va.h va/va_enc_hevc.h" "VAEncPictureParameterBufferHEVC"
> - check_type "va/va.h va/va_enc_jpeg.h" "VAEncPictureParameterBufferJPEG"
> - check_type "va/va.h va/va_enc_vp8.h" "VAEncPictureParameterBufferVP8"
> - check_type "va/va.h va/va_enc_vp9.h" "VAEncPictureParameterBufferVP9"
> check_type "va/va.h va/va_enc_av1.h" "VAEncPictureParameterBufferAV1"
> fi
>
> diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c
> index 7c91d50f7b..9018558b48 100644
> --- a/libavcodec/vaapi_decode.c
> +++ b/libavcodec/vaapi_decode.c
> @@ -197,16 +197,10 @@ int ff_vaapi_decode_issue(AVCodecContext *avctx,
> av_log(avctx, AV_LOG_ERROR, "Failed to end picture decode "
> "issue: %d (%s).\n", vas, vaErrorStr(vas));
> err = AVERROR(EIO);
> - if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
> - AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS)
> - goto fail;
> - else
> - goto fail_at_end;
> + goto fail;
> }
>
> - if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
> - AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS)
> - ff_vaapi_decode_destroy_buffers(avctx, pic);
> + ff_vaapi_decode_destroy_buffers(avctx, pic);
>
> err = 0;
> goto exit;
> @@ -219,7 +213,6 @@ fail_with_picture:
> }
> fail:
> ff_vaapi_decode_destroy_buffers(avctx, pic);
> -fail_at_end:
> exit:
> pic->nb_param_buffers = 0;
> pic->nb_slices = 0;
> @@ -412,12 +405,10 @@ static const struct {
> H264ConstrainedBaseline),
> MAP(H264, H264_MAIN, H264Main ),
> MAP(H264, H264_HIGH, H264High ),
> -#if VA_CHECK_VERSION(0, 37, 0)
> MAP(HEVC, HEVC_MAIN, HEVCMain ),
> MAP(HEVC, HEVC_MAIN_10, HEVCMain10 ),
> MAP(HEVC, HEVC_MAIN_STILL_PICTURE,
> HEVCMain ),
> -#endif
> #if VA_CHECK_VERSION(1, 2, 0) && CONFIG_HEVC_VAAPI_HWACCEL
> MAP(HEVC, HEVC_REXT, None,
> ff_vaapi_parse_hevc_rext_scc_profile ),
> @@ -435,14 +426,10 @@ static const struct {
> MAP(VC1, VC1_COMPLEX, VC1Advanced ),
> MAP(VC1, VC1_ADVANCED, VC1Advanced ),
> MAP(VP8, UNKNOWN, VP8Version0_3 ),
> -#if VA_CHECK_VERSION(0, 38, 0)
> MAP(VP9, VP9_0, VP9Profile0 ),
> -#endif
> -#if VA_CHECK_VERSION(0, 39, 0)
> MAP(VP9, VP9_1, VP9Profile1 ),
> MAP(VP9, VP9_2, VP9Profile2 ),
> MAP(VP9, VP9_3, VP9Profile3 ),
> -#endif
> #if VA_CHECK_VERSION(1, 8, 0)
> MAP(AV1, AV1_MAIN, AV1Profile0),
> MAP(AV1, AV1_HIGH, AV1Profile1),
> @@ -605,27 +592,7 @@ static int vaapi_decode_make_config(AVCodecContext
> *avctx,
> if (err < 0)
> goto fail;
>
> - if (CONFIG_VAAPI_1)
> - frames->initial_pool_size = 0;
> - else {
> - frames->initial_pool_size = 1;
> - // Add per-codec number of surfaces used for storing reference
> frames.
> - switch (avctx->codec_id) {
> - case AV_CODEC_ID_H264:
> - case AV_CODEC_ID_HEVC:
> - case AV_CODEC_ID_AV1:
> - frames->initial_pool_size += 16;
> - break;
> - case AV_CODEC_ID_VP9:
> - frames->initial_pool_size += 8;
> - break;
> - case AV_CODEC_ID_VP8:
> - frames->initial_pool_size += 3;
> - break;
> - default:
> - frames->initial_pool_size += 2;
> - }
> - }
> + frames->initial_pool_size = 0;
> }
>
> av_hwframe_constraints_free(&constraints);
> diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c
> index f54b2579ec..6f062e8277 100644
> --- a/libavcodec/vaapi_encode.c
> +++ b/libavcodec/vaapi_encode.c
> @@ -530,7 +530,6 @@ static int vaapi_encode_issue(AVCodecContext *avctx,
> }
> }
>
> -#if VA_CHECK_VERSION(1, 0, 0)
> sd = av_frame_get_side_data(pic->input_image,
> AV_FRAME_DATA_REGIONS_OF_INTEREST);
> if (sd && ctx->roi_allowed) {
> @@ -593,7 +592,6 @@ static int vaapi_encode_issue(AVCodecContext *avctx,
> if (err < 0)
> goto fail;
> }
> -#endif
>
> vas = vaBeginPicture(ctx->hwctx->display, ctx->va_context,
> pic->input_surface);
> @@ -618,26 +616,17 @@ static int vaapi_encode_issue(AVCodecContext *avctx,
> av_log(avctx, AV_LOG_ERROR, "Failed to end picture encode issue: "
> "%d (%s).\n", vas, vaErrorStr(vas));
> err = AVERROR(EIO);
> - // vaRenderPicture() has been called here, so we should not destroy
> - // the parameter buffers unless separate destruction is required.
> - if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
> - AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS)
> - goto fail;
> - else
> - goto fail_at_end;
> - }
> -
> - if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
> - AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS) {
> - for (i = 0; i < pic->nb_param_buffers; i++) {
> - vas = vaDestroyBuffer(ctx->hwctx->display,
> - pic->param_buffers[i]);
> - if (vas != VA_STATUS_SUCCESS) {
> - av_log(avctx, AV_LOG_ERROR, "Failed to destroy "
> - "param buffer %#x: %d (%s).\n",
> - pic->param_buffers[i], vas, vaErrorStr(vas));
> - // And ignore.
> - }
> + goto fail;
> + }
> +
> + for (i = 0; i < pic->nb_param_buffers; i++) {
> + vas = vaDestroyBuffer(ctx->hwctx->display,
> + pic->param_buffers[i]);
> + if (vas != VA_STATUS_SUCCESS) {
> + av_log(avctx, AV_LOG_ERROR, "Failed to destroy "
> + "param buffer %#x: %d (%s).\n",
> + pic->param_buffers[i], vas, vaErrorStr(vas));
> + // And ignore.
> }
> }
>
> @@ -654,7 +643,6 @@ fail:
> for (i = 0; i < pic->nb_slices; i++)
> av_freep(&pic->slices[i].codec_slice_params);
> }
> -fail_at_end:
> av_freep(&pic->codec_picture_params);
> av_freep(&pic->param_buffers);
> av_freep(&pic->slices);
> @@ -1530,25 +1518,19 @@ static const VAAPIEncodeRTFormat
> vaapi_encode_rt_formats[] = {
> { "YUV444", VA_RT_FORMAT_YUV444, 8, 3, 0, 0 },
> { "XYUV", VA_RT_FORMAT_YUV444, 8, 3, 0, 0 },
> { "YUV411", VA_RT_FORMAT_YUV411, 8, 3, 2, 0 },
> -#if VA_CHECK_VERSION(0, 38, 1)
> { "YUV420_10", VA_RT_FORMAT_YUV420_10BPP, 10, 3, 1, 1 },
> -#endif
> };
>
> static const VAEntrypoint vaapi_encode_entrypoints_normal[] = {
> VAEntrypointEncSlice,
> VAEntrypointEncPicture,
> -#if VA_CHECK_VERSION(0, 39, 2)
> VAEntrypointEncSliceLP,
> -#endif
> 0
> };
> -#if VA_CHECK_VERSION(0, 39, 2)
> static const VAEntrypoint vaapi_encode_entrypoints_low_power[] = {
> VAEntrypointEncSliceLP,
> 0
> };
> -#endif
>
> static av_cold int vaapi_encode_profile_entrypoint(AVCodecContext *avctx)
> {
> @@ -1566,13 +1548,7 @@ static av_cold int
> vaapi_encode_profile_entrypoint(AVCodecContext *avctx)
>
>
> if (ctx->low_power) {
> -#if VA_CHECK_VERSION(0, 39, 2)
> usable_entrypoints = vaapi_encode_entrypoints_low_power;
> -#else
> - av_log(avctx, AV_LOG_ERROR, "Low-power encoding is not "
> - "supported with this VAAPI version.\n");
> - return AVERROR(EINVAL);
> -#endif
> } else {
> usable_entrypoints = vaapi_encode_entrypoints_normal;
> }
> @@ -1623,11 +1599,7 @@ static av_cold int
> vaapi_encode_profile_entrypoint(AVCodecContext *avctx)
> avctx->profile != AV_PROFILE_UNKNOWN)
> continue;
>
> -#if VA_CHECK_VERSION(1, 0, 0)
> profile_string = vaProfileStr(profile->va_profile);
> -#else
> - profile_string = "(no profile names)";
> -#endif
>
> for (j = 0; j < n; j++) {
> if (va_profiles[j] == profile->va_profile)
> @@ -1686,11 +1658,7 @@ static av_cold int
> vaapi_encode_profile_entrypoint(AVCodecContext *avctx)
> }
>
> ctx->va_entrypoint = va_entrypoints[i];
> -#if VA_CHECK_VERSION(1, 0, 0)
> entrypoint_string = vaEntrypointStr(ctx->va_entrypoint);
> -#else
> - entrypoint_string = "(no entrypoint names)";
> -#endif
> av_log(avctx, AV_LOG_VERBOSE, "Using VAAPI entrypoint %s (%d).\n",
> entrypoint_string, ctx->va_entrypoint);
>
> @@ -1807,16 +1775,10 @@ static av_cold int
> vaapi_encode_init_rate_control(AVCodecContext *avctx)
>
> supported_va_rc_modes = rc_attr.value;
> if (ctx->blbrc) {
> -#if VA_CHECK_VERSION(0, 39, 2)
> if (!(supported_va_rc_modes & VA_RC_MB)) {
> ctx->blbrc = 0;
> av_log(avctx, AV_LOG_WARNING, "Driver does not support
> BLBRC.\n");
> }
> -#else
> - ctx->blbrc = 0;
> - av_log(avctx, AV_LOG_WARNING, "Please consider to update to VAAPI
> 0.39.2 "
> - "or above, which can support BLBRC.\n");
> -#endif
> }
>
> for (i = 0; i < FF_ARRAY_ELEMS(vaapi_encode_rc_modes); i++) {
> @@ -2044,11 +2006,7 @@ rc_mode_found:
> ctx->config_attributes[ctx->nb_config_attributes++] =
> (VAConfigAttrib) {
> .type = VAConfigAttribRateControl,
> -#if VA_CHECK_VERSION(0, 39, 2)
> .value = ctx->blbrc ? ctx->va_rc_mode | VA_RC_MB : ctx-
> >va_rc_mode,
> -#else
> - .value = ctx->va_rc_mode,
> -#endif
> };
> }
>
> @@ -2081,9 +2039,7 @@ rc_mode_found:
> #if VA_CHECK_VERSION(1, 3, 0)
> .quality_factor = rc_quality,
> #endif
> -#if VA_CHECK_VERSION(0, 39, 2)
> .rc_flags.bits.mb_rate_control = ctx->blbrc ? 1 : 2,
> -#endif
> };
> vaapi_encode_add_global_param(avctx,
> VAEncMiscParameterTypeRateControl,
> @@ -2119,12 +2075,10 @@ rc_mode_found:
> ctx->fr_params = (VAEncMiscParameterFrameRate) {
> .framerate = (unsigned int)fr_den << 16 | fr_num,
> };
> -#if VA_CHECK_VERSION(0, 40, 0)
> vaapi_encode_add_global_param(avctx,
> VAEncMiscParameterTypeFrameRate,
> &ctx->fr_params,
> sizeof(ctx->fr_params));
> -#endif
>
> return 0;
> }
> @@ -2338,11 +2292,9 @@ static av_cold int
> vaapi_encode_init_row_slice_structure(AVCodecContext *avctx,
> }
> ctx->nb_slices = (ctx->slice_block_rows + k - 1) / k;
> ctx->slice_size = k;
> -#if VA_CHECK_VERSION(1, 0, 0)
> } else if (slice_structure & VA_ENC_SLICE_STRUCTURE_EQUAL_ROWS) {
> ctx->nb_slices = ctx->slice_block_rows;
> ctx->slice_size = 1;
> -#endif
> } else {
> av_log(avctx, AV_LOG_ERROR, "Driver does not support any usable "
> "slice structure modes (%#x).\n", slice_structure);
> @@ -2566,7 +2518,6 @@ static av_cold int
> vaapi_encode_init_packed_headers(AVCodecContext *avctx)
>
> static av_cold int vaapi_encode_init_quality(AVCodecContext *avctx)
> {
> -#if VA_CHECK_VERSION(0, 36, 0)
> VAAPIEncodeContext *ctx = avctx->priv_data;
> VAStatus vas;
> VAConfigAttrib attr = { VAConfigAttribEncQualityRange };
> @@ -2603,17 +2554,12 @@ static av_cold int
> vaapi_encode_init_quality(AVCodecContext *avctx)
> &ctx->quality_params,
> sizeof(ctx->quality_params));
> }
> -#else
> - av_log(avctx, AV_LOG_WARNING, "The encode quality option is "
> - "not supported with this VAAPI version.\n");
> -#endif
>
> return 0;
> }
>
> static av_cold int vaapi_encode_init_roi(AVCodecContext *avctx)
> {
> -#if VA_CHECK_VERSION(1, 0, 0)
> VAAPIEncodeContext *ctx = avctx->priv_data;
> VAStatus vas;
> VAConfigAttrib attr = { VAConfigAttribEncROI };
> @@ -2640,7 +2586,7 @@ static av_cold int vaapi_encode_init_roi(AVCodecContext
> *avctx)
> (ctx->va_rc_mode == VA_RC_CQP ||
> roi.bits.roi_rc_qp_delta_support);
> }
> -#endif
> +
> return 0;
> }
>
> diff --git a/libavcodec/vaapi_encode.h b/libavcodec/vaapi_encode.h
> index 0eed9691ca..43f3b8cf82 100644
> --- a/libavcodec/vaapi_encode.h
> +++ b/libavcodec/vaapi_encode.h
> @@ -22,10 +22,7 @@
> #include <stdint.h>
>
> #include <va/va.h>
> -
> -#if VA_CHECK_VERSION(1, 0, 0)
> #include <va/va_str.h>
> -#endif
>
> #include "libavutil/hwcontext.h"
> #include "libavutil/hwcontext_vaapi.h"
> @@ -82,12 +79,8 @@ typedef struct VAAPIEncodePicture {
> void *opaque;
> AVBufferRef *opaque_ref;
>
> -#if VA_CHECK_VERSION(1, 0, 0)
> // ROI regions.
> VAEncROI *roi;
> -#else
> - void *roi;
> -#endif
>
> int type;
> int b_depth;
> @@ -293,9 +286,7 @@ typedef struct VAAPIEncodeContext {
> VAEncMiscParameterHRD hrd_params;
> VAEncMiscParameterFrameRate fr_params;
> VAEncMiscParameterBufferMaxFrameSize mfs_params;
> -#if VA_CHECK_VERSION(0, 36, 0)
> VAEncMiscParameterBufferQualityLevel quality_params;
> -#endif
>
> // Per-sequence parameter structure (VAEncSequenceParameterBuffer*).
> void *codec_sequence_params;
> diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c
> index d656b1020f..bb4c250bb4 100644
> --- a/libavcodec/vaapi_encode_h264.c
> +++ b/libavcodec/vaapi_encode_h264.c
> @@ -106,7 +106,6 @@ typedef struct VAAPIEncodeH264Context {
>
> int aud_needed;
> int sei_needed;
> - int sei_cbr_workaround_needed;
> } VAAPIEncodeH264Context;
>
>
> @@ -271,19 +270,6 @@ static int
> vaapi_encode_h264_write_extra_header(AVCodecContext *avctx,
>
> *type = VAEncPackedHeaderRawData;
> return 0;
> -
> -#if !CONFIG_VAAPI_1
> - } else if (priv->sei_cbr_workaround_needed) {
> - // Insert a zero-length header using the old SEI type. This is
> - // required to avoid triggering broken behaviour on Intel platforms
> - // in CBR mode where an invalid SEI message is generated by the
> - // driver and inserted into the stream.
> - *data_len = 0;
> - *type = VAEncPackedHeaderH264_SEI;
> - priv->sei_cbr_workaround_needed = 0;
> - return 0;
> -#endif
> -
> } else {
> return AVERROR_EOF;
> }
> @@ -681,10 +667,6 @@ static int
> vaapi_encode_h264_init_picture_params(AVCodecContext *avctx,
>
> if (priv->sei & SEI_IDENTIFIER && pic->encode_order == 0)
> priv->sei_needed |= SEI_IDENTIFIER;
> -#if !CONFIG_VAAPI_1
> - if (ctx->va_rc_mode == VA_RC_CBR)
> - priv->sei_cbr_workaround_needed = 1;
> -#endif
>
> if (priv->sei & SEI_TIMING) {
> priv->sei_pic_timing = (H264RawSEIPicTiming) {
> diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c
> index c0dc3fca5f..2252f872cd 100644
> --- a/libavcodec/vaapi_encode_h265.c
> +++ b/libavcodec/vaapi_encode_h265.c
> @@ -1303,10 +1303,8 @@ static av_cold int
> vaapi_encode_h265_configure(AVCodecContext *avctx)
> static const VAAPIEncodeProfile vaapi_encode_h265_profiles[] = {
> { AV_PROFILE_HEVC_MAIN, 8, 3, 1, 1, VAProfileHEVCMain },
> { AV_PROFILE_HEVC_REXT, 8, 3, 1, 1, VAProfileHEVCMain },
> -#if VA_CHECK_VERSION(0, 37, 0)
> { AV_PROFILE_HEVC_MAIN_10, 10, 3, 1, 1, VAProfileHEVCMain10 },
> { AV_PROFILE_HEVC_REXT, 10, 3, 1, 1, VAProfileHEVCMain10 },
> -#endif
> #if VA_CHECK_VERSION(1, 2, 0)
> { AV_PROFILE_HEVC_REXT, 12, 3, 1, 1, VAProfileHEVCMain12 },
> { AV_PROFILE_HEVC_REXT, 8, 3, 1, 0, VAProfileHEVCMain422_10 },
> diff --git a/libavfilter/vaapi_vpp.c b/libavfilter/vaapi_vpp.c
> index 9ef7a289fb..fe14170fee 100644
> --- a/libavfilter/vaapi_vpp.c
> +++ b/libavfilter/vaapi_vpp.c
> @@ -204,12 +204,9 @@ int ff_vaapi_vpp_config_output(AVFilterLink *outlink)
> output_frames->width = ctx->output_width;
> output_frames->height = ctx->output_height;
>
> - if (CONFIG_VAAPI_1)
> - output_frames->initial_pool_size = 0;
> - else
> - output_frames->initial_pool_size = 4;
> + output_frames->initial_pool_size = 0;
>
> - err = ff_filter_init_hw_frames(avctx, outlink, 10);
> + err = ff_filter_init_hw_frames(avctx, outlink, 0);
> if (err < 0)
> goto fail;
>
> @@ -677,15 +674,12 @@ int ff_vaapi_vpp_render_pictures(AVFilterContext *avctx,
> goto fail_after_render;
> }
>
> - if (CONFIG_VAAPI_1 || ctx->hwctx->driver_quirks &
> - AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS) {
> - for (int i = 0; i < cout && params_ids[i] != VA_INVALID_ID; i++) {
> - vas = vaDestroyBuffer(ctx->hwctx->display, params_ids[i]);
> - if (vas != VA_STATUS_SUCCESS) {
> - av_log(avctx, AV_LOG_ERROR, "Failed to free parameter buffer:
> "
> - "%d (%s).\n", vas, vaErrorStr(vas));
> - // And ignore.
> - }
> + for (int i = 0; i < cout && params_ids[i] != VA_INVALID_ID; i++) {
> + vas = vaDestroyBuffer(ctx->hwctx->display, params_ids[i]);
> + if (vas != VA_STATUS_SUCCESS) {
> + av_log(avctx, AV_LOG_ERROR, "Failed to free parameter buffer: "
> + "%d (%s).\n", vas, vaErrorStr(vas));
> + // And ignore.
> }
> }
>
> diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
> index 4cb25dd032..caff43d1ae 100644
> --- a/libavutil/hwcontext_vaapi.c
> +++ b/libavutil/hwcontext_vaapi.c
> @@ -372,14 +372,6 @@ static const struct {
> const char *match_string;
> unsigned int quirks;
> } vaapi_driver_quirks_table[] = {
> -#if !VA_CHECK_VERSION(1, 0, 0)
> - // The i965 driver did not conform before version 2.0.
> - {
> - "Intel i965 (Quick Sync)",
> - "i965",
> - AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS,
> - },
> -#endif
> {
> "Intel iHD",
> "ubit",
> @@ -1425,7 +1417,6 @@ fail:
> }
> #endif
>
> -#if VA_CHECK_VERSION(0, 36, 0)
> typedef struct VAAPIDRMImageBufferMapping {
> VAImage image;
> VABufferInfo buffer_info;
> @@ -1585,7 +1576,6 @@ fail:
> av_freep(&mapping);
> return err;
> }
> -#endif
>
> static int vaapi_map_to_drm(AVHWFramesContext *hwfc, AVFrame *dst,
> const AVFrame *src, int flags)
> @@ -1596,10 +1586,7 @@ static int vaapi_map_to_drm(AVHWFramesContext *hwfc,
> AVFrame *dst,
> if (err != AVERROR(ENOSYS))
> return err;
> #endif
> -#if VA_CHECK_VERSION(0, 36, 0)
> return vaapi_map_to_drm_abh(hwfc, dst, src, flags);
> -#endif
> - return AVERROR(ENOSYS);
> }
>
> #endif /* CONFIG_LIBDRM */
> @@ -1649,7 +1636,6 @@ static void vaapi_device_free(AVHWDeviceContext *ctx)
> av_freep(&priv);
> }
>
> -#if CONFIG_VAAPI_1
> static void vaapi_device_log_error(void *context, const char *message)
> {
> AVHWDeviceContext *ctx = context;
> @@ -1663,7 +1649,6 @@ static void vaapi_device_log_info(void *context, const
> char *message)
>
> av_log(ctx, AV_LOG_VERBOSE, "libva: %s", message);
> }
> -#endif
>
> static int vaapi_device_connect(AVHWDeviceContext *ctx,
> VADisplay display)
> @@ -1672,10 +1657,8 @@ static int vaapi_device_connect(AVHWDeviceContext *ctx,
> int major, minor;
> VAStatus vas;
>
> -#if CONFIG_VAAPI_1
> vaSetErrorCallback(display, &vaapi_device_log_error, ctx);
> vaSetInfoCallback (display, &vaapi_device_log_info, ctx);
> -#endif
>
> hwctx->display = display;
>
> @@ -1919,7 +1902,6 @@ static int vaapi_device_create(AVHWDeviceContext *ctx,
> const char *device,
>
> ent = av_dict_get(opts, "driver", NULL, 0);
> if (ent) {
> -#if VA_CHECK_VERSION(0, 38, 0)
> VAStatus vas;
> vas = vaSetDriverName(display, ent->value);
> if (vas != VA_STATUS_SUCCESS) {
> @@ -1928,10 +1910,6 @@ static int vaapi_device_create(AVHWDeviceContext *ctx,
> const char *device,
> vaTerminate(display);
> return AVERROR_EXTERNAL;
> }
> -#else
> - av_log(ctx, AV_LOG_WARNING, "Driver name setting is not "
> - "supported with this VAAPI version.\n");
> -#endif
> }
>
> return vaapi_device_connect(ctx, display);
More information about the ffmpeg-devel
mailing list