From patchwork Sat Aug 3 00:56:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: TADANO Tokumei X-Patchwork-Id: 35164 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:1f5a:b0:489:2eb3:e4c4 with SMTP id jm26csp220261vqb; Fri, 2 Aug 2024 17:56:27 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWLAc/h09U6+tP5mqAZ5alGdcpx7fRbrZVn4o6OAL1iS4N//b2DkxL5SHf0rO+avGBkHJoZd8R7WZPi5+GS0Rptio3Tdj+1UMM7+Q== X-Google-Smtp-Source: AGHT+IE/00+3F50qhwDF/IIowEoWMjJ6IerQUkSUpojaehOTgasUqtcWP7j4iczPvokKYj+xs1dM X-Received: by 2002:a50:ff0b:0:b0:58b:1a5e:c0e7 with SMTP id 4fb4d7f45d1cf-5b7f56fcbe3mr4104890a12.35.1722646587506; Fri, 02 Aug 2024 17:56:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1722646587; cv=none; d=google.com; s=arc-20160816; b=OgxKd1h+d/y49398dUcnW6lrFiukm6+RrNuj9WhLGdehc9Gx84bO3olOPNpODo6V7Y RcPLrTHBIF4ndx+mrcoTKnIUAQpgilMd2XTlF4M0T97rOLSq7oRTPKfyxEhZsc1zO3fj T60UJt/nWWq6GECdl/DXeLpu2/xH9mFL5HAEef81pXNbfmkJnWCSWx9q4xkxgtfsnyo1 CHxQot/5PVd+gVyVd9DMb7go+6ZqKrKR+cPCif3twSJUdgnkcFNeHoCXNgqO9ZwmUfgK hcSR0eIpPUmcFYUzuv7OTBKBaZocZTBkxrUCSC0pbDJYkGXNQ6giUGXCr7NPtliMl8eD DnPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:dkim-signature:mime-version:message-id :date:to:from:delivered-to; bh=2vOCO0sLCSaE6rGHOl8Mrp8kazgQYIxxqli4xi1NFaI=; fh=ssXC39eKeah6YcPRlt8jBK+nQIpHohGaLsoJm2kZFpQ=; b=vwsEQy3wIydbsbWZA2rA7ufe5ZJDbaNOzijQat1EZN2CORkM3YjTQHYQBxcf9B32VG VGH5I1UWsv+9Vdbg8fO2yOImVir1Pw0b7atY9Z34OYUtjOhch/tn712Uezrkgz9O/+1M 0qecBorYqOefcdB0lYwJD2W8jJ6RCiZIlGFsx8Dzy+Rvrg/eff8/mLSTnODnHmCn1k/w sPcVnwEuAOjIrL3T/9fspoUfqfyJDW0Rx8ByLyXg/faQK5CpNaqxvXqRORmJDsFt5Lkl 1YJnMPrLXvqgk+SKk/o+uqxEJJc7d92Pvbuwbg8Zu54txrGvCpv+8fPTEQbGiXxs5MWm oyiw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@pc.nifty.jp header.s=default-1th84yt82rvi header.b=sECQWHhv; 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=NONE dis=NONE) header.from=pc.nifty.jp Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5b83cbf4305si1694862a12.633.2024.08.02.17.56.27; Fri, 02 Aug 2024 17:56:27 -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=@pc.nifty.jp header.s=default-1th84yt82rvi header.b=sECQWHhv; 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=NONE dis=NONE) header.from=pc.nifty.jp Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 43D7168D586; Sat, 3 Aug 2024 03:56:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mta-snd-e07.mail.nifty.com (mta-snd-e07.mail.nifty.com [106.153.226.39]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 99AE768D60B for ; Sat, 3 Aug 2024 03:56:13 +0300 (EEST) Received: from localhost.localdomain by mta-snd-e07.mail.nifty.com with ESMTP id <20240803005608839.SFWO.76216.localhost.localdomain@nifty.com>; Sat, 3 Aug 2024 09:56:08 +0900 From: TADANO Tokumei To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Aug 2024 09:56:00 +0900 Message-Id: <20240803005601.44246-1-aimingoff@pc.nifty.jp> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pc.nifty.jp; s=default-1th84yt82rvi; t=1722646569; bh=p0UfWNu5x41pe39xvWVNaFMTaPVrm9nws+lP1JTM9Z0=; h=From:To:Cc:Subject:Date; b=sECQWHhvKjELhVGgruu8MgvyBBbJ+CmgBV2ikJjTT7I9YeaAClx7CpNQ6J3/o+aPaV83g8SQ ogXbGQ83+NrpjRSmJOw59p5Tbx0mWOw012z2Y7dtoIUI5TIAY2b5W7haI6MKrhoYHmMY7jJnDV W6iPN3eXVvraVKZjfoXYeTxrm14iGigUcDP2R22hrrf/u0agphaV4ggo2Ub9CeHfIGNpgxKZRA oWTbcgwrxGyYw8pB3EsS3N98dYBzAewcr4p6gS/OtuiH+xk+4lwwfz7oanCvkuIKcbaourlTIx jf/wWyImm8zBzj0h7lMYgANVa+7z49dlUs+6DwkX/scFK+1w== Subject: [FFmpeg-devel] [PATCH v4 0/1] lavfi/vf_gopromax_opencl: add GoPor Max 360 video filter 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: TADANO Tokumei Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: rDk6XYYfomqT This is updated patch of: https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=3943 I contacted to Ronan LE MEILLAT and agreed with him to submit new patch. Abstruct of GoPro Max .360 video file format is described in: https://gopro.com/news/max-tech-specs-stitching-resolution The specification is little bit buggy. The format is based on EAC (Equi-Angular Cubemap), and there are overlapped pixels at boundaries of front and rear cams. Probably, the desinger intended to add 2 x 32 (= total 64) ovelapped pixels. But actual format has 2 x 64 pixels overlapped area. Thus the width will be 2 x 32 pixels shorter than standard EAC format after blending overlapped area. This filter blends overlapped area, stretches the width of the cube, and combine two streams into single stream with standard format. v3: modifies `configure` file to add dependency on opencl. v4: fix small difference from v360 filter in xyz_to_eac() TADANO Tokumei (1): lavfi/vf_gopromax_opencl: add GoPro Max 360 video filter configure | 1 + doc/filters.texi | 78 +++++++ libavfilter/Makefile | 2 + libavfilter/allfilters.c | 1 + libavfilter/opencl/gopromax.cl | 282 +++++++++++++++++++++++++ libavfilter/opencl_source.h | 1 + libavfilter/vf_gopromax_opencl.c | 351 +++++++++++++++++++++++++++++++ 7 files changed, 716 insertions(+) create mode 100644 libavfilter/opencl/gopromax.cl create mode 100644 libavfilter/vf_gopromax_opencl.c