| 1 | From patchwork Wed May 8 07:11:11 2024
|
| 2 | Content-Type: text/plain; charset="utf-8"
|
| 3 | MIME-Version: 1.0
|
| 4 | Content-Transfer-Encoding: 7bit
|
| 5 | X-Patchwork-Submitter: David Rosca <[email protected]>
|
| 6 | X-Patchwork-Id: 48663
|
| 7 | Delivered-To: [email protected]
|
| 8 | Received: by 2002:a05:6a20:9c8f:b0:1af:cdee:28c5 with SMTP id mj15csp25621pzb;
|
| 9 | Wed, 8 May 2024 00:13:15 -0700 (PDT)
|
| 10 | X-Forwarded-Encrypted: i=2;
|
| 11 | AJvYcCWCijb8ZSk/y8BcczxdaxTNBz7xLlmGjenN9PJh0RzaUJGrdvM2Z+GAPh5e5kTeJCYeN8HiQuAyRm6Zzig7PSUIzb8PhAA2sq2Yzw==
|
| 12 | X-Google-Smtp-Source:
|
| 13 | AGHT+IHdqdMZBAjvbqLRYHa7Md6t9fwRSoJZl7CE/0w7QXsoqw/TDzXZ6Mpbl7AURm+q/U0l6qor
|
| 14 | X-Received: by 2002:a50:8713:0:b0:572:689f:6380 with SMTP id
|
| 15 | 4fb4d7f45d1cf-5731d9a29d8mr1644806a12.3.1715152394950;
|
| 16 | Wed, 08 May 2024 00:13:14 -0700 (PDT)
|
| 17 | ARC-Seal: i=1; a=rsa-sha256; t=1715152394; cv=none;
|
| 18 | d=google.com; s=arc-20160816;
|
| 19 | b=B6jZA/nq8Ym26kz7+ZsenrfiE6wW++e7SnAGUHwNm/gWod3Yl4PNnHvyeR8S5Zmw9O
|
| 20 | 3V09Yv3C5LTean+x2RVayPx0AGzKudIRJyy5IM8OhUNm2W7gc1dSif9DZDSaAXZB+TU/
|
| 21 | ZDXUltX0Mb5q2WOCZvHtP97HInDnGH2/v+H17UVTJrGq3BCsV6G2RfHLMkyA1Bw2Kbvb
|
| 22 | JDY0R7esCGVoOeTw60KvlRCJZ4nl8rusR1F0ejIiy2T1+peYjxyBVTlcJSRp9qUKq2vx
|
| 23 | qi3YZo7KEJ4GvpWU6gaW+OR2j5IYi9hmTa6I2MBAC9MSaoPTY02I/45L5g8oHpwZSYhs
|
| 24 | voxw==
|
| 25 | ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
|
| 26 | s=arc-20160816;
|
| 27 | h=sender:errors-to:content-transfer-encoding:cc:reply-to
|
| 28 | :list-subscribe:list-help:list-post:list-archive:list-unsubscribe
|
| 29 | :list-id:precedence:subject:mime-version:message-id:date:to:from
|
| 30 | :dkim-signature:delivered-to;
|
| 31 | bh=QyukGgEk1XAr25k9qbILTx4kdg6yKzLRJ3F+p3y8b8E=;
|
| 32 | fh=mbb85L8FZ404unHdLI+iF4ZFmTMGr6nZHIcfO/oKEvw=;
|
| 33 | b=0c8ndpLDPBOwZFnv/cS4Jq7WKrDe+E5pfeQvSMzpmBQnyQCuM4A1kVjtLtnmezYmBb
|
| 34 | FwKv+qTrH+qYcoDuDOhMc9q3xAU2PES61rIZZ6wCOxObyaI3I08j4Y717BOHqa6horAH
|
| 35 | yWxZwZ/AZVa3WjmYDVCGnYi1BVn2y7fDmeAP9Cm2eGBI96bqRZDFgI+ADa7grssNAyUP
|
| 36 | jY8IDHQXDbtIPR7YtOhvJQt9dkZrTuyGyz5hpeUbvxNvFj8uYJo2KOLsvbCBF7IVxj5+
|
| 37 | UxfiIJCu4qGBbz9nYGID0GXtK1+fJfRIk15S62z0pDULbeUHylcXJcXb3eMgWp9KtdnG
|
| 38 | 8+ug==;
|
| 39 | dara=google.com
|
| 40 | ARC-Authentication-Results: i=1; mx.google.com;
|
| 41 | dkim=neutral (body hash did not verify) [email protected]
|
| 42 | header.s=20230601 header.b=O+XtIIZD;
|
| 43 | spf=pass (google.com: domain of [email protected]
|
| 44 | designates 79.124.17.100 as permitted sender)
|
| 45 | [email protected];
|
| 46 | dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
|
| 47 | Return-Path: <[email protected]>
|
| 48 | Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100])
|
| 49 | by mx.google.com with ESMTP id
|
| 50 | w18-20020a056402269200b00571b9f2bd09si7128266edd.34.2024.05.08.00.13.14;
|
| 51 | Wed, 08 May 2024 00:13:14 -0700 (PDT)
|
| 52 | Received-SPF: pass (google.com: domain of [email protected]
|
| 53 | designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100;
|
| 54 | Authentication-Results: mx.google.com;
|
| 55 | dkim=neutral (body hash did not verify) [email protected]
|
| 56 | header.s=20230601 header.b=O+XtIIZD;
|
| 57 | spf=pass (google.com: domain of [email protected]
|
| 58 | designates 79.124.17.100 as permitted sender)
|
| 59 | [email protected];
|
| 60 | dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com
|
| 61 | Received: from [127.0.1.1] (localhost [127.0.0.1])
|
| 62 | by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ED92D68D4CA;
|
| 63 | Wed, 8 May 2024 10:13:10 +0300 (EEST)
|
| 64 | X-Original-To: [email protected]
|
| 65 | Delivered-To: [email protected]
|
| 66 | Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com
|
| 67 | [209.85.167.44])
|
| 68 | by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0F82168D48B
|
| 69 | for <[email protected]>; Wed, 8 May 2024 10:13:04 +0300 (EEST)
|
| 70 | Received: by mail-lf1-f44.google.com with SMTP id
|
| 71 | 2adb3069b0e04-51fea3031c3so5148511e87.0
|
| 72 | for <[email protected]>; Wed, 08 May 2024 00:13:04 -0700 (PDT)
|
| 73 | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
| 74 | d=gmail.com; s=20230601; t=1715152383; x=1715757183; darn=ffmpeg.org;
|
| 75 | h=content-transfer-encoding:mime-version:message-id:date:subject:cc
|
| 76 | :to:from:from:to:cc:subject:date:message-id:reply-to;
|
| 77 | bh=ffXg2XQu2Z246T8u+pR5mw8scM+kCnRnc2DEIwGVp5Y=;
|
| 78 | b=O+XtIIZD3mEw83APJDrBeFsRuzwVt3Kyyg3FuAhCXFxtdsjvkBCUAr7QxcnMv6WelI
|
| 79 | 9waHWdeZ3Gr3gKWpesLlrvATXFJ0NXsZu78H9ddX0YWj/zrCU3bafwiQw8YqmuSxvQku
|
| 80 | tt2FxjepsnsddQ4Rd9xQQbixME7L88FlPIc5cUbSLO6kWAHWg4yrZ83OgHyoX3y+9tRE
|
| 81 | cAZq2q+ieBkSd58/Fi/bIad1FrvE2rHNjD2eC0z84uNjH46OiynFFdJZMBvwEoydjAYs
|
| 82 | FPch8HkUBtEcMFbY772efPUD1fUua4ZoJYkMJsU9wweRXf6fzWVs144L8UzMXffVJF7V
|
| 83 | /CuA==
|
| 84 | X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
|
| 85 | d=1e100.net; s=20230601; t=1715152383; x=1715757183;
|
| 86 | h=content-transfer-encoding:mime-version:message-id:date:subject:cc
|
| 87 | :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
|
| 88 | :reply-to;
|
| 89 | bh=ffXg2XQu2Z246T8u+pR5mw8scM+kCnRnc2DEIwGVp5Y=;
|
| 90 | b=WORFsv2dMz6yM+ahOJTkfqEjGb37TOSJqIw2Nl55aCSFQOKvma/C8aKz4A1UlIeD6Y
|
| 91 | 2QYcGwrGFxynBdkMT9+Sl1fZyhOdcYpYQwFMFtCvLJxUFlDWujzhk4lVjO/XSqJJMV1E
|
| 92 | rnMWVOlrkIuwmPnpa6yK8c+10Sq3stzeeOL2+oFcYVWZE6kQhEdEvFyCGAsdhNH0gDlm
|
| 93 | LwdTocOaNoI42/FrGVexOMgdRBEpfkrvPJILJR3AFDCwCJD0nFFx5lOh+soX09XC8l7Q
|
| 94 | RzaoeGq8qE2OR7TZKOBJiAXKPLFdAUm9Y1DNmS2jW5U3ndmVH/K7C3GbPfOGbICYcle6
|
| 95 | bpHg==
|
| 96 | X-Gm-Message-State: AOJu0YxS6mZKvl8CFJt92+Sq4Bu0Q1qCEj4mRz+D6PCG+tLwamYoFb78
|
| 97 | 7SVtiAxsN4Dvyx9PVifcgIXTj1m0AYmwl2tkchF4F+m3SH+lQHxh6Q6bpA==
|
| 98 | X-Received: by 2002:ac2:4a71:0:b0:519:e878:9385 with SMTP id
|
| 99 | 2adb3069b0e04-5217c5671a9mr1284790e87.18.1715152382619;
|
| 100 | Wed, 08 May 2024 00:13:02 -0700 (PDT)
|
| 101 | Received: from mitsuki.. (ip-78-45-35-87.bb.vodafone.cz. [78.45.35.87])
|
| 102 | by smtp.gmail.com with ESMTPSA id
|
| 103 | t16-20020a170906609000b00a59d7505366sm2872828ejj.62.2024.05.08.00.13.02
|
| 104 | (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
|
| 105 | Wed, 08 May 2024 00:13:02 -0700 (PDT)
|
| 106 | From: David Rosca <[email protected]>
|
| 107 | To: [email protected]
|
| 108 | Date: Wed, 8 May 2024 09:11:11 +0200
|
| 109 | Message-ID: <[email protected]>
|
| 110 | X-Mailer: git-send-email 2.45.0
|
| 111 | MIME-Version: 1.0
|
| 112 | Subject: [FFmpeg-devel] [PATCH v2 1/2] lavc/vaapi_decode: Make it possible
|
| 113 | to send multiple slice params buffers
|
| 114 | X-BeenThere: [email protected]
|
| 115 | X-Mailman-Version: 2.1.29
|
| 116 | Precedence: list
|
| 117 | List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
|
| 118 | List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
|
| 119 | <mailto:[email protected]?subject=unsubscribe>
|
| 120 | List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
|
| 121 | List-Post: <mailto:[email protected]>
|
| 122 | List-Help: <mailto:[email protected]?subject=help>
|
| 123 | List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
|
| 124 | <mailto:[email protected]?subject=subscribe>
|
| 125 | Reply-To: FFmpeg development discussions and patches <[email protected]>
|
| 126 | Cc: David Rosca <[email protected]>
|
| 127 | Errors-To: [email protected]
|
| 128 | Sender: "ffmpeg-devel" <[email protected]>
|
| 129 | X-TUID: CXdjf/rnNjyo
|
| 130 |
|
| 131 | ---
|
| 132 | v2: No changes
|
| 133 |
|
| 134 | libavcodec/vaapi_av1.c | 2 +-
|
| 135 | libavcodec/vaapi_decode.c | 3 ++-
|
| 136 | libavcodec/vaapi_decode.h | 1 +
|
| 137 | libavcodec/vaapi_h264.c | 2 +-
|
| 138 | libavcodec/vaapi_hevc.c | 4 ++--
|
| 139 | libavcodec/vaapi_mjpeg.c | 2 +-
|
| 140 | libavcodec/vaapi_mpeg2.c | 2 +-
|
| 141 | libavcodec/vaapi_mpeg4.c | 2 +-
|
| 142 | libavcodec/vaapi_vc1.c | 2 +-
|
| 143 | libavcodec/vaapi_vp8.c | 2 +-
|
| 144 | libavcodec/vaapi_vp9.c | 2 +-
|
| 145 | 11 files changed, 13 insertions(+), 11 deletions(-)
|
| 146 |
|
| 147 | diff --git a/libavcodec/vaapi_av1.c b/libavcodec/vaapi_av1.c
|
| 148 | index 1f563483b9..4a90db1e09 100644
|
| 149 | |
| 150 | |
| 151 | @@ -409,7 +409,7 @@ static int vaapi_av1_decode_slice(AVCodecContext *avctx,
|
| 152 | .tg_end = s->tg_end,
|
| 153 | };
|
| 154 |
|
| 155 | - err = ff_vaapi_decode_make_slice_buffer(avctx, pic, &slice_param,
|
| 156 | + err = ff_vaapi_decode_make_slice_buffer(avctx, pic, &slice_param, 1,
|
| 157 | sizeof(VASliceParameterBufferAV1),
|
| 158 | buffer,
|
| 159 | size);
|
| 160 | diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c
|
| 161 | index 21b273cd0f..8e9f647c20 100644
|
| 162 | |
| 163 | |
| 164 | @@ -63,6 +63,7 @@ int ff_vaapi_decode_make_param_buffer(AVCodecContext *avctx,
|
| 165 | int ff_vaapi_decode_make_slice_buffer(AVCodecContext *avctx,
|
| 166 | VAAPIDecodePicture *pic,
|
| 167 | const void *params_data,
|
| 168 | + int nb_params,
|
| 169 | size_t params_size,
|
| 170 | const void *slice_data,
|
| 171 | size_t slice_size)
|
| 172 | @@ -88,7 +89,7 @@ int ff_vaapi_decode_make_slice_buffer(AVCodecContext *avctx,
|
| 173 |
|
| 174 | vas = vaCreateBuffer(ctx->hwctx->display, ctx->va_context,
|
| 175 | VASliceParameterBufferType,
|
| 176 | - params_size, 1, (void*)params_data,
|
| 177 | + params_size, nb_params, (void*)params_data,
|
| 178 | &pic->slice_buffers[index]);
|
| 179 | if (vas != VA_STATUS_SUCCESS) {
|
| 180 | av_log(avctx, AV_LOG_ERROR, "Failed to create slice "
|
| 181 | diff --git a/libavcodec/vaapi_decode.h b/libavcodec/vaapi_decode.h
|
| 182 | index 6beda14e52..702171e108 100644
|
| 183 | |
| 184 | |
| 185 | @@ -73,6 +73,7 @@ int ff_vaapi_decode_make_param_buffer(AVCodecContext *avctx,
|
| 186 | int ff_vaapi_decode_make_slice_buffer(AVCodecContext *avctx,
|
| 187 | VAAPIDecodePicture *pic,
|
| 188 | const void *params_data,
|
| 189 | + int nb_params,
|
| 190 | size_t params_size,
|
| 191 | const void *slice_data,
|
| 192 | size_t slice_size);
|
| 193 | diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
|
| 194 | index 55cf5a05ee..b47531ce1c 100644
|
| 195 | |
| 196 | |
| 197 | @@ -375,7 +375,7 @@ static int vaapi_h264_decode_slice(AVCodecContext *avctx,
|
| 198 | slice_param.chroma_offset_l1);
|
| 199 |
|
| 200 | err = ff_vaapi_decode_make_slice_buffer(avctx, pic,
|
| 201 | - &slice_param, sizeof(slice_param),
|
| 202 | + &slice_param, 1, sizeof(slice_param),
|
| 203 | buffer, size);
|
| 204 | if (err) {
|
| 205 | ff_vaapi_decode_cancel(avctx, pic);
|
| 206 | diff --git a/libavcodec/vaapi_hevc.c b/libavcodec/vaapi_hevc.c
|
| 207 | index 3bdd2dd1b8..3937b7574a 100644
|
| 208 | |
| 209 | |
| 210 | @@ -353,7 +353,7 @@ static int vaapi_hevc_end_frame(AVCodecContext *avctx)
|
| 211 | if (pic->last_size) {
|
| 212 | last_slice_param->LongSliceFlags.fields.LastSliceOfPic = 1;
|
| 213 | ret = ff_vaapi_decode_make_slice_buffer(avctx, &pic->pic,
|
| 214 | - &pic->last_slice_param, slice_param_size,
|
| 215 | + &pic->last_slice_param, 1, slice_param_size,
|
| 216 | pic->last_buffer, pic->last_size);
|
| 217 | if (ret < 0)
|
| 218 | goto fail;
|
| 219 | @@ -471,7 +471,7 @@ static int vaapi_hevc_decode_slice(AVCodecContext *avctx,
|
| 220 |
|
| 221 | if (!sh->first_slice_in_pic_flag) {
|
| 222 | err = ff_vaapi_decode_make_slice_buffer(avctx, &pic->pic,
|
| 223 | - &pic->last_slice_param, slice_param_size,
|
| 224 | + &pic->last_slice_param, 1, slice_param_size,
|
| 225 | pic->last_buffer, pic->last_size);
|
| 226 | pic->last_buffer = NULL;
|
| 227 | pic->last_size = 0;
|
| 228 | diff --git a/libavcodec/vaapi_mjpeg.c b/libavcodec/vaapi_mjpeg.c
|
| 229 | index 5b8d47bb2a..9557cf5f9b 100644
|
| 230 | |
| 231 | |
| 232 | @@ -131,7 +131,7 @@ static int vaapi_mjpeg_decode_slice(AVCodecContext *avctx,
|
| 233 | sp.components[i].ac_table_selector = s->ac_index[i];
|
| 234 | }
|
| 235 |
|
| 236 | - err = ff_vaapi_decode_make_slice_buffer(avctx, pic, &sp, sizeof(sp), buffer, size);
|
| 237 | + err = ff_vaapi_decode_make_slice_buffer(avctx, pic, &sp, 1, sizeof(sp), buffer, size);
|
| 238 | if (err)
|
| 239 | goto fail;
|
| 240 |
|
| 241 | diff --git a/libavcodec/vaapi_mpeg2.c b/libavcodec/vaapi_mpeg2.c
|
| 242 | index eeb4e87321..171a742c7f 100644
|
| 243 | |
| 244 | |
| 245 | @@ -162,7 +162,7 @@ static int vaapi_mpeg2_decode_slice(AVCodecContext *avctx, const uint8_t *buffer
|
| 246 | };
|
| 247 |
|
| 248 | err = ff_vaapi_decode_make_slice_buffer(avctx, pic,
|
| 249 | - &slice_param, sizeof(slice_param),
|
| 250 | + &slice_param, 1, sizeof(slice_param),
|
| 251 | buffer, size);
|
| 252 | if (err < 0) {
|
| 253 | ff_vaapi_decode_cancel(avctx, pic);
|
| 254 | diff --git a/libavcodec/vaapi_mpeg4.c b/libavcodec/vaapi_mpeg4.c
|
| 255 | index 363b686e42..612de10cd7 100644
|
| 256 | |
| 257 | |
| 258 | @@ -169,7 +169,7 @@ static int vaapi_mpeg4_decode_slice(AVCodecContext *avctx, const uint8_t *buffer
|
| 259 | };
|
| 260 |
|
| 261 | err = ff_vaapi_decode_make_slice_buffer(avctx, pic,
|
| 262 | - &slice_param, sizeof(slice_param),
|
| 263 | + &slice_param, 1, sizeof(slice_param),
|
| 264 | buffer, size);
|
| 265 | if (err < 0) {
|
| 266 | ff_vaapi_decode_cancel(avctx, pic);
|
| 267 | diff --git a/libavcodec/vaapi_vc1.c b/libavcodec/vaapi_vc1.c
|
| 268 | index 5594118a69..abbe877dd8 100644
|
| 269 | |
| 270 | |
| 271 | @@ -490,7 +490,7 @@ static int vaapi_vc1_decode_slice(AVCodecContext *avctx, const uint8_t *buffer,
|
| 272 | };
|
| 273 |
|
| 274 | err = ff_vaapi_decode_make_slice_buffer(avctx, pic,
|
| 275 | - &slice_param, sizeof(slice_param),
|
| 276 | + &slice_param, 1, sizeof(slice_param),
|
| 277 | buffer, size);
|
| 278 | if (err < 0) {
|
| 279 | ff_vaapi_decode_cancel(avctx, pic);
|
| 280 | diff --git a/libavcodec/vaapi_vp8.c b/libavcodec/vaapi_vp8.c
|
| 281 | index 31137a45bd..66fdde1f39 100644
|
| 282 | |
| 283 | |
| 284 | @@ -209,7 +209,7 @@ static int vaapi_vp8_decode_slice(AVCodecContext *avctx,
|
| 285 | for (i = 0; i < 8; i++)
|
| 286 | sp.partition_size[i+1] = s->coeff_partition_size[i];
|
| 287 |
|
| 288 | - err = ff_vaapi_decode_make_slice_buffer(avctx, pic, &sp, sizeof(sp), data, data_size);
|
| 289 | + err = ff_vaapi_decode_make_slice_buffer(avctx, pic, &sp, 1, sizeof(sp), data, data_size);
|
| 290 | if (err)
|
| 291 | goto fail;
|
| 292 |
|
| 293 | diff --git a/libavcodec/vaapi_vp9.c b/libavcodec/vaapi_vp9.c
|
| 294 | index b8e760c807..a28fc75a59 100644
|
| 295 | |
| 296 | |
| 297 | @@ -158,7 +158,7 @@ static int vaapi_vp9_decode_slice(AVCodecContext *avctx,
|
| 298 | }
|
| 299 |
|
| 300 | err = ff_vaapi_decode_make_slice_buffer(avctx, pic,
|
| 301 | - &slice_param, sizeof(slice_param),
|
| 302 | + &slice_param, 1, sizeof(slice_param),
|
| 303 | buffer, size);
|
| 304 | if (err) {
|
| 305 | ff_vaapi_decode_cancel(avctx, pic);
|