From patchwork Fri Feb 18 14:45:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 34382 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:d078:0:0:0:0 with SMTP id x24csp994572nkx; Fri, 18 Feb 2022 06:46:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJwf3+Gur5Xa+WPMn9VtNysAFOjYXyTLXKqy6vUQ/0HOci6uf3SMcCE03Nap5qbbS6qar4LO X-Received: by 2002:a17:906:858e:b0:6cf:d198:37a1 with SMTP id v14-20020a170906858e00b006cfd19837a1mr6442587ejx.545.1645195560977; Fri, 18 Feb 2022 06:46:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645195560; cv=none; d=google.com; s=arc-20160816; b=zfoyVMVBuqfj/lHalXpfyxGhLdabg0peZ2LTRRFBRkxkLzhI6SM2sc1t8IgTegYlOH 13Gv4qFqUBAL7XvcHHl8PMlbgN5MKh0iMjAcBnSpF8NdOKGe2RideP/7XXVpG0yTl+T4 xCre1erBmN+RSKveXf7MKpyWee0RZiBhOIphj+CG8BkZysHfYpzAwVRj8hiZDnj8eMTQ NyGdXrXkwGBkJ3pesH9+EUuFnSvydUKb+IRpzJEf3aiTCNDsdUR5BMytC1ahb4CjyXsZ BzW4lI53MmaCTE7fLFsQcopl88RND8cJjABLHxiYjFytu5AYP3UQGgZJz/HC8m/8YIcQ Oc7A== 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:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=CZY2mzbLTT3fUpPGdbaTZYEZvYp0tjZVB3KoXagIWMw=; b=A8h6q29bpTXSjUNI6b0ixTSp/hrpv92RnPEAHNQ7xaC3FbmHBC/2J6U65Fb83CZvK7 FZ80RIi+v0FD/KrVMiotHU0Re0sc++Fr3NPIDXlTulK9dDoel8BdIi+ebduHApGSzZ8Y QE6bMzHHv+yQwlB//ShM335saQSFotn9mA527SIisA1/pSdWKkwg4N05Ts0fUNSkZIb+ llzie1b0vyaoM1U6arI7qIK0RqAIeNuKuigiaLwIUNl8SNgiaXE2QEzPnPRcV6mac40d N4WpXN5ER+1EZKu9bnEBL8TFSgOQOTZP1QSg/NacYpaFeobrVmmQJRXEfhEwJTJpvzpI gEMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=7x3Bhu+O; 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 s5si3788721ejs.777.2022.02.18.06.46.00; Fri, 18 Feb 2022 06:46:00 -0800 (PST) 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=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=7x3Bhu+O; 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 E810F68B10A; Fri, 18 Feb 2022 16:45:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B6CCE68AFC2 for ; Fri, 18 Feb 2022 16:45:49 +0200 (EET) Received: by mail-wm1-f41.google.com with SMTP id w13so4919614wmi.2 for ; Fri, 18 Feb 2022 06:45:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20210112.gappssmtp.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=wdYNibpdBbTd4yRRlRvJZAKIbFhgNpHpBenYflhK7HY=; b=7x3Bhu+O3lCco27FcEVD+ixgtJNjGhsnsPHyEqSN5w5Z4naTezn32wcWfKpGCRTZ8Z Om5gpT2/SJIDojXKE2b2+bal3sFCLRAyhOdPD6k4hkvkf9rrGKCPd9/twR5CF9s4jCQ3 qkMyyJrCl+YRRp4yCLllNDZkcovjo4R8jsSyye2lzCc1Nu6LVTcOGwrvgIr06RyjU8dQ OYWvZsnV6tW8v0gh+bmJB3dUdZLkKAbTZii6L2XQdU1K/NpPezrt+3m3B83mWTcGOCHj 82K165TSFz6VTs7gzjMlJTae8d76AYySl2hx5lhU9j7/ZIZxsHnhP2xTSQ3upM5EzZYR cvfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=wdYNibpdBbTd4yRRlRvJZAKIbFhgNpHpBenYflhK7HY=; b=mM4Da2LZBUHPumHKXES+nDlYVw0haqMHucei7G5CYxge6uHKyQHnb621HEZ+1xEwrI rVWBDCH9x3PS8S9E5TeTr048/a4rJXPjnaAtlF1OIAqIMyEY62ZaP3BTOsRJFE7FvFxW qNXd4CII64UOti7CJSCO5YtITYUL4M6DLsOjBZKmBu5r4doubvdd98HBgZI+07FnysZC GS8Rcaqfv1QuCGzFsriJ0FzHdxLEzN/UMBfPyS2iT9r/cMZ6YrxVt6VliciHXJWILqrW BcV84ea7RYNG01CT7h/xrTQL7InyoyOYX8WBu0szZIYEWLSSohBcYFJQYNekvXZ+OrNW gf1w== X-Gm-Message-State: AOAM532GcLF5NXlkQt254Ax3FlXVVe+Z+pEzNxUvO7nlL31TePfPxjzr 7uzas24M4IHYFwxzsyFGPCpvsEmi17g+2qWx X-Received: by 2002:a05:600c:4010:b0:346:e0d6:8781 with SMTP id i16-20020a05600c401000b00346e0d68781mr11021732wmm.4.1645195548675; Fri, 18 Feb 2022 06:45:48 -0800 (PST) Received: from localhost (host-97-187.parnet.fi. [77.234.97.187]) by smtp.gmail.com with ESMTPSA id 1sm18979471wrz.75.2022.02.18.06.45.47 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 18 Feb 2022 06:45:47 -0800 (PST) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 18 Feb 2022 16:45:46 +0200 Message-Id: <20220218144546.43231-1-martin@martin.st> X-Mailer: git-send-email 2.32.0 (Apple Git-132) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] swscale: Take the destination range into account for yuv->rgb->yuv conversions 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: vyOtlU1AjBz9 The range parameters need to be set up before calling sws_init_context (which selects which fastpaths can be used; this gets called by sws_getContext); solely passing them via sws_setColorspaceDetails isn't enough. This fixes producing full range YUV range output when doing YUV->YUV conversions between different YUV color spaces. Signed-off-by: Martin Storsjö --- libswscale/utils.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index 7c8e1bbdde..34f7f0b869 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1037,11 +1037,16 @@ int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], srcRange, table, dstRange, brightness, contrast, saturation); - c->cascaded_context[1] = sws_getContext(tmp_width, tmp_height, tmp_format, - dstW, dstH, c->dstFormat, - c->flags, NULL, NULL, c->param); + c->cascaded_context[1] = sws_alloc_set_opts(tmp_width, tmp_height, tmp_format, + dstW, dstH, c->dstFormat, + c->flags, c->param); if (!c->cascaded_context[1]) return -1; + c->cascaded_context[1]->srcRange = srcRange; + c->cascaded_context[1]->dstRange = dstRange; + ret = sws_init_context(c->cascaded_context[1], NULL , NULL); + if (ret < 0) + return ret; sws_setColorspaceDetails(c->cascaded_context[1], inv_table, srcRange, table, dstRange, 0, 1 << 16, 1 << 16);