From patchwork Fri Sep 17 22:33:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 30317 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2620818iov; Fri, 17 Sep 2021 15:33:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxP7TaP8KFATkQg18+2M/Uq0bGDlbSmay74ZmgwkuZ5JMEPVMckfOLpQcNCRFNhp+qunl1H X-Received: by 2002:a05:6402:7d6:: with SMTP id u22mr15350694edy.156.1631918039214; Fri, 17 Sep 2021 15:33:59 -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 bs11si4700295ejb.438.2021.09.17.15.33.57; Fri, 17 Sep 2021 15:33:59 -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=R0CR8OdY; 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 39AA768AECF; Sat, 18 Sep 2021 01:33:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2055.outbound.protection.outlook.com [40.92.89.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DEB4A68A764 for ; Sat, 18 Sep 2021 01:33:47 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d3UH3mL+qNGx83PVARNdH9GyKMFAN/JqOxOkQTBpzklgzXpZyi10PKW28VoEsG/IwQ6a4ZQ35BY2l2ZogJVr+m7spW1H4eeJ60i/nJy/U59e9v0xZjT/oV0ZU/lTAgiL1U8ALMYtA2KuNrT91Wpe8nNvBdmiSDDf00N5BxHYKw86CIP+0r0QkGwalFWDa32uD4A6rAnUJhg2UQ3tcmi2Sd/ES5QNbC/Tp3jfdBlDHUquPecyI87VMKEYCfVasAZ/tsXz+3Zj9DQxDAwXa60MJPEDe6QApGUNgNdXC/JOYT+4EIEQqjA2ePQDvE3Yf2QIEO/JUCHGDT/jg3VifwG7Zg== 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; bh=FXO7Fd+mnzHITazyddfPMALudbbGE5yJTQEb/qklgvw=; b=T3ra88DNQYt41shTfo4OagU/Jm6fM3krjtBLJ++R5N1zfcLTnNk67FILfTu9pk1wq00dSbNrqVz1TrSTqI76/rVBpCA21CXLqOxv1+gK8a9ez0GPOKxzDHdOwpdgAtJOIfMuYhaOf5x+LzAsQm0/8odyAoPDwl2cvxjEVCR8Pbxd1aN+rd6C4hoKDtwOxMxltnaoSjzTqMoRYRxl0PQNDvZbArsDSH6JsGtfWOuYOE7o+Bp/qp21cIyFVd8BgVZ7cLuid9Fx75jCK1ra5IbVPyp5CZ9eTFiPtqgqY8gpNTOn8GKZA1oc0bBu803Hphb7BPSJlv2ypYW5fRT1Az2Zew== 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=FXO7Fd+mnzHITazyddfPMALudbbGE5yJTQEb/qklgvw=; b=R0CR8OdY+HDpac7fzinTzGwRnpsN4TP6rtdBUt56e3T70bQYhN659FOTR/2vaOFJ+RusUiGx2qa1AQgLJnLzx4eTU04bV2RMFwprPoCAIe6pxk8ZJ2EV8eyShGn+x4ROJupzn/w1LsEZZlwAH/FbhHsoFkMIm3ZQrolQhrfGPQheC41o6cbviB7NW2M04kMzbgtOTPebcVLw5DcM/7c6Km3+YMfHZbLk1NBZsgAapvogH8JqqwlhgcNGAhfoywLhD2pMnmYcNGlSbAB7zScOvp+WT8u2+ek+W8O2rQ1kAx/OM5sBcFpwMFuOvMAq2I5B/4Shxyg0cuOzr8kAjTDUJA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3528.eurprd03.prod.outlook.com (2603:10a6:209:35::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.16; Fri, 17 Sep 2021 22:33:45 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::787b:2156:ca99:fe00%3]) with mapi id 15.20.4523.016; Fri, 17 Sep 2021 22:33:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 18 Sep 2021 00:33:38 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [h6tGSiyAJeV1gf2yFtz7x/wIqC6LPiBP] X-ClientProxiedBy: AM3PR07CA0103.eurprd07.prod.outlook.com (2603:10a6:207:7::13) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210917223338.753900-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM3PR07CA0103.eurprd07.prod.outlook.com (2603:10a6:207:7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.9 via Frontend Transport; Fri, 17 Sep 2021 22:33:45 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 63a85684-f9f5-4f2a-e04a-08d97a2b35e2 X-MS-Exchange-SLBlob-MailProps: EpEO96k6Wol7u7rKrWAHjjSJ9nZufMJN08jQCnRnHLZE24poE7jW66Cz58u5eCtuM9omR3RVrnwDi/t6o+IBwZpB9SRHeZkCTJ/TgVIAGCc8DC78wWij+lS9dSWzlL5U43MLUcbtz0FS6wAis5c2VHT8XLUB4ALH5f6qhK71Q1aT0lH/wpq9Z7M+UZrOQDO/fG5vVnN2/ekuyLc3iRu0N+OwTc0nhcC8ztATGN75g+U1MHqOBDYoSgIyze2QTXJzrHyZmx6PFHGDqZy6zJafb/29yn9p0wDJBkNZxFS6dpGPOnr+kSqhbbnsQ1h7VWzM7oqi0mUjSk0AZricWSo/ByBL0NoOoPp7yC8OX3i7sWRh6KyDfHvi2K2q2T+h/uKOzSF5D0k3FyoYgnDOcl3xwM3GHjAtTl9twAuDGY1D8JG1IrNHM/2iqx2xB8vfkcHaSLndqTkXfo+CViRayR5Vw9TCx61T/wj4N13TfFiw7kHSBy8eex3kC4iZenIj6DPGigFzEBj5Nk3SDQyznIhekrnAuRIkT4XaNKUCNezeFc7MV4wiDdVMaD93YKrLxSG7eee7xV93zHmiQ/VLjqgnbQa4z9kEEZLbI/W1IqFkmwxRWuvQdKKKu2HkfVp1gOEBpDOxh/Ix25Es8bfrUAKQyKMMajN71D7rdH0wqe8Ci9KbwIipP/FqfcDChngmjYGLr2EOij/8kXSAO3KkD8xBFSeQgt+y1Ncv3iv+KIAhiZRT4nki7gQw8zovHp27QsaaiSxCAVqlXTY= X-MS-TrafficTypeDiagnostic: AM6PR03MB3528: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xbEHvYpCmTmzNVhQ43zV30afR4xdrXYZr0QtMNIZIDjfcBG+WCxY9V4xTrW2LuxQIyWMhqgeiI4RBAIu663i3MVOrIcuTmQKcCQGz82ROeVWtv7j3FHROjrSrl2kfI/uRixV1xvWt0gX7GygIpFCQm7Yoqu4JsDTwW4QOuS/dw6rcvFkcxrhU7aC9i9bXEOtG5WEZsoRcquQNa4vE7IrlA1t3od1pJjbcEuGQeyYc5jc1xnjm8JadywnGihiqmcqZRlVlQyQu9xJZn9uWD+l9m9sdVGDgeODvik7Au7rKu1NuvtUW+FfVhc7IPO4f159CNRZp4lOPf5PUZh8B9NR+AAk4BIGoFu29UOrf8lKbV7KzFLgBBU+7LvhGJwVXIWeK/Hi4cykKzNMJCuP20GDFBjUBhWX3zqxrUwnVO8GRkSFYbJSTujMAqxDMJ2OiCKF X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CCRIUa4x5J+w7fTYsjfRJvB2a+V41pNQchA/WglDmO5qMB/Il/Ci9xln60fRFOqOafucbsRI/n4U8p+a4Y2Fks3c42ceIEweAYTRzOuqYtgwOS+BAfYlJhhO8cv9fLbdEG/iqqhedA4Cncfe/em4gQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63a85684-f9f5-4f2a-e04a-08d97a2b35e2 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2021 22:33:45.8856 (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: AM6PR03MB3528 Subject: [FFmpeg-devel] [PATCH] avfilter/vf_zscale: Don't make assumptions about zimg's range enums 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: noCOjQuUizQc zimg's color range enum values are off-by-one compared to ours; therefore the code just adds one when converting from theirs to ours. Yet this is not how one should deal with enums; use a switch instead. Signed-off-by: Andreas Rheinhardt --- libavfilter/vf_zscale.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libavfilter/vf_zscale.c b/libavfilter/vf_zscale.c index 06a025e6e6..aff4e8c762 100644 --- a/libavfilter/vf_zscale.c +++ b/libavfilter/vf_zscale.c @@ -460,6 +460,17 @@ static int convert_range(enum AVColorRange color_range) return ZIMG_RANGE_LIMITED; } +static int convert_range_from_zimg(enum zimg_pixel_range_e color_range) +{ + switch (color_range) { + case ZIMG_RANGE_LIMITED: + return AVCOL_RANGE_MPEG; + case ZIMG_RANGE_FULL: + return AVCOL_RANGE_JPEG; + } + return AVCOL_RANGE_UNSPECIFIED; +} + static void format_init(zimg_image_format *format, AVFrame *frame, const AVPixFmtDescriptor *desc, int colorspace, int primaries, int transfer, int range, int location) { @@ -617,7 +628,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in) out->color_primaries = (int)s->dst_format.color_primaries; if (s->range != -1) - out->color_range = (int)s->dst_format.pixel_range + 1; + out->color_range = convert_range_from_zimg(s->dst_format.pixel_range); if (s->trc != -1) out->color_trc = (int)s->dst_format.transfer_characteristics; @@ -676,7 +687,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in) out->color_primaries = (int)s->dst_format.color_primaries; if (s->range != -1) - out->color_range = (int)s->dst_format.pixel_range + 1; + out->color_range = convert_range_from_zimg(s->dst_format.pixel_range); if (s->trc != -1) out->color_trc = (int)s->dst_format.transfer_characteristics;