From patchwork Tue Mar 22 12:34:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34887 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:ab0:5fda:0:0:0:0:0 with SMTP id g26csp671174uaj; Tue, 22 Mar 2022 05:34:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwo7mhvbbPkBnOWoFTeIJcJFM89RzbEQeH2+msXAtU2Q1c0U+o0Bbmc9BIJVpAwCFQY/zKl X-Received: by 2002:a17:907:7845:b0:6cd:f2f4:cf00 with SMTP id lb5-20020a170907784500b006cdf2f4cf00mr25580851ejc.388.1647952491209; Tue, 22 Mar 2022 05:34:51 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l26-20020a50d6da000000b004190205c28bsi10387869edj.401.2022.03.22.05.34.50; Tue, 22 Mar 2022 05:34:51 -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=@outlook.com header.s=selector1 header.b=DDoJwvKa; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 72EA568B022; Tue, 22 Mar 2022 14:34:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074023.outbound.protection.outlook.com [40.92.74.23]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2494368A920 for ; Tue, 22 Mar 2022 14:34:42 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=loSApYmdmBL/9HDXbrWuyfe7RNEXoekm311XPg1yo30ZKxej5MLGD3sI7uN0GkV/FOxveFknrPTLNKroxs6UmQXdgLJNr39xO20/Dz4VYB3Q9KkrlyHAvWyZign7CRDW1Jakq8tnYFK6MomKhWq0WsaGRq1f2sqobiu2o2zREftlyQtFuGYCDa97Rx8xsaue4EX8ody0+reGbZcIjXcRUOX85VEV6x0QVgKxSdFwwvTnEfZBcpwgjdj+FHHtiby620gq7rYoy7bnGBO4QUR1jdN8cqLttpfUfoNf8q3vuO06Ja/gPj/8/FCGOKEVkeXEylvWRQtLDKBolqRg37s+Cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=33p3B6OUa7YoQqHue1hjABoTkkB4HI4TXMTCit10uKI=; b=OdUfyX2X47fkrRdYp8R4kJm3AYL/tibbujEEunKLeZAjqUUDCYm8EfWgF5uQP7dqoq0u3TbyaFRFKqj4FJroQpD8tL92HE/jypVG+jR0jYzayM7ylpVLZHxGcHE7M7aEwiFxa8ul0arS0MX8lmPYvCywJHCAcB0Vls2NkGO294jire1VgSwyNX7LAnqkZCOqmS/i2ozp7T88fGbRorbFHj8Ldk5bPfxUUy9GK4lTR9oUPshKbCE59Q8de3LLbYwpl8lfJN4tled9mW8gnVZFRGxhZFdjAg/HnIEuDR0+9OZCVjauxovSf1gHiaQL3CCT6DRqvAKY9hbvNUPMOvk9Pg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=33p3B6OUa7YoQqHue1hjABoTkkB4HI4TXMTCit10uKI=; b=DDoJwvKa2z52JelM8ZC+YHXRW3qdIemg2p3fsyjVgbuwSiNmWXKF/H9bRO7su+SxbDLhgaRqLKONatQzkxc7iyaP90spT8LzVNZxN9omNqLlLR1nhEHvA3APJAbE1sKLrf3dxVglap+tJhISP5MK4mBFm3BPLH0Lfku/RkwnIxvQM7VqC/TR+uaLULrcha8pM5A5+M4Jr1iShyaJddMHYCpZ5Wt44HLHZDER8y8wkEahYEMWS9LJOTHvNhYj7rq8V8c6awt/4m9lGW8652Im7AJ0LFHFxxvmNoSUQF0mzQi/LgvVv/3HkYTbChdquLIgjpl+d6Quz5LbQDjCw3qLFA== Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) by DB7PR01MB4888.eurprd01.prod.exchangelabs.com (2603:10a6:10:28::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.16; Tue, 22 Mar 2022 12:34:40 +0000 Received: from AS1PR01MB9564.eurprd01.prod.exchangelabs.com ([fe80::9070:a5fd:e532:bdf8]) by AS1PR01MB9564.eurprd01.prod.exchangelabs.com ([fe80::9070:a5fd:e532:bdf8%3]) with mapi id 15.20.5081.022; Tue, 22 Mar 2022 12:34:40 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 22 Mar 2022 13:34:29 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [zyugzQRFg2wJtdycTrz2IBkr2Lbsfh5U] X-ClientProxiedBy: AM7PR02CA0022.eurprd02.prod.outlook.com (2603:10a6:20b:100::32) To AS1PR01MB9564.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d1::16) X-Microsoft-Original-Message-ID: <20220322123433.368717-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cc997e6a-0c18-48a5-634d-08da0c00559f X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTYoa8NShfDu+TcA5Kmc3q1VEj/cuSyGtshO/pY/qttIwQ313bbk8IOlgFmoaZRr7H/OfiM6Rotordxd3lPaJF1yof1hdsMVpfo3fCV5/YvsbSE10ffeqOc2fGq/Rv1ZhPmeMqnS8m8FpLxqlb0yo+9ogDG6Kq+Jpn5WTFRdCElgexPR5/t/t8Q/6m4bJuSsZf3ceek9Z21n5t627N9x+hUw7SMPIlqzeN27a5vXbhIzTkqtiWPKyguW1VrqBThz+4OmXCHoOTqf2a4eUuYyPgMN4ydsDZ/P54xXHQxZYfakl03o0lyDBx+W3sMft13+/vV8b42cGxI9DFJ3DMGDocz0DbRQJPieZ16wV2iB2ERGHh1mZKgIDvTvk5a58ViONJu/CLjR2cMQvAP7v/Q9NH54z907GcNodPaJ8th4qaDc7MsGCwrZ+bMxFuVl902D0T/tgul7WMhaK0KGPsTVkwcs4yDjgCGxPhxASsydzOeizJyS0b4EYJFDO8+pTkkoJLkUa/FGxuRVQXTBoJ9jkGNuM9omdl8UxmQldbeWS/qwJCZkks/yMcGBQvwM/8TVxTt7eB7qK43NHl3xSaHRHCeW/w42aiGJIAyCk/Kf3cxartYtiVNyc0ZTfdVlXKxY0MHj0YrCPNsaKa3X5qYd4s8BuRFxZI/HcPklPfcbFC99ZrxMEpIfUvcdc4terAFhIW2+tVeZUdxuurcDfrtjnMsvHTuQm1I0rIqJDPi1nAo9a2zx2sKGjrh1xApf0UlxG0= X-MS-TrafficTypeDiagnostic: DB7PR01MB4888:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nlMbYzlzFcM5ZHMwlcppE/JF/v3tJZY+UuB/Z1sF0dqk+6rOTSsQ7W0TyVZtdaKyfG3Ws7Tq0mbH4OvZ2Yv+r1UGSaItYnPTHfKcNhnOiOqdtBfxkTJijwx153f4q+Rzqk792C63W1LbTcQJY3nf/aArA13c4grumn1UNOnPy6VmEJ6YZh4V8bhq775vdERKRSeQJvGByBTaJrtEQykpEHToZSzsXx2p+JqPdsTFwnvYUuv1L+TyzjMDpncgdoxsrnAklxqVqQPXShW9RNZ5KQ4gy5PLl8q1hbDUIK/AKeXDj9p/PNnPbct7s+DzGOY9O8/57+RrmAerQfS4RSOAZcCoatVCR0N8scPqsb7GhJ1tbw1NDLZ5SvUV9TM39XL2YSjD8vb2l4zsl4+qhHbp1s25rbS8GNhHNgZTvAtzUnYXGDkhyPW+oWtdMsZW+uUmVWGAYDjzNcpG6z60TbU0h5D4ZU47bEZHf5FvJhS/0cWuy61sQUNdpqBYSN3d6QDkNLNaSDsjFKi1nzau+syrUa6CinC0VGQhFPLyapHg4Ex90W6XMXaUgndcihoX82iR4OVIFrcLRWP+BVVtSbG3fQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: RvNJang7cXNv0LD+3jcUMj+GkxqNnfDB4xkq9kf/w6nWxz4FgXP0AO6UPnrStmXeOnwqEh5Z2+UVtb3w3EArtb3QMhumL6qy0L7h+/FIpQxpA4Q7jYraJtuOmbpW7jxeOvCcuCp9lFFrCNOVwaa6di+YWZ+dZ+hWQ6r8V+PWyP060GjeOljshnpK8j6aqz6pO7LJLZxVw/ujfXYOK4Cu116VRAutJGddEPunrMAhrIIh/F0DbWZff7fmdPMOTKENP67PpZfSG+nnj2DC6f2kXPyC+c9jgemwrgcjQxWOeN/zVmIjuC7nDMHszMOM4rNinFUuUJyGeo9YLVhF4fnw6V+UAldLvXUOAHfs4nX2sysGA6BUNNrOzqf5/VZMesA+67R2FutOIrBWDUyTVYsdF/vKVVJdZf/v936P9rWxy71zsq9NwspaQmb0t8WYwOS499/yW8XiE1UZmVCR0y+Va1nPtB+jFcn92xPzFkTQ43SgCG7O/A9cuJIB3ASqk5/afHAit+Wz5KZocUjXI0Mg8Vjcqu8Oas4kfLcj+6qDA5SoJdSRDEzz1Uh49wK/BGUCeDKYevsrxHkRa0IqhKCFlWYMHuVg/yBSYRQqxjyLsLl0yFahRHQVkfZ1/amP2Yfh8G6ItFHR+q4A+A/kjo6BoCpzsSpIo0Q7AzeiFykGLWjRk9mtLJuCYPcDIpM2ihqxDvFkQi35PuDjgb0szSJtDXpxWixtxeEEbMm5BR/BKt1RN9qsIsaK3GTc9sZAOrICWolWbAtSL02Y44eWsb2Wd56KeY16dsK9vYtYRHJqtM+cp1GHQdJtxcoRnUFkTUAQZEiMgObztUaqObK5LoAcMWj3nqDMvXtfQaYvKZC8MVaUuzy/MymXecXV5DCPQa97lv5XHVvTZ3cU4WuaZFtrzjn68m8rGOKw9zZ4n+MPSjC3OwAhmfm3PPffdKKZ1hSkighLA9X2rMm7x6l5jKDGCAJTdnb1BIRmrOiZE5IcYj+d8TXPUyh8nphtyCNDjBfJ/zfgcdA8aJaN99o2LOm0YtJhshhPZVN2qjYH6B3JD1rRtm75nPJWjGtcENfCtt8/KnA2pcWpzD6pD0I+DoaDe3kYa8L3WOxzUbz+aJNIFSN1V8KGQPogdtwmJfYQlgf75HC6KU52k7pLcbHhCod1vfO5nLU2DLo1rvRhuVdhpXs= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc997e6a-0c18-48a5-634d-08da0c00559f X-MS-Exchange-CrossTenant-AuthSource: AS1PR01MB9564.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2022 12:34:40.5513 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR01MB4888 Subject: [FFmpeg-devel] [PATCH 2/6] avfilter/qp_table: Stop using FF_QSCALE_TYPE_* 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: qoNMbu8fm7o3 All FF_QSCALE_TYPE values used by libavfilter originate from libavfilter (namely from ff_qp_table_extract()); no value is exchanged between libavcodec and libavutil. The values that are exchanged (and used in libavfilter) are of type enum AVVideoEncParamsType. Therefore this patch stops using said FF_QSCALE_TYPE_* in libavfilter and uses enum AVVideoEncParamsType directly. Signed-off-by: Andreas Rheinhardt --- libavfilter/qp_table.c | 7 ++----- libavfilter/qp_table.h | 11 ++++++----- libavfilter/vf_codecview.c | 3 ++- libavfilter/vf_fspp.h | 3 ++- libavfilter/vf_pp7.h | 3 ++- libavfilter/vf_spp.h | 3 ++- libavfilter/vf_uspp.c | 3 ++- 7 files changed, 18 insertions(+), 15 deletions(-) diff --git a/libavfilter/qp_table.c b/libavfilter/qp_table.c index 33812b708d..8137dc019f 100644 --- a/libavfilter/qp_table.c +++ b/libavfilter/qp_table.c @@ -18,9 +18,6 @@ #include -// for FF_QSCALE_TYPE_* -#include "libavcodec/internal.h" - #include "libavutil/frame.h" #include "libavutil/mem.h" #include "libavutil/video_enc_params.h" @@ -28,7 +25,7 @@ #include "qp_table.h" int ff_qp_table_extract(AVFrame *frame, int8_t **table, int *table_w, int *table_h, - int *qscale_type) + enum AVVideoEncParamsType *qscale_type) { AVFrameSideData *sd; AVVideoEncParams *par; @@ -55,7 +52,7 @@ int ff_qp_table_extract(AVFrame *frame, int8_t **table, int *table_w, int *table if (table_h) *table_h = mb_h; if (qscale_type) - *qscale_type = FF_QSCALE_TYPE_MPEG2; + *qscale_type = par->type; if (par->nb_blocks == 0) { memset(*table, par->qp, nb_mb); diff --git a/libavfilter/qp_table.h b/libavfilter/qp_table.h index 169a7a7fea..4407bacb0e 100644 --- a/libavfilter/qp_table.h +++ b/libavfilter/qp_table.h @@ -22,23 +22,24 @@ #include #include "libavutil/frame.h" -#include "libavcodec/internal.h" +#include "libavutil/video_enc_params.h" /** * Extract a libpostproc-compatible QP table - an 8-bit QP value per 16x16 * macroblock, stored in raster order - from AVVideoEncParams side data. */ int ff_qp_table_extract(AVFrame *frame, int8_t **table, int *table_w, int *table_h, - int *qscale_type); + enum AVVideoEncParamsType *qscale_type); /** * Normalize the qscale factor + * FIXME Add support for other values of enum AVVideoEncParamsType + * besides AV_VIDEO_ENC_PARAMS_MPEG2. */ -static inline int ff_norm_qscale(int qscale, int type) +static inline int ff_norm_qscale(int qscale, enum AVVideoEncParamsType type) { switch (type) { - case FF_QSCALE_TYPE_MPEG1: return qscale; - case FF_QSCALE_TYPE_MPEG2: return qscale >> 1; + case AV_VIDEO_ENC_PARAMS_MPEG2: return qscale >> 1; } return qscale; } diff --git a/libavfilter/vf_codecview.c b/libavfilter/vf_codecview.c index aac038edef..cddb3e5368 100644 --- a/libavfilter/vf_codecview.c +++ b/libavfilter/vf_codecview.c @@ -227,7 +227,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) AVFilterLink *outlink = ctx->outputs[0]; if (s->qp) { - int qstride, qp_type, ret; + enum AVVideoEncParamsType qp_type; + int qstride, ret; int8_t *qp_table; ret = ff_qp_table_extract(frame, &qp_table, &qstride, NULL, &qp_type); diff --git a/libavfilter/vf_fspp.h b/libavfilter/vf_fspp.h index 6623af450c..ee7de3ffef 100644 --- a/libavfilter/vf_fspp.h +++ b/libavfilter/vf_fspp.h @@ -23,6 +23,7 @@ #ifndef AVFILTER_FSPP_H #define AVFILTER_FSPP_H +#include "libavutil/video_enc_params.h" #include "avfilter.h" #define BLOCKSZ 12 @@ -61,7 +62,7 @@ typedef struct FSPPContext { int vsub; int temp_stride; int qp; - int qscale_type; + enum AVVideoEncParamsType qscale_type; int prev_q; uint8_t *src; int16_t *temp; diff --git a/libavfilter/vf_pp7.h b/libavfilter/vf_pp7.h index 9aa8d732c1..b7cbb020bb 100644 --- a/libavfilter/vf_pp7.h +++ b/libavfilter/vf_pp7.h @@ -22,6 +22,7 @@ #ifndef AVFILTER_PP7_H #define AVFILTER_PP7_H +#include "libavutil/video_enc_params.h" #include "avfilter.h" typedef struct PP7Context { @@ -30,7 +31,7 @@ typedef struct PP7Context { int qp; int mode; - int qscale_type; + enum AVVideoEncParamsType qscale_type; int hsub; int vsub; int temp_stride; diff --git a/libavfilter/vf_spp.h b/libavfilter/vf_spp.h index 76c0c34ab2..0a8b2b512e 100644 --- a/libavfilter/vf_spp.h +++ b/libavfilter/vf_spp.h @@ -22,6 +22,7 @@ #ifndef AVFILTER_SPP_H #define AVFILTER_SPP_H +#include "libavutil/video_enc_params.h" #include "libavcodec/avdct.h" #include "avfilter.h" @@ -33,7 +34,7 @@ typedef struct SPPContext { int log2_count; int qp; int mode; - int qscale_type; + enum AVVideoEncParamsType qscale_type; int temp_linesize; uint8_t *src; uint16_t *temp; diff --git a/libavfilter/vf_uspp.c b/libavfilter/vf_uspp.c index c61a2a0705..051de00771 100644 --- a/libavfilter/vf_uspp.c +++ b/libavfilter/vf_uspp.c @@ -32,6 +32,7 @@ #include "libavutil/mem_internal.h" #include "libavutil/opt.h" #include "libavutil/pixdesc.h" +#include "libavutil/video_enc_params.h" #include "libavcodec/avcodec.h" #include "internal.h" #include "qp_table.h" @@ -45,7 +46,7 @@ typedef struct USPPContext { int log2_count; int hsub, vsub; int qp; - int qscale_type; + enum AVVideoEncParamsType qscale_type; int temp_stride[3]; uint8_t *src[3]; uint16_t *temp[3];