* [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support
@ 2024-05-05 19:01 Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 2/5] lavfi: " Mark Thompson
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Mark Thompson @ 2024-05-05 19:01 UTC (permalink / raw)
To: ffmpeg-devel
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 command, 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.
---
Changes to the series since v3:
* Reorder so that the series doesn't need to be squashed.
* New patch to remove the driver quirk support (deprecated in the public
header, but will have no effect if set).
configure | 25 ++++++-------------------
1 file changed, 6 insertions(+), 19 deletions(-)
diff --git a/configure b/configure
index ed74583a6f..69fde0bf35 100755
--- a/configure
+++ b/configure
@@ -2625,7 +2625,6 @@ CONFIG_EXTRA="
texturedsp
texturedspenc
tpeldsp
- vaapi_1
vaapi_encode
vc1dsp
videodsp
@@ -3189,7 +3188,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"
@@ -3261,7 +3260,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"
@@ -3354,7 +3353,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"
@@ -3363,7 +3361,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"
@@ -3392,7 +3389,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"
@@ -3401,7 +3397,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"
@@ -3952,9 +3947,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"
@@ -7252,7 +7247,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
@@ -7268,18 +7263,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
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH v4 2/5] lavfi: Remove libva 1.x support
2024-05-05 19:01 [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Mark Thompson
@ 2024-05-05 19:01 ` Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 3/5] lavc: " Mark Thompson
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Mark Thompson @ 2024-05-05 19:01 UTC (permalink / raw)
To: ffmpeg-devel
libva 2.0 was released in 2017 and the 2.x versions are included in all
supported distributions nowadays.
---
libavfilter/vaapi_vpp.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
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.
}
}
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH v4 3/5] lavc: Remove libva 1.x support
2024-05-05 19:01 [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 2/5] lavfi: " Mark Thompson
@ 2024-05-05 19:01 ` Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 4/5] lavu: " Mark Thompson
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Mark Thompson @ 2024-05-05 19:01 UTC (permalink / raw)
To: ffmpeg-devel
libva 2.0 was released in 2017 and the 2.x versions are included in all
supported distributions nowadays.
---
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 -
5 files changed, 15 insertions(+), 131 deletions(-)
diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c
index 21b273cd0f..ef1ea27a08 100644
--- a/libavcodec/vaapi_decode.c
+++ b/libavcodec/vaapi_decode.c
@@ -191,16 +191,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;
@@ -213,7 +207,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;
@@ -406,12 +399,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 ),
@@ -429,14 +420,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),
@@ -599,27 +586,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 2f59161346..a85b514715 100644
--- a/libavcodec/vaapi_encode_h265.c
+++ b/libavcodec/vaapi_encode_h265.c
@@ -1302,10 +1302,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 },
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH v4 4/5] lavu: Remove libva 1.x support
2024-05-05 19:01 [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 2/5] lavfi: " Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 3/5] lavc: " Mark Thompson
@ 2024-05-05 19:01 ` Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 5/5] hwcontext_vaapi: Deprecate quirks Mark Thompson
2024-05-07 5:27 ` [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Xiang, Haihao
4 siblings, 0 replies; 8+ messages in thread
From: Mark Thompson @ 2024-05-05 19:01 UTC (permalink / raw)
To: ffmpeg-devel
libva 2.0 was released in 2017 and the 2.x versions are included in all
supported distributions nowadays.
---
libavutil/hwcontext_vaapi.c | 22 ----------------------
1 file changed, 22 deletions(-)
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);
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* [FFmpeg-devel] [PATCH v4 5/5] hwcontext_vaapi: Deprecate quirks
2024-05-05 19:01 [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Mark Thompson
` (2 preceding siblings ...)
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 4/5] lavu: " Mark Thompson
@ 2024-05-05 19:01 ` Mark Thompson
2024-05-07 5:27 ` [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Xiang, Haihao
4 siblings, 0 replies; 8+ messages in thread
From: Mark Thompson @ 2024-05-05 19:01 UTC (permalink / raw)
To: ffmpeg-devel
These only apply to obsolete drivers which do not work with the
now-required libva 2.x.
---
libavutil/hwcontext_vaapi.c | 123 ++++++++++--------------------------
libavutil/hwcontext_vaapi.h | 15 +++++
2 files changed, 50 insertions(+), 88 deletions(-)
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index caff43d1ae..8591fb88ac 100644
--- a/libavutil/hwcontext_vaapi.c
+++ b/libavutil/hwcontext_vaapi.c
@@ -243,8 +243,7 @@ static int vaapi_frames_get_constraints(AVHWDeviceContext *hwdev,
unsigned int fourcc;
int err, i, j, attr_count, pix_fmt_count;
- if (config &&
- !(hwctx->driver_quirks & AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES)) {
+ if (config) {
attr_count = 0;
vas = vaQuerySurfaceAttributes(hwctx->display, config->config_id,
0, &attr_count);
@@ -367,23 +366,6 @@ fail:
return err;
}
-static const struct {
- const char *friendly_name;
- const char *match_string;
- unsigned int quirks;
-} vaapi_driver_quirks_table[] = {
- {
- "Intel iHD",
- "ubit",
- AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE,
- },
- {
- "VDPAU wrapper",
- "Splitted-Desktop Systems VDPAU backend for VA-API",
- AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES,
- },
-};
-
static int vaapi_device_init(AVHWDeviceContext *hwdev)
{
VAAPIDeviceContext *ctx = hwdev->hwctx;
@@ -436,36 +418,6 @@ static int vaapi_device_init(AVHWDeviceContext *hwdev)
if (vendor_string)
av_log(hwdev, AV_LOG_VERBOSE, "VAAPI driver: %s.\n", vendor_string);
- if (hwctx->driver_quirks & AV_VAAPI_DRIVER_QUIRK_USER_SET) {
- av_log(hwdev, AV_LOG_VERBOSE, "Using quirks set by user (%#x).\n",
- hwctx->driver_quirks);
- } else {
- // Detect the driver in use and set quirk flags if necessary.
- hwctx->driver_quirks = 0;
- if (vendor_string) {
- for (i = 0; i < FF_ARRAY_ELEMS(vaapi_driver_quirks_table); i++) {
- if (strstr(vendor_string,
- vaapi_driver_quirks_table[i].match_string)) {
- av_log(hwdev, AV_LOG_VERBOSE, "Matched driver string "
- "as known nonstandard driver \"%s\", setting "
- "quirks (%#x).\n",
- vaapi_driver_quirks_table[i].friendly_name,
- vaapi_driver_quirks_table[i].quirks);
- hwctx->driver_quirks |=
- vaapi_driver_quirks_table[i].quirks;
- break;
- }
- }
- if (!(i < FF_ARRAY_ELEMS(vaapi_driver_quirks_table))) {
- av_log(hwdev, AV_LOG_VERBOSE, "Driver not found in known "
- "nonstandard list, using standard behaviour.\n");
- }
- } else {
- av_log(hwdev, AV_LOG_VERBOSE, "Driver has no vendor string, "
- "assuming standard behaviour.\n");
- }
- }
-
av_free(image_list);
return 0;
fail:
@@ -562,48 +514,43 @@ static int vaapi_frames_init(AVHWFramesContext *hwfc)
}
if (!hwfc->pool) {
- if (!(hwctx->driver_quirks & AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES)) {
- int need_memory_type = !(hwctx->driver_quirks & AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE);
- int need_pixel_format = 1;
- for (i = 0; i < avfc->nb_attributes; i++) {
- if (avfc->attributes[i].type == VASurfaceAttribMemoryType)
- need_memory_type = 0;
- if (avfc->attributes[i].type == VASurfaceAttribPixelFormat)
- need_pixel_format = 0;
- }
- ctx->nb_attributes =
- avfc->nb_attributes + need_memory_type + need_pixel_format;
+ int need_memory_type = 1;
+ int need_pixel_format = 1;
+ for (i = 0; i < avfc->nb_attributes; i++) {
+ if (avfc->attributes[i].type == VASurfaceAttribMemoryType)
+ need_memory_type = 0;
+ if (avfc->attributes[i].type == VASurfaceAttribPixelFormat)
+ need_pixel_format = 0;
+ }
+ ctx->nb_attributes =
+ avfc->nb_attributes + need_memory_type + need_pixel_format;
- ctx->attributes = av_malloc(ctx->nb_attributes *
- sizeof(*ctx->attributes));
- if (!ctx->attributes) {
- err = AVERROR(ENOMEM);
- goto fail;
- }
+ ctx->attributes = av_malloc(ctx->nb_attributes *
+ sizeof(*ctx->attributes));
+ if (!ctx->attributes) {
+ err = AVERROR(ENOMEM);
+ goto fail;
+ }
- for (i = 0; i < avfc->nb_attributes; i++)
- ctx->attributes[i] = avfc->attributes[i];
- if (need_memory_type) {
- ctx->attributes[i++] = (VASurfaceAttrib) {
- .type = VASurfaceAttribMemoryType,
- .flags = VA_SURFACE_ATTRIB_SETTABLE,
- .value.type = VAGenericValueTypeInteger,
- .value.value.i = VA_SURFACE_ATTRIB_MEM_TYPE_VA,
- };
- }
- if (need_pixel_format) {
- ctx->attributes[i++] = (VASurfaceAttrib) {
- .type = VASurfaceAttribPixelFormat,
- .flags = VA_SURFACE_ATTRIB_SETTABLE,
- .value.type = VAGenericValueTypeInteger,
- .value.value.i = desc->fourcc,
- };
- }
- av_assert0(i == ctx->nb_attributes);
- } else {
- ctx->attributes = NULL;
- ctx->nb_attributes = 0;
+ for (i = 0; i < avfc->nb_attributes; i++)
+ ctx->attributes[i] = avfc->attributes[i];
+ if (need_memory_type) {
+ ctx->attributes[i++] = (VASurfaceAttrib) {
+ .type = VASurfaceAttribMemoryType,
+ .flags = VA_SURFACE_ATTRIB_SETTABLE,
+ .value.type = VAGenericValueTypeInteger,
+ .value.value.i = VA_SURFACE_ATTRIB_MEM_TYPE_VA,
+ };
+ }
+ if (need_pixel_format) {
+ ctx->attributes[i++] = (VASurfaceAttrib) {
+ .type = VASurfaceAttribPixelFormat,
+ .flags = VA_SURFACE_ATTRIB_SETTABLE,
+ .value.type = VAGenericValueTypeInteger,
+ .value.value.i = desc->fourcc,
+ };
}
+ av_assert0(i == ctx->nb_attributes);
ctx->rt_format = desc->rt_format;
diff --git a/libavutil/hwcontext_vaapi.h b/libavutil/hwcontext_vaapi.h
index 0b2e071cb3..acd72eee6d 100644
--- a/libavutil/hwcontext_vaapi.h
+++ b/libavutil/hwcontext_vaapi.h
@@ -37,18 +37,24 @@ enum {
/**
* The quirks field has been set by the user and should not be detected
* automatically by av_hwdevice_ctx_init().
+ *
+ * @deprecated Driver quirks are no longer used.
*/
AV_VAAPI_DRIVER_QUIRK_USER_SET = (1 << 0),
/**
* The driver does not destroy parameter buffers when they are used by
* vaRenderPicture(). Additional code will be required to destroy them
* separately afterwards.
+ *
+ * @deprecated Driver quirks are no longer used.
*/
AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS = (1 << 1),
/**
* The driver does not support the VASurfaceAttribMemoryType attribute,
* so the surface allocation code will not try to use it.
+ *
+ * @deprecated Driver quirks are no longer used.
*/
AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE = (1 << 2),
@@ -56,6 +62,8 @@ enum {
* The driver does not support surface attributes at all.
* The surface allocation code will never pass them to surface allocation,
* and the results of the vaQuerySurfaceAttributes() call will be faked.
+ *
+ * @deprecated Driver quirks are no longer used.
*/
AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES = (1 << 3),
};
@@ -76,7 +84,14 @@ typedef struct AVVAAPIDeviceContext {
* AV_VAAPI_DRIVER_QUIRK_USER_SET bit is already present. The user
* may need to refer to this field when performing any later
* operations using VAAPI with the same VADisplay.
+ *
+ * @deprecated This was used with libva before the 2.x to support
+ * various drivers which had behaviour not fully
+ * matching the specification. Since libva 2.x this is
+ * no longer used; setting this field has no effect and
+ * new code must ignore it.
*/
+ attribute_deprecated
unsigned int driver_quirks;
} AVVAAPIDeviceContext;
--
2.43.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support
2024-05-05 19:01 [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Mark Thompson
` (3 preceding siblings ...)
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 5/5] hwcontext_vaapi: Deprecate quirks Mark Thompson
@ 2024-05-07 5:27 ` Xiang, Haihao
2024-05-07 20:25 ` Mark Thompson
4 siblings, 1 reply; 8+ messages in thread
From: Xiang, Haihao @ 2024-05-07 5:27 UTC (permalink / raw)
To: ffmpeg-devel
On So, 2024-05-05 at 20:01 +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 command, 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.
> ---
> Changes to the series since v3:
> * Reorder so that the series doesn't need to be squashed.
> * New patch to remove the driver quirk support (deprecated in the public
> header, but will have no effect if set).
>
> configure | 25 ++++++-------------------
> 1 file changed, 6 insertions(+), 19 deletions(-)
>
> diff --git a/configure b/configure
> index ed74583a6f..69fde0bf35 100755
> --- a/configure
> +++ b/configure
> @@ -2625,7 +2625,6 @@ CONFIG_EXTRA="
> texturedsp
> texturedspenc
> tpeldsp
> - vaapi_1
CONFIG_VAAPI_1 is used in the code. Removing this only caused compiling errors.
libavfilter/vaapi_vpp.c: In function ‘ff_vaapi_vpp_config_output’:
libavfilter/vaapi_vpp.c:207:9: error: ‘CONFIG_VAAPI_1’ undeclared (first use in
this function); did you mean ‘CONFIG_VAAPI’?
207 | if (CONFIG_VAAPI_1)
| ^~~~~~~~~~~~~~
| CONFIG_VAAPI
Thanks
Haihao
> vaapi_encode
> vc1dsp
> videodsp
> @@ -3189,7 +3188,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"
> @@ -3261,7 +3260,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"
> @@ -3354,7 +3353,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"
> @@ -3363,7 +3361,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"
> @@ -3392,7 +3389,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"
> @@ -3401,7 +3397,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"
> @@ -3952,9 +3947,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"
> @@ -7252,7 +7247,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
> @@ -7268,18 +7263,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
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support
2024-05-07 5:27 ` [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Xiang, Haihao
@ 2024-05-07 20:25 ` Mark Thompson
2024-05-08 6:21 ` Xiang, Haihao
0 siblings, 1 reply; 8+ messages in thread
From: Mark Thompson @ 2024-05-07 20:25 UTC (permalink / raw)
To: ffmpeg-devel
On 07/05/2024 06:27, Xiang, Haihao wrote:
> On So, 2024-05-05 at 20:01 +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 command, 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.
>> ---
>> Changes to the series since v3:
>> * Reorder so that the series doesn't need to be squashed.
>> * New patch to remove the driver quirk support (deprecated in the public
>> header, but will have no effect if set).
>>
>> configure | 25 ++++++-------------------
>> 1 file changed, 6 insertions(+), 19 deletions(-)
>>
>> diff --git a/configure b/configure
>> index ed74583a6f..69fde0bf35 100755
>> --- a/configure
>> +++ b/configure
>> @@ -2625,7 +2625,6 @@ CONFIG_EXTRA="
>> texturedsp
>> texturedspenc
>> tpeldsp
>> - vaapi_1
>
> CONFIG_VAAPI_1 is used in the code. Removing this only caused compiling errors.
>
> libavfilter/vaapi_vpp.c: In function ‘ff_vaapi_vpp_config_output’:
> libavfilter/vaapi_vpp.c:207:9: error: ‘CONFIG_VAAPI_1’ undeclared (first use in
> this function); did you mean ‘CONFIG_VAAPI’?
> 207 | if (CONFIG_VAAPI_1)
> | ^~~~~~~~~~~~~~
> | CONFIG_VAAPI
You are correct; I didn't think this split through carefully.
I suggest returning to the original idea of squashing before push so that the removal is atomic? I'm not sure it's worth dealing with the intermediate states given that they have no particular use.
Thanks,
- Mark
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support
2024-05-07 20:25 ` Mark Thompson
@ 2024-05-08 6:21 ` Xiang, Haihao
0 siblings, 0 replies; 8+ messages in thread
From: Xiang, Haihao @ 2024-05-08 6:21 UTC (permalink / raw)
To: ffmpeg-devel
On Di, 2024-05-07 at 21:25 +0100, Mark Thompson wrote:
> On 07/05/2024 06:27, Xiang, Haihao wrote:
> > On So, 2024-05-05 at 20:01 +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 command, 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.
> > > ---
> > > Changes to the series since v3:
> > > * Reorder so that the series doesn't need to be squashed.
> > > * New patch to remove the driver quirk support (deprecated in the public
> > > header, but will have no effect if set).
> > >
> > > configure | 25 ++++++-------------------
> > > 1 file changed, 6 insertions(+), 19 deletions(-)
> > >
> > > diff --git a/configure b/configure
> > > index ed74583a6f..69fde0bf35 100755
> > > --- a/configure
> > > +++ b/configure
> > > @@ -2625,7 +2625,6 @@ CONFIG_EXTRA="
> > > texturedsp
> > > texturedspenc
> > > tpeldsp
> > > - vaapi_1
> >
> > CONFIG_VAAPI_1 is used in the code. Removing this only caused compiling
> > errors.
> >
> > libavfilter/vaapi_vpp.c: In function ‘ff_vaapi_vpp_config_output’:
> > libavfilter/vaapi_vpp.c:207:9: error: ‘CONFIG_VAAPI_1’ undeclared (first use
> > in
> > this function); did you mean ‘CONFIG_VAAPI’?
> > 207 | if (CONFIG_VAAPI_1)
> > | ^~~~~~~~~~~~~~
> > | CONFIG_VAAPI
>
> You are correct; I didn't think this split through carefully.
>
> I suggest returning to the original idea of squashing before push so that the
> removal is atomic? I'm not sure it's worth dealing with the intermediate
> states given that they have no particular use.
I'm ok if you want to use a squash commit.
BRs
Haihao
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-05-08 6:21 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-05 19:01 [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 2/5] lavfi: " Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 3/5] lavc: " Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 4/5] lavu: " Mark Thompson
2024-05-05 19:01 ` [FFmpeg-devel] [PATCH v4 5/5] hwcontext_vaapi: Deprecate quirks Mark Thompson
2024-05-07 5:27 ` [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support Xiang, Haihao
2024-05-07 20:25 ` Mark Thompson
2024-05-08 6:21 ` Xiang, Haihao
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git