From patchwork Mon Aug 2 15:39:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29192 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:6c0f:0:0:0:0:0 with SMTP id a15csp1680189ioh; Mon, 2 Aug 2021 08:41:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmNigjGlh9QzLZhmfwp9+DVhFCYpjMmxyXZC6HUYT7kZMT9QfeDcwmQrfoQKdjUpds+Mfj X-Received: by 2002:a05:6402:34c8:: with SMTP id w8mr19937570edc.182.1627918863695; Mon, 02 Aug 2021 08:41:03 -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 um11si10589405ejb.419.2021.08.02.08.41.03; Mon, 02 Aug 2021 08:41:03 -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=QkHUKK1T; 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 772AE68A000; Mon, 2 Aug 2021 18:39:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2045.outbound.protection.outlook.com [40.92.91.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A1E48689CDF for ; Mon, 2 Aug 2021 18:39:46 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GruvoMnrBWEWGtFv16Lnv2WwvlkMkerOv/FJtzYSty7Tf4ZjHPInOZQrW/q29kCeQZF2KXpRhAA7k+2+/Ab+lV9Ze6p98kux/hrKwPcmk08jw381RAI+Sb5a6Jxa7Zn6lHOg2GN6CUU6r2X3CYURU6cRDI8HiKRivUgLYrGm4AER60ZJbDfKJCLJi8e9RNWDp3cU5IcOW+tPffsexV8/WxHIVBnQ99CfdfeU2QNL5UpbyOc361aknTJdzx0hQqfQQu+VevJDsFPJijgtvYI8wwQ2rG9bNvRZmazunSydwb0Ul+wMXJYuKaVzxZIIGa/xAuRJtPTmgIPzm5tX6bP0aA== 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-SenderADCheck; bh=NX4Z0EONwNjI/Z5TXQ8Bc/zQLIddby1deP+wpv2XFdg=; b=FKOH2RaKiCiF5d8N7esd4HDBXWL5o5RLrjYSfMJUGfqap1qxAIxqoOf88iPRCDt+eHAIwzmv0n1gz9cZhZTgI+BnmFOTfXfuNVn7C+Vi5vKkKoa7LYB6ptiG7GaKBeONRPNsCwAfkJVv7967xBA/cvK6nAbNXzzkZ8Ku1ilr/dfNLu6BIMVIECqFYwLnjGaichoQfpaWzVIC7sm5Jpj+IPhQ+sTe6IRZIM/V1LF6jU2xvfxoCKcjZunO/o+IeKYMb5z+EokR/SJsrd4poio0CnU/QbP+2nx8E7zDeEeZU8G/c7csJhXtj6ZNOHCkAACUlkR9W2lVVnJ9Yr26Lot4mA== 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=NX4Z0EONwNjI/Z5TXQ8Bc/zQLIddby1deP+wpv2XFdg=; b=QkHUKK1TnulTp6b4iGYqx04iP4Pf7lhRHbTgOA1+MSUAMvov84PBbU37/iwCahAX/v3HVngTQ1ETo+l0NuKP//op8u866VNdWwPnHID+eFfowLQZIgOsnxSW1HJehf50M4daQ13FTuwkJK8njf92wE75yF2kUaCGRfFL0dTBOayq1YltwWK6O6fXTUBZ7Y6vUv+1T0ukkPIUTOrsKgPkYQFOBjzhWDDXic20eW59Ed7xYR2s9T6D7rxblpG7xOcmMh2k/fXEFvNhfon8vrSOcP8eIhhgAlKw3A2cGDHuavILenIVMNfRJP+45ulxwEQFTw6fJd9ofZ+8f5WM5K2iqA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM5PR03MB3092.eurprd03.prod.outlook.com (2603:10a6:206:19::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.19; Mon, 2 Aug 2021 15:39:36 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::c9b2:14f8:d555:6f2d]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::c9b2:14f8:d555:6f2d%8]) with mapi id 15.20.4373.026; Mon, 2 Aug 2021 15:39:36 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 2 Aug 2021 17:39:11 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [LNLvKwyM9uWQhZgt6DR/AOiSqtY7ko2/] X-ClientProxiedBy: PR3P193CA0056.EURP193.PROD.OUTLOOK.COM (2603:10a6:102:51::31) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210802153915.1234499-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.94.230) by PR3P193CA0056.EURP193.PROD.OUTLOOK.COM (2603:10a6:102:51::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4352.31 via Frontend Transport; Mon, 2 Aug 2021 15:39:36 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9864c374-1cf9-48e9-6390-08d955cbbb89 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNUytrrqT4o9623wQ4EiyPTqpcU2deAY/K8cdAxQU/+e4VHjn4FM044ARXEZ8quuCX2570Bz8sQX/uj1ypPnvNqyokhR0leaKZDQ8SOVIddq/HEqjODL+m3lsnssnP0S4nYD9ukVfBlQ0IUM0099MBTKm/ttOfR5Cl6w5mqRi7jqjTu49eTPEhOImlrbwZNNIa9+IEfEP8DVmWDEJvERIUWHwTG3L+inFgv6x5xwCWS0O/ZIhUZHUsm8GkKxNZq2IOFvsH7yFSnyyn5D1T+QzBunnm5r5g7oYzNFL2wOnK5I8htShpQP3m/LWQ7wVJPuuU4SHwxDKxGul+hmnxyx/9zanMTUhew+arpdcXyA5JdZET69LQnoiPGBNV+JOdMzi5CZw7+tnFGjb76weyTAHQVZXfM676ejfVV1adRy/bD5NR2SC4jWeRY1IcuIK+XbEtThWlY0VlWo+5jg0AUptQCvzfGQEre0WlNeg1WfqW9RGH9wtm1vvcrMuxOnJF/j893zVRlsl80/7NQDSwIwdVlUpK008XuaGtumzRk4es8FidCTIwjXgmqEAXXu7kDJ5NYVQZWitKS0I3PF5Rn4Ew2iMx87se11Av9dpMtZrerjXb++Qtqxu4fvlU1wMUlAqTg8d4DvyzrGYvU9lJsHRy39GlBV2g0vdZSTLFIYAH7vG355j9XyrzH6lJ2b1OhnhNpm2MgDB7Nd2Oz+iFkt7xcuHhH0A8Z/0/g= X-MS-TrafficTypeDiagnostic: AM5PR03MB3092: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QYXDexrhqNVXlSVPqjAANXlTvPoMUp8EMEsrT6s4SCk2w0oJzPcqOZhpQEo7fjaeWCLCZBzj8ciAXi9AFaAW7xjCVb9S29xieF2cY29ml03ETSj7eQnuiVSTMR8JTxjhcXCUlLe1gejFAc0PSMSb4c7bK2L9PZnebCzAVS2GMqM069spqz3I+kIfzkULrMFJGz+6TyWlxGuPMjoPmuWOtuTFsnzKmjHrA5ZsCp8QqNUaukuQdnpEPIq+fY4S6R0WWIQjZ1j8M/w9WY5A/faApkTUKJIpuatK7PeCds7AjGQFiKvhdDvawqPIK8WJvUmYkXK8u7WFPzfaaCoF3kdbAweuO9mw4EtjCYa+S+DsIbmT6ae9YI6avWT4BmboAcVWEfQpwnWbE6Zxf2tpqFiU3hmBVluogHbmg8auVNm8W6uKy+UZfWK8KaHb+q837sm0 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: GYdTSDGy41wBJyV7esC4McPJTWaifdHNr2RVgNllzPqg5a+rBnk0vxXIe7K6Z8nTkmtKJL6aC+uEEXrle1iZp9ZRv5RQyubukmlSEdHbB1oPNsonoQdqBm3Btag47CNjbWqn6jzWECWSbNvdorm0mQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9864c374-1cf9-48e9-6390-08d955cbbb89 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2021 15:39:36.4582 (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: AM5PR03MB3092 Subject: [FFmpeg-devel] [PATCH 06/10] avfilter/internal: Move ff_norm_qscale() to qp_table.h 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: OPtBwFjrL9HT It is the natural header for it. Signed-off-by: Andreas Rheinhardt --- libavfilter/internal.h | 16 ---------------- libavfilter/qp_table.h | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/libavfilter/internal.h b/libavfilter/internal.h index 1bcfb830a1..61a1279b2f 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -343,22 +343,6 @@ void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter */ int ff_filter_graph_run_once(AVFilterGraph *graph); -/** - * Normalize the qscale factor - * FIXME the H264 qscale is a log based scale, mpeg1/2 is not, the code below - * cannot be optimal - */ -static inline int ff_norm_qscale(int qscale, int type) -{ - switch (type) { - case FF_QSCALE_TYPE_MPEG1: return qscale; - case FF_QSCALE_TYPE_MPEG2: return qscale >> 1; - case FF_QSCALE_TYPE_H264: return qscale >> 2; - case FF_QSCALE_TYPE_VP56: return (63 - qscale + 2) >> 2; - } - return qscale; -} - /** * Get number of threads for current filter instance. * This number is always same or less than graph->nb_threads. diff --git a/libavfilter/qp_table.h b/libavfilter/qp_table.h index a552fe2e64..4758ee8538 100644 --- a/libavfilter/qp_table.h +++ b/libavfilter/qp_table.h @@ -22,6 +22,7 @@ #include #include "libavutil/frame.h" +#include "libavcodec/internal.h" /** * Extract a libpostproc-compatible QP table - an 8-bit QP value per 16x16 @@ -30,4 +31,20 @@ int ff_qp_table_extract(AVFrame *frame, int8_t **table, int *table_w, int *table_h, int *qscale_type); +/** + * Normalize the qscale factor + * FIXME the H264 qscale is a log based scale, mpeg1/2 is not, the code below + * cannot be optimal + */ +static inline int ff_norm_qscale(int qscale, int type) +{ + switch (type) { + case FF_QSCALE_TYPE_MPEG1: return qscale; + case FF_QSCALE_TYPE_MPEG2: return qscale >> 1; + case FF_QSCALE_TYPE_H264: return qscale >> 2; + case FF_QSCALE_TYPE_VP56: return (63 - qscale + 2) >> 2; + } + return qscale; +} + #endif // AVFILTER_QP_TABLE_H