From patchwork Tue Apr 12 05:53:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Izen X-Patchwork-Id: 34686 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp1409990pzh; Mon, 11 Apr 2022 22:54:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwtZmfP+TWRioIWyX60veGb4IyNms8ydOehGQzUDUWTocmcTTBfNY50hgI9X4RHjnAeEmwI X-Received: by 2002:a17:907:1ca7:b0:6e8:b6ba:9801 with SMTP id nb39-20020a1709071ca700b006e8b6ba9801mr684281ejc.148.1649742872155; Mon, 11 Apr 2022 22:54:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649742872; cv=none; d=google.com; s=arc-20160816; b=A1kXHcrKdIg1wtZE7fhcTZAUXKub9CNpDMNoG85299aqKU332+VTxZygclGUpOTMd/ fBPg5QYP6diVCjYLWUPiG4gmmiIYNkmpHYkcwlqMoJXfiu63cnOr4x5AgilwteILE0C+ Wk+FIkQpke1deQoy1oG6pPl6hE1sJjLzzURbtvxnB3l1cUEhTellwiPwFYaBepAohWPi BkDs7ZqVK/c4cVvp7ojs5GyyA2/VgnkeuImgprzdBOgHIPB4dFDJHZe9/YAfTg7UVs/6 Hak8xHLK9abLPdGl4dVz1GATiozXSnAo07TwqV4sHqMJZiXBt5QCZ91ilmkvhn0RORO2 tSvw== 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=py47EDrk5Td/y8qY9rIXFbwTHnqxY7v6FJgugZF3lxw=; b=l1IhrHqolMakoTbgK9+wfQROdgvMwlgS0PX/WKVvoBuGq5ROXlvon4nJCDh2BpnV0c UrClvTgzvi8qDCPu3Nw5OsnBXSEJsgXWAb4WNkNdGTWJ46U89L7foI/Cuszeeo+oRVGG 1iPRz6Y4D9/UggOSNspgWKjUTTlgp1Va24KlHHyvnKq3I8Iib4hf2y2wVSCs/ZAyRuqD Y9yFc0jDFhHcHd6R0iHbzLkBzZ0+iBX/o383SlswT5sekbC5lsoXD0AyIe8x49CMB5Fd eCM1TylveRXX/tPF1vPJzajeuHnC45PNVxlPwrt9s7ynPraWBiy2Zdj9yg/btDrv+I+G rB3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=gD0DLRrF; 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 jz23-20020a170906bb1700b006df76385bafsi3434372ejb.79.2022.04.11.22.54.31; Mon, 11 Apr 2022 22:54:32 -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=gD0DLRrF; 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 296D668B31B; Tue, 12 Apr 2022 08:54:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1E4F468AFEB for ; Tue, 12 Apr 2022 08:54:21 +0300 (EEST) Received: by mail-qk1-f172.google.com with SMTP id b189so12955492qkf.11 for ; Mon, 11 Apr 2022 22:54:21 -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=Aweil5aFteznMJ7F7BvlqIHlY5sv0xx94Ar7l85wEm4=; b=gD0DLRrFMQV3wa4QMQsUJXR5+ZIkGGLFB4tWWGtpL63VcDsb/Yugaw51YXNvIfxest O+1T31RlGQakmI3rVEmgZoDB8+Zo63YIqeirlxKveKz8sppDyY5MdU/k/ixcmq0E2Wyy sF6l/oV0vl12xblAiP3B/5RuubRnbZkqGvzLPv06/mvjYa0xYfJhsj1+C0o9iwQ+5xiE 3da9fxqoUot+fkyZTcTRSbo6qbA/g7Cp8eGdix0SctcfNpnR7MGW3pFJY6GVk/FiaWls Dps4qerA8o/b78YUXsB2uuP8besp4zAhXs6qbGzhHuxqYaKsIwqyEy/mEeaq4TfJGB3r m0UQ== 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=Aweil5aFteznMJ7F7BvlqIHlY5sv0xx94Ar7l85wEm4=; b=uSAyeVL+H8sAd3bPcg5O45WPW87EFG5R3Gb+v4wuyxoosfeYlTEJTTry7M38SCLWcn utZvXIsBiWCChilVrGCdDUlW2ig5SQ5Vqy7KgFBzFThSuTpip6Le7IFO2/Jou31oJhnq ixw3wca8zMupYA3c8WVK+GL0ytWUQA144vrmED118A1BcMaeZJy29mql4Eoez3w47jph c8gwCi7AG4UFy7fuUDuMJ+KUTxBKmwgEkHq8CTTCyaZPgA6r5fsh+ciSp0p4YZoD7K1W UYoSb4Gi4erkquUo4rXmS1M+3CqkpdcEL582DtLAymKfXwpNTedCz1eOQbeR/XKYEJJi zjvA== X-Gm-Message-State: AOAM532bBZGUNUJgJaqskM/KRJT0cfh/Yjrk7v/b9ztfrj77opIIHmDZ th4gGb6UIwpTHjRYBShVu5CoETur+tA= X-Received: by 2002:a37:aec7:0:b0:69b:f27b:8784 with SMTP id x190-20020a37aec7000000b0069bf27b8784mr2043192qke.464.1649742859670; Mon, 11 Apr 2022 22:54:19 -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 k2-20020a37ba02000000b0067dc1b0104asm19801988qkf.124.2022.04.11.22.54.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Apr 2022 22:54:19 -0700 (PDT) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Tue, 12 Apr 2022 01:53:29 -0400 Message-Id: <20220412055333.62424-1-leo.izen@gmail.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v14 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: 6WcvkbpEcR4Z Changes: v14: - Make changes requested by Anton from v13 -- make encoder return refcounted packet -- use av_realloc for realloc loop -- use -1 as default instead of -0.0 - Remove unnecessary JXL_DEC_FRAME subscribe event from decoder - Update FFCodec declarations to use the new macros, rebase onto master 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 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 | 274 ++++++++++++++++++++++++++ libavcodec/libjxlenc.c | 382 +++++++++++++++++++++++++++++++++++ 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 + 19 files changed, 1254 insertions(+), 3 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