From patchwork Wed Apr 3 19:45:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 47766 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp622548pzb; Wed, 3 Apr 2024 12:45:06 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUPkBhotJhwQ+KUFFmyybA8ShlqSolB0PNAqOBdiaIbpT9RNrOlNvH66Nddjh42aqlFFqhJjVlNiZfgqWRHgUWV6Uce3s+HPInaqA== X-Google-Smtp-Source: AGHT+IE7irwJaLm5xw7oKhENZx0MrWnJoB3gFBVjgMXc7NiOg/oQCnnN+A5HGG7v/ONo6+Z7UBjm X-Received: by 2002:a17:906:6a25:b0:a4e:7c40:d0f7 with SMTP id qw37-20020a1709066a2500b00a4e7c40d0f7mr221841ejc.25.1712173505786; Wed, 03 Apr 2024 12:45:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712173505; cv=none; d=google.com; s=arc-20160816; b=q4tq0jsudJWj1efP6mfgm/K91zMzra8xDTGKWFPk6tboFHYYN2KajfDhaUqI1wtNhH n74MZNRWOKQ7e1pnIg7fRLOrfpIct/Q1YvZSVWkflTeDU80zsjyRh9LHYCIk6Hm845jT RU79Ud/oC9uOMwamdGN4sHB97QY08uivhq6/Tm9Hn9vX0Cun7Ep8Yo5NVrxnf31yaUrr y9zAXGQcDXv8J0sJDRKr86o5ZiMVRmGAUVRIpn/wplELWTn5AB3uDTdmWUX/Sxbw2W9O GmPOwlfOWmsY3cfAmHDQglzvqSJYuEqWAM2/3bjRQsTxK8B/Ajad8IYs4v+YV7tKvfD6 MRxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:in-reply-to:references:to:from:content-language :user-agent:mime-version:date:message-id:dkim-signature:delivered-to; bh=Mkj7IVkoeOx766IY3jZmcdZycjae1SIRt2ceHWrcR6o=; fh=e5zN9xSzcxLA6bGo3lF+CqTbY/oLwzApV03EO/RBfgQ=; b=f0/izwyFMgY87WlP8NcP1R4OYNmobVcPoctRiiJ8C4un3XKLZ3gcwKZz6jY5UkS/yb CWNKMmeyNSerHOvOCp1l1cHS2+DT5UwF+izOPJXUE5BuZSsI7Rf2I82GcM3/n6b4vg19 Xxny7ZZX6jUtxvB5AJqtYzvTVsQ/Gs2f/sWbL6oXQlQkt7QCXHRdZQdeQ/inqxa8kLq9 yeZwkgQpiAHNMplQdnxxsvHmQFzZKQcenBbL5em0IeD3RdYwkEh+rXcrK022Sw3jLink 95ODVs2Io4D6O6+sKJCvPIqV5+PDyjZ9ivylT5DeHCvMRLeHEztCzSZbttJgYueiMgG0 T5eg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@jkqxz-net.20230601.gappssmtp.com header.s=20230601 header.b=Ct5cXgIJ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id xd1-20020a170907078100b00a474c8399d6si7402953ejb.798.2024.04.03.12.44.58; Wed, 03 Apr 2024 12:45:05 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@jkqxz-net.20230601.gappssmtp.com header.s=20230601 header.b=Ct5cXgIJ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1CC2F68D140; Wed, 3 Apr 2024 22:44:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6A6F668BECE for ; Wed, 3 Apr 2024 22:44:49 +0300 (EEST) Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-4156a29ff70so1342705e9.3 for ; Wed, 03 Apr 2024 12:44:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20230601.gappssmtp.com; s=20230601; t=1712173489; x=1712778289; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:references:to:from :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=2W7WcU/LIi/lRkqQyIoGB1Jl3shf13P2zLlhDWH1AFI=; b=Ct5cXgIJe7FVSM1YCe8N1p5mPCfoPZn2YqdJQ8ktkS3ZZWFMSt9L6JN+j9bQX82G7X Zx4Jd+flyjhNO4U+UWapw4y2r3qbsf9JgteMhWHMGzVEzrA59zvCLlioqgUk9Gxdkv78 MTP28Ok30pwdE8/QfA/rKYnOVCAzTt+sTPaVrrC9ifl9LdilJzrpVlAdCFPigKjJDziv fgOWJAF2vhy3nitba99bV+Q/CYecF3cChnYKxAwlZvrQpUGnihMA+dnAzRJIgrvsnw7P NCu0FP8y44v9PgEXj7QFUZXf7sVqNMOV70eykfBxrj29ypVYLPvFFhXJnvFdA/0JVvyY /Dqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712173489; x=1712778289; h=content-transfer-encoding:in-reply-to:references:to:from :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2W7WcU/LIi/lRkqQyIoGB1Jl3shf13P2zLlhDWH1AFI=; b=QhOuvFgpriZL6d7SHI/5At50o9SYEI5L/UT/kJrea7mis2l04LwzfL7pA5Ykh3ZQh2 SY0kYRydGIk+iwKEEk0lft5KN/yjUxSMDgOD+ZpRupQGTffYMbRpnM96V8IKOEMAc1J7 5tVMQtV/cA1hG9T30ADQxz4OP5/+/6deLG33MMfpyk6DVfug3JDuorXNKhjFbYQnl2nG brzRZLtl5B8Pe7zR+inpuIZeNX+G+PFc4LdO0TK3MWzO8tOiMhzgwstFhh4m8Dtix78e V9aoG7Sz3uUzOa5B6bLam7PkjiaNY4F9yJGKpy1iawzLarpD3TjnDRNYhBorMmYsz5zQ i1Nw== X-Gm-Message-State: AOJu0YyHN+ayPO1kaQClJGGZk7/5YEAHOKpY6N2kg4+dzIqR7kHZlLc4 vfuxmOc7K5GKHI0ZMdjzMflaZ8lphfOdtozpHKIW8cxjJe09HJbxYYYcPX19A0kkqJrN8BM1DYT a X-Received: by 2002:a05:600c:1715:b0:415:4a83:88f9 with SMTP id c21-20020a05600c171500b004154a8388f9mr420806wmn.38.1712173488680; Wed, 03 Apr 2024 12:44:48 -0700 (PDT) Received: from [192.168.0.15] (cpc92302-cmbg19-2-0-cust1183.5-4.cable.virginm.net. [82.1.212.160]) by smtp.gmail.com with ESMTPSA id f10-20020a0560001b0a00b00341dbb4a3a7sm17931399wrz.86.2024.04.03.12.44.48 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 03 Apr 2024 12:44:48 -0700 (PDT) Message-ID: <6dcdde27-99b7-454f-a155-0fb02161216d@jkqxz.net> Date: Wed, 3 Apr 2024 20:45:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US From: Mark Thompson To: FFmpeg development discussions and patches References: <15056f44-06c8-40a1-bb78-db3e66b2ee86@jkqxz.net> In-Reply-To: <15056f44-06c8-40a1-bb78-db3e66b2ee86@jkqxz.net> Subject: [FFmpeg-devel] [PATCH 2/4] lavc: Remove libva 1.x support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: kjQiHa10rf/M libva 2.0 was released in 2017 and the 2.x versions are included in all supported distributions nowadays. --- libavcodec/vaapi_decode.c | 10 ++-------- libavcodec/vaapi_encode.c | 31 +++++++++++-------------------- libavcodec/vaapi_encode_h264.c | 18 ------------------ 3 files changed, 13 insertions(+), 46 deletions(-) diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c index 5665639dd7..4e8910ed25 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; diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index f54b2579ec..0e19281ed4 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -618,26 +618,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. } } diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c index bf51df0f51..4f4191e23b 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) {