From patchwork Tue Apr 5 16:55:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Izen X-Patchwork-Id: 34684 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c05:b0:7a:e998:b410 with SMTP id bw5csp410625pzb; Tue, 5 Apr 2022 09:55:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwgSAZCfhwkHmENLekcV+5s5ayriWsm1VN5WndmPNU9QOiMj5MrXUrHtEro/MM2SLEM+638 X-Received: by 2002:a17:907:3eaa:b0:6df:b058:96a with SMTP id hs42-20020a1709073eaa00b006dfb058096amr4527565ejc.368.1649177739517; Tue, 05 Apr 2022 09:55:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649177739; cv=none; d=google.com; s=arc-20160816; b=Y60Hkvhwga2MITifEU6apJaebgTuUsN+W2P34WS/PjuFexIt+GPClf7EXtIqk4AmCA J8JxRLXSaB4P9eD6C22sjzG/dT6B7W223UTBiaES8k2WIxLt0lEhMEo1LJwqyd/ts1ie AvJzEUlNZFvKwb+bZUaYONEkj1DR2mjA1JiCaOXFBOxv3v76xQaqF725yahn9qGegCB5 /srU18Ww0tW9ktkwfDB1VSlbpWMo/sr3Kbq3ITDCitT6st40O5goO+njj2/Csapf5My2 USsWLATml/mlBsNk6wRbUZXqXu0j9mUM0UdhiCPhgpg2i7lZIpFti5aAlztiDC+qBVca XTEA== 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:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=a1bOEIeRUe4zRs89bPmhNfC/AyVVykogfmTNj9IE9lM=; b=XWhO+5tn87jVR0UsvB+cDIEf0duKGy2vyB7cRry4FK1fiwFTa3xlz5474+/razeLGv PhiFtA2/ULkPleN5WBIXpc3DMczCrhlf/E+H3dCl1KNYfFl4ITrxF/mYDkw9OIOpKvez zuqLMkGWNfeXWKZMATdlRJ3ZV8e6ard2FXk5Ym64IPbCkXR9I9Gr0Zn50zysUh/fBHPQ XEU1JSNj2pheuvjaiN5STffQhAWDnbDLhtdGo7hQXCnD8+X6RfN8Cz2FfR7fu98nuLYG KxvBrrg9aBjE0dZnW8djKPyxCQuUHsexR3SCNH3J9e7wKg7NUit1WvVR8qv20v8nxxe2 giXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ITuzp7KX; 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=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id fp6-20020a1709069e0600b006e7ee6c69c9si5123399ejc.945.2022.04.05.09.55.38; Tue, 05 Apr 2022 09:55:39 -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=@gmail.com header.s=20210112 header.b=ITuzp7KX; 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=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7FEAC68B0F6; Tue, 5 Apr 2022 19:55:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E41A068A43A for ; Tue, 5 Apr 2022 19:55:28 +0300 (EEST) Received: by mail-qv1-f43.google.com with SMTP id kd21so2744qvb.6 for ; Tue, 05 Apr 2022 09:55:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=7Di1Au1SU7agaP3kjy5XxbEr3hrBZldYqV6Rib9akT0=; b=ITuzp7KXh4L6vXEfOIhKJfyWQI+7EwagU6D097gyS3/iKnLq5ZhQSUqpuroVdOLc6e w1baBcX4H75c+cA6nfh7UoPGNaDLCXgyv2MtJZfBdcYYGwJRHt0B/5o9K7ehtJ5ELhjV UVfpzHEbixmOqc+Ni8ezqvCGVIfOzHFO6ff6YvzZBKL6RQhPXLSeCcDO/zOyOOrDUF9q bh0IblnxQYTbDP3Rh46otpMpQG2Ca+w+SaV63jgtz69PrEi75UNqgW9XtwR2coz91hsR UszlGypa518OPuGe6Yjb1tFfdJaj/plgKy9bnv4ANko2eByzG8l+9BIuIY6+haoqowBL xyGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=7Di1Au1SU7agaP3kjy5XxbEr3hrBZldYqV6Rib9akT0=; b=ERFXhE9A9imROqRqAb3ky2RXYJt5LNPsv3EMY9vw/pAjhVAszwywYcqyalcdSZLCiL brFGbVXKmzKR/4HclfcedcqoHaSwjqsavpd469HIPNe5jyk984FP2uJWs2tIRza5BwqY vjgtDewhkNNaw0MpAdS3P1wEMAjmr1yHGc/vVh5LX3YLBBF2ZUub6+8KfLRB6dYJsFwG wUSDQ2AGnP0V7we6tigYfi3xKqK6U7caZuZpkpSaO7u0GFN/o2bq+ZdNo5gjUfHlCZDz 1rNWef0NouT3qzEqds8xEeIi4R7GFdM1znZpUHp7XHcbinuAKi+8+m1qW6edDQP4W7cC QdNw== X-Gm-Message-State: AOAM531CGWecIb5DkmjnSdxTWh16w1LJ/S2TKvsv8xb980zisKhBV56w ypTSftJ4kmiKaRqaszzNdul6A9GHwqo= X-Received: by 2002:a05:6214:4101:b0:441:47e5:c718 with SMTP id kc1-20020a056214410100b0044147e5c718mr3748164qvb.12.1649177727638; Tue, 05 Apr 2022 09:55:27 -0700 (PDT) Received: from gauss.local (c-68-41-54-207.hsd1.mi.comcast.net. [68.41.54.207]) by smtp.gmail.com with ESMTPSA id bk15-20020a05620a1a0f00b0067e5bd7a9ccsm8332532qkb.50.2022.04.05.09.55.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Apr 2022 09:55:27 -0700 (PDT) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Tue, 5 Apr 2022 12:55:00 -0400 Message-Id: <20220405165504.29261-1-leo.izen@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v13 0/4] Jpeg XL Patch Set 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: Leo Izen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: v4Mg0IJYOQFl This patchset adds the Jpeg XL Image format as well as a decoder and encoder for it based on the external reference implementation library, libjxl. Changes: v13: - Make changes requested by Anton and Andreas from v12 v12: - Remove the parser in order to avoid avpriv in the ABI - Add a lightweight version of it to avformat to help the prober - Remove the FATE test for the parser which no longer exists v11: - Fix regression I introduced in v10 with skipping boxes v10: - Make changes requested by Andreas Reinhardt from v9 Leo Izen (4): avcodec/jpegxl: add Jpeg XL image codec avcodec/libjxl: add Jpeg XL decoding via libjxl avcodec/libjxl: add Jpeg XL encoding via libjxl avformat/image2: add Jpeg XL as image2 format MAINTAINERS | 3 + configure | 6 + doc/general_contents.texi | 7 + libavcodec/Makefile | 2 + libavcodec/allcodecs.c | 2 + libavcodec/codec_desc.c | 9 + libavcodec/codec_id.h | 1 + libavcodec/libjxl.c | 70 +++++++ libavcodec/libjxl.h | 48 +++++ libavcodec/libjxldec.c | 276 ++++++++++++++++++++++++++ libavcodec/libjxlenc.c | 379 +++++++++++++++++++++++++++++++++++ libavcodec/version.h | 2 +- libavformat/Makefile | 1 + libavformat/allformats.c | 1 + libavformat/img2.c | 1 + libavformat/img2dec.c | 18 ++ libavformat/img2enc.c | 6 +- libavformat/jpegxl_probe.c | 393 +++++++++++++++++++++++++++++++++++++ libavformat/jpegxl_probe.h | 32 +++ libavformat/mov.c | 1 + libavformat/version.h | 4 +- 21 files changed, 1256 insertions(+), 6 deletions(-) create mode 100644 libavcodec/libjxl.c create mode 100644 libavcodec/libjxl.h create mode 100644 libavcodec/libjxldec.c create mode 100644 libavcodec/libjxlenc.c create mode 100644 libavformat/jpegxl_probe.c create mode 100644 libavformat/jpegxl_probe.h