[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