From patchwork Sun Mar 21 12:44:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Playfair Cal X-Patchwork-Id: 26518 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 9F79F4499F7 for ; Sun, 21 Mar 2021 14:45:09 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7E9D568A7DD; Sun, 21 Mar 2021 14:45:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CF56668A7D9 for ; Sun, 21 Mar 2021 14:45:02 +0200 (EET) Received: by mail-pj1-f53.google.com with SMTP id kk2-20020a17090b4a02b02900c777aa746fso7111402pjb.3 for ; Sun, 21 Mar 2021 05:45:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=tr9UQ/rfcE1+A3CPuPAz70+3f70XClb9v67mDfESKBU=; b=cIoOs/0iZrH0FQKcSmFQAHQM1V3uzSunxN9CeL1aJmLmqJa01aUwhwYuh0UnTA7NxC MYQJDB+eK5pNbrtinMHWI1b4OnyK1eWUgUygQoNhuakjnZvp56+XlA8jQ7YGTVL8G99h bTVx2PGPT5dioSA7hV5/jlmPefPkIDufdIhXkxsjB5QsGuhGfKjsg8aRWDhfdMg7iTMP v+d6W4JnMaL6FEqp9vhRJSWK9Ed1fWeF+MfYWuSkm5yZ4QTc0Q0SdqzyqwUwBtC8Lokr ZmAsIX8z0rgxBohrcrkRhgENhNzv+KaiXgDKcd+Jfd5JG1XLzqUBwQahvOQK+K3h43I8 0zmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=tr9UQ/rfcE1+A3CPuPAz70+3f70XClb9v67mDfESKBU=; b=jK5obNlFYkqFjMvyJJyCLzgw3IHZQy4Y5Ks/dR2ljCN5F0jl+q9hj/L294Lvu30sDe 1MzC532ZY1UORqi8mFg/ARMYmepyCFOSpE41ZDyfZpAqC5FdJtftlnTmvp+pCxvdGRuf 79mABiXXS9qLQNYlpmIB2jUN45UGCa57EMShb/0wpFshHwzagzIIsjQOafH7jI0prarp HxsiZUjxQ9bGlwMHsLPZzJ21vEnDZ6pcCVzN1ATYtp8GhHEn1y1nT8YgOYpSThnSnNys IiFe8hOvXH6ntlCBLQsjHtlHWcfu64zqVZ83UrKgAupbHu1Gbi+g4aGuqTookT1Y013F ghaQ== X-Gm-Message-State: AOAM533egq5hQVWFQiN/vhwQ5SpizsUWD9rWqOFuizIT7IHwgaeFn6cI 0m1a6jn3EC3NlBAufDqGvQPvzKbjttpvVQ== X-Google-Smtp-Source: ABdhPJxEWqPsmDRYvZqg9p/KoAPPbN98tKE9WiRCJbB9FE3zjypsHCbFg45cM7+Y7KqbfQX/L52+oQ== X-Received: by 2002:a17:902:da92:b029:e5:fa64:e9f3 with SMTP id j18-20020a170902da92b02900e5fa64e9f3mr22105682plx.54.1616330700637; Sun, 21 Mar 2021 05:45:00 -0700 (PDT) Received: from localhost.localdomain (110-175-121-4.static.tpgi.com.au. [110.175.121.4]) by smtp.gmail.com with ESMTPSA id x11sm13334158pjh.0.2021.03.21.05.44.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 05:45:00 -0700 (PDT) From: Daniel Playfair Cal To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 23:44:11 +1100 Message-Id: <20210321124414.1223626-1-daniel.playfair.cal@gmail.com> X-Mailer: git-send-email 2.31.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] avfilter/vf_v360: fix fov_from_hfov for fisheye X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Daniel Playfair Cal Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This was previously incorrect, so that passing only id_fov or d_fov resulted in incorrect transformation. Signed-off-by: Daniel Playfair Cal --- libavfilter/vf_v360.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index 94473cd5b3..425f04da94 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -4045,10 +4045,10 @@ static void fov_from_dfov(int format, float d_fov, float w, float h, float *h_fo break; case FISHEYE: { - const float d = 0.5f * hypotf(w, h); + const float d = hypotf(w, h); - *h_fov = d / w * d_fov; - *v_fov = d / h * d_fov; + *h_fov = w / d * d_fov; + *v_fov = h / d * d_fov; } break; case FLAT: From patchwork Sun Mar 21 12:44:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Playfair Cal X-Patchwork-Id: 26521 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 82C9C448C25 for ; Sun, 21 Mar 2021 15:15:46 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5E29068A9E8; Sun, 21 Mar 2021 15:15:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f181.google.com (mail-oi1-f181.google.com [209.85.167.181]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A344C68A993 for ; Sun, 21 Mar 2021 15:15:39 +0200 (EET) Received: by mail-oi1-f181.google.com with SMTP id f9so10232872oiw.5 for ; Sun, 21 Mar 2021 06:15:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=htkPle4sHqjvGoHhXn9+B4cPNyqx3atqUT1pvXp3XI0=; b=cWq9K+ZvsN5cR8g8KwcNKnhy9GuHa3zt0SFYml3a77eMLZyLFl12IU+f1YOyNY7Fgj 5QK+KeM6rmZ4+IItY014eWeswu6AWFLDBMgmJFhfFjb3zb0S8l4wgKTErhoFV9wE/Aca KRyBoKtHCJMmPgd753khqo75CuaJqoXSyGy0WHe/Y/PBPwc587aBulkAMPuL+abkcW1M 4VUE0nuqLO+7JYfELkVgb5HpA3S+vQUBR/R4dy39zv/qXuM047gBza6FRBvgLxb+vX7d gtV8CX0vUBSJjXRSfE3qgAczGjeEzoPifNDoXTaA7XFwUSB0yqi/+z7Rj6UDFSzegur3 AgiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=htkPle4sHqjvGoHhXn9+B4cPNyqx3atqUT1pvXp3XI0=; b=lJ1zJE5ElKX7P/OkFDyI/Yg0UhCmJLpXBXBEuiMVqtq/UNkL+HfRj5zHwXEm9MMyBl 0KlFKn6HcAR7FwP5F6Pkwa4v6F7GQLGEyoHgSOoytJUfw/R9OpaallFA6CndksM1dptR b7uEI3IiH6R75qvSO0uovFx68A6Ch+RVFprn8BYZ2kbDUkBc5FJPELlWa2c3B0LT+iTF cyXriI6GMe3DP5yYfciog0aOFPnEC0lg3l36BOQ6DIBnopRS9z1n53DP9YVO2I2WdAto tPGDwr6e3LjSRK7HZkWoZ2dWFOCMW8dSQ3BI2zSk/YJlJIRks7MkgHrBJabhqXchTems pkgw== X-Gm-Message-State: AOAM531RBk21QUDaPpj4kEMYF7v/gDPNZy++Q8yz9pjgWokQNECuQLxa UybQVmiJG6LYiGR+LRi3L9ZqACm5VUOtJA== X-Google-Smtp-Source: ABdhPJyfRfo8Jq440XDHjs4NGXRMWjFo13w68QNM8E9UezjmwNSVUbzfig8Ga29ww85Kae8B2V7e6w== X-Received: by 2002:a17:90b:2284:: with SMTP id kx4mr7854338pjb.96.1616330707421; Sun, 21 Mar 2021 05:45:07 -0700 (PDT) Received: from localhost.localdomain (110-175-121-4.static.tpgi.com.au. [110.175.121.4]) by smtp.gmail.com with ESMTPSA id x11sm13334158pjh.0.2021.03.21.05.45.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 05:45:07 -0700 (PDT) From: Daniel Playfair Cal To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 23:44:12 +1100 Message-Id: <20210321124414.1223626-2-daniel.playfair.cal@gmail.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210321124414.1223626-1-daniel.playfair.cal@gmail.com> References: <20210321124414.1223626-1-daniel.playfair.cal@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4] avfilter/vf_v360: stop doubling width for fisheye X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Daniel Playfair Cal Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This resulted in the default aspect ratio being doubled relative to most input formats like flat/rectilinear. After this patch the default aspect ratio is the same as a rectilinear input. Signed-off-by: Daniel Playfair Cal --- libavfilter/vf_v360.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index 425f04da94..be886e9bb1 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -4365,7 +4365,7 @@ static int config_output(AVFilterLink *outlink) case FISHEYE: s->in_transform = xyz_to_fisheye; err = prepare_fisheye_in(ctx); - wf = w * 2; + wf = w; hf = h; break; case PANNINI: @@ -4513,7 +4513,7 @@ static int config_output(AVFilterLink *outlink) case FISHEYE: s->out_transform = fisheye_to_xyz; prepare_out = prepare_fisheye_out; - w = lrintf(wf * 0.5f); + w = lrintf(wf); h = lrintf(hf); break; case PANNINI: From patchwork Sun Mar 21 12:44:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Playfair Cal X-Patchwork-Id: 26520 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 288FC44B436 for ; Sun, 21 Mar 2021 14:51:33 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F3F9A68A82B; Sun, 21 Mar 2021 14:51:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f176.google.com (mail-oi1-f176.google.com [209.85.167.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CA6DD6806FE for ; Sun, 21 Mar 2021 14:51:26 +0200 (EET) Received: by mail-oi1-f176.google.com with SMTP id d12so10174810oiw.12 for ; Sun, 21 Mar 2021 05:51:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cCFQkr5Me4Prw2lvkP718itWipzHfjADzXnlDYoQgZA=; b=Gr/KUIFjN/+MZlsmZV1MeMIf4z5GC5zD0pHRLvLtaR1BCde/LI0gCklmiEJ/rUS6Av nod4nSYQDxivzW6fjv1n/JC3Vu/+v7B0UAcBBv7kGLb6VLTLDLoWBPdN+A612SD5zt3e FgVwdMO7/O7Camx1CFf5KtbPQ35lJY1Rfv9sNK05nUQ/9CP7xhXEXfBPW9O0BlE4Lqtm edDN4cXVD61k/7pHtp9IBMTwC9qpfefDc0UJMVq2PQOZyM867d0q8diueBVPwLdMbGeX zR+3zdMRy7THI4a1UbselzE0lsIfONaFfJjKD/HWbQ5Lgp7Sd2oH4RSyO5u9oT7UP1I1 9vFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cCFQkr5Me4Prw2lvkP718itWipzHfjADzXnlDYoQgZA=; b=jth4OD1TyNbE411Jo0uMQDUHvVKRHMHYtHn15v4yzT+IV04RqwOsWaRWZkZb3XYB3N 29qJMQNDjCRJyU7YBEykuiIgZ/IBfInHfmMqEowkt0F2Z7VA+nS/FWe3BP14yGWTik05 dQkGry2bGLdI9TDobmDdOzl3q1zJlgdo/y/Vfj2aSp8CzU6LrDxfbtbiIOfLxl8nWOlK wXHl/+y+cKFOEGvZVPRuxAGdobDKdeT6HMeQqGqrp+j2SS0Ht8JCSE+hE69HfjO6+IzX VfjZhfj+uJGQfolyoEzL47YZ8TjiSg2/13cclPs7Q0v7+xB5WKEnbHkdH0Qs89qkwQs1 u5PQ== X-Gm-Message-State: AOAM530Wl9hoXxcUCt8R2ePXw46dUT38uyRIjydB/BN/zYFAqMMH2FVI O4pvToo0Bxm16i6nMw1CCl/wD6U6GwdNvw== X-Google-Smtp-Source: ABdhPJyQcqtjaFuWWS8zV+RxbHNUwRZD1mPziXjIXLIPE6rk+dnwC9jAYcdEbvsiMqOO13d9Q43r6A== X-Received: by 2002:a17:90a:6c22:: with SMTP id x31mr8346061pjj.213.1616330711658; Sun, 21 Mar 2021 05:45:11 -0700 (PDT) Received: from localhost.localdomain (110-175-121-4.static.tpgi.com.au. [110.175.121.4]) by smtp.gmail.com with ESMTPSA id x11sm13334158pjh.0.2021.03.21.05.45.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 05:45:11 -0700 (PDT) From: Daniel Playfair Cal To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 23:44:13 +1100 Message-Id: <20210321124414.1223626-3-daniel.playfair.cal@gmail.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210321124414.1223626-1-daniel.playfair.cal@gmail.com> References: <20210321124414.1223626-1-daniel.playfair.cal@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] avfilter/vf_v360: fix visibility test for fisheye X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Daniel Playfair Cal Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Previously the visibility test referred to a circle in the input. This changes it so that it refers accurately to the entire area in the input. Signed-off-by: Daniel Playfair Cal --- libavfilter/vf_v360.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index be886e9bb1..68bb2f7b0f 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -2887,7 +2887,7 @@ static int xyz_to_fisheye(const V360Context *s, float uf = vec[0] / lh * phi / s->iflat_range[0]; float vf = vec[1] / lh * phi / s->iflat_range[1]; - const int visible = hypotf(uf, vf) <= 0.5f; + const int visible = -0.5f < uf && uf < 0.5f && -0.5f < vf && vf < 0.5f; int ui, vi; uf = (uf + 0.5f) * width; From patchwork Sun Mar 21 12:44:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Playfair Cal X-Patchwork-Id: 26519 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id BC56D4499F7 for ; Sun, 21 Mar 2021 14:45:23 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9DF8668A8FA; Sun, 21 Mar 2021 14:45:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 83AE2680831 for ; Sun, 21 Mar 2021 14:45:17 +0200 (EET) Received: by mail-pf1-f173.google.com with SMTP id x126so9121483pfc.13 for ; Sun, 21 Mar 2021 05:45:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BD5xoeK80AeVOnb2skcL1DvgZpyi65gEyJJCmB7X9QA=; b=rkhnSovPvYI/Hmc3x0YMMja+Q67VPnSK8IoyJjtksos8MD78f1fZCzBC1PjG8gNubt ldEtzBXlOSJg82uN0z+fCEUCdQsz/RcTLYhGIuolriqsKQr75zhFFZpr9yhIG+74RDLb JPqaEhedL9IoHS6CRb10O2WSHXdHoZ+NcDxPnjIVHNNn1C5sV+wCeHL+zowAz+8zyhrB 4yW0GE0Hxpch5evhBG9WOBrbSib+uWej0fWQZtW4EvaLxpyRQJ2wsHmx04eUfpaBIoQO 3D4WLaGoRJfblcflxXmffOGlHOrZJLjAlmgoEx1m1LIAsVTJMfrTKYdzYx2mV7GT6QGN 4agA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=BD5xoeK80AeVOnb2skcL1DvgZpyi65gEyJJCmB7X9QA=; b=F+afYcuYzoS19OXSlJBIW4diR8CkVE4OJtb7auGW24yIVRrVF0ymKHXKfsffq+mQvc TaLIcuL13L4nd2UyBdMNi+GjqcumXXM1T8oUduweim7ALG1y+wqh/a0uNvSbewsdcqG6 dF15vun4XBjZHa4bQZ5AXAwcPmcYdigYdYKFRWU9S1PcqnsgwCko8keKlVX0M6jCEE/f LKB8yXXh7nB4/BcPzrE86ru89fztISYO29WhpLCtVV4z9Zaho7APHvgfz5nxNC9HpAOg wbLoi92X8qXI5GB9Hajr3uxWAokKqWYzKRnMlRE0Vx+W0likeTqBr5rIK424Niq5mJTc s4Sw== X-Gm-Message-State: AOAM532x6/Zq2jx8ZvbmXiDigo27uOP2FhQ7dIr4tFo+WveIuc5JpBTz yHUoBmPWCBCSOcJLIYE+Gwvmd6o7L8+RGA== X-Google-Smtp-Source: ABdhPJxPOGZTSmqfR1Y6Mkt1I7ULqwUYvrIuJs8U+E9LeKYt6/OIp551VPMCfjOrji7eEjPWRGssBQ== X-Received: by 2002:a63:e416:: with SMTP id a22mr19571978pgi.128.1616330715627; Sun, 21 Mar 2021 05:45:15 -0700 (PDT) Received: from localhost.localdomain (110-175-121-4.static.tpgi.com.au. [110.175.121.4]) by smtp.gmail.com with ESMTPSA id x11sm13334158pjh.0.2021.03.21.05.45.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Mar 2021 05:45:15 -0700 (PDT) From: Daniel Playfair Cal To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 Mar 2021 23:44:14 +1100 Message-Id: <20210321124414.1223626-4-daniel.playfair.cal@gmail.com> X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210321124414.1223626-1-daniel.playfair.cal@gmail.com> References: <20210321124414.1223626-1-daniel.playfair.cal@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] avfilter/vf_v360: refactor (i)flat_range for fisheye X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Daniel Playfair Cal Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This changes the iflat_range and flat_range values for the fisheye projection to match their meaning for the flat/rectilinear projection. That is, the range is between the two x or two y coordinates of the outermost points above/below or left/right of the center, in the flat/rectilinear projection. Signed-off-by: Daniel Playfair Cal --- libavfilter/vf_v360.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index 68bb2f7b0f..3158451963 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -2807,9 +2807,8 @@ static int prepare_fisheye_out(AVFilterContext *ctx) { V360Context *s = ctx->priv; - s->flat_range[0] = s->h_fov / 180.f; - s->flat_range[1] = s->v_fov / 180.f; - + s->flat_range[0] = 0.5f * s->h_fov * M_PI / 180.f; + s->flat_range[1] = 0.5f * s->v_fov * M_PI / 180.f; return 0; } @@ -2827,8 +2826,8 @@ static int fisheye_to_xyz(const V360Context *s, int i, int j, int width, int height, float *vec) { - const float uf = s->flat_range[0] * ((2.f * i) / width - 1.f); - const float vf = s->flat_range[1] * ((2.f * j + 1.f) / height - 1.f); + const float uf = 2.f * s->flat_range[0] / M_PI * ((2.f * i) / width - 1.f); + const float vf = 2.f * s->flat_range[1] / M_PI * ((2.f * j + 1.f) / height - 1.f); const float phi = atan2f(vf, uf); const float theta = M_PI_2 * (1.f - hypotf(uf, vf)); @@ -2858,8 +2857,8 @@ static int prepare_fisheye_in(AVFilterContext *ctx) { V360Context *s = ctx->priv; - s->iflat_range[0] = s->ih_fov / 180.f; - s->iflat_range[1] = s->iv_fov / 180.f; + s->iflat_range[0] = 0.5f * s->ih_fov * M_PI / 180.f; + s->iflat_range[1] = 0.5f * s->iv_fov * M_PI / 180.f; return 0; } @@ -2882,10 +2881,10 @@ static int xyz_to_fisheye(const V360Context *s, { const float h = hypotf(vec[0], vec[1]); const float lh = h > 0.f ? h : 1.f; - const float phi = atan2f(h, vec[2]) / M_PI; + const float phi = atan2f(h, vec[2]); - float uf = vec[0] / lh * phi / s->iflat_range[0]; - float vf = vec[1] / lh * phi / s->iflat_range[1]; + float uf = 0.5f * vec[0] / lh * phi / s->iflat_range[0]; + float vf = 0.5f * vec[1] / lh * phi / s->iflat_range[1]; const int visible = -0.5f < uf && uf < 0.5f && -0.5f < vf && vf < 0.5f; int ui, vi;