From patchwork Thu Mar 30 22:42:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Izen X-Patchwork-Id: 34905 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4645:b0:e3:3194:9d20 with SMTP id eb5csp273298pzb; Thu, 30 Mar 2023 15:42:59 -0700 (PDT) X-Google-Smtp-Source: AKy350bqv6Eoc3d3EsyHC+RB8iXRWqXmEwjIFsBgkk71390oW2pmRZvmwRmmewygBEMHO+9w68Wr X-Received: by 2002:a17:907:c25:b0:895:58be:957 with SMTP id ga37-20020a1709070c2500b0089558be0957mr31407893ejc.2.1680216179605; Thu, 30 Mar 2023 15:42:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680216179; cv=none; d=google.com; s=arc-20160816; b=FONPuJVHV1NYah+NXoxTrtT+/C/BTUvHObVORd2I81LvNR069jb7rJ57DQ6pw7ViQm 41zvA9UNO99lgqbYg/t1IC15spL8BRlczR2tt7shzNQBrZBD75Fj0z/exZ8qfmnl7BN9 oE+r5U9JXvNXJLzME8beFKrQbXOB4dBbhQIt3W2hH5e/2781R3256LTBBdByWnfqFM7o HDurqQyykZsHCHuVsiRCs4b4fsn8Pvc9QslWSwAsPoPYyGsYHVkgU+MGxxxtEQpzWcE3 20q+Jrfful+ZxWzaFkd1IiRftik0ichWwurRCcgvPA5+OCzLSz4SFrL8ZzSaxGaAIIke L/0w== 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=WjA/ii0m3jpaflSsa23GgPQFLhaaE3Eia7pZV2iXPtE=; b=M2P49hgEPl4Rhi8MOW0CsK4yYWohlLos0g/5vvDJx/Iz2mNcv96Gw6H2Xty3yi1hR9 9310I8ECFK+By+7ES3no470X8AlFGh9hyBcApO/wBvqBGWWHyP+ONWM50gX8jkIwoBUr I0aeJxZsIjWMHunfOagkvwGB4UhQlDr+6tB8OcOTq6zGbG/XKwhfLBfFwkfV9LGG57SU O9Fn1PNtxb236PvjxKRvfGBFMu2TCFzAZzXKX+fcZkORjXBp5Afj0M5qwe52tK/lsJZe c8XD2VcvkciTFZIsuPn1r9LGQjMxxSi0IWODFyd8JSm5mSUND4bedvwD0gZMYobrioKz c9IQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=NPXTdkeZ; 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 b2-20020a170906150200b009476f7e3d4csi628991ejd.234.2023.03.30.15.42.59; Thu, 30 Mar 2023 15:42:59 -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=NPXTdkeZ; 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 A034468C2E9; Fri, 31 Mar 2023 01:42:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com [209.85.128.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 502B868C145 for ; Fri, 31 Mar 2023 01:42:50 +0300 (EEST) Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-5456249756bso382616537b3.5 for ; Thu, 30 Mar 2023 15:42:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680216169; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=LJKMsL6lFwq8SCHVQgcMWO1wT/sfeEXGAHCyclpmzhA=; b=NPXTdkeZr6YBGB/KYM5DZejzGibLaiN52tnPPPCWWRTT1MHi5rrHh6AGk5y7P+Qv7z wauKhSDrP6KGmSk08+S8icQkYHNULY5p+iK5iGD5wtjwbdmLBLiqPuiQzjIRbOGUS46k Q2HhehrxR5HFzz6Bdupi+qVVowWiWIDtiiIFntnEbaVcf7olxCMb7Zf2hgEvb/54xFvC ijSJHo8mSzcHhXYi6AjYAtw7GFeabrZrWVdALm30q115RpRwwEMrx27lqjys9Q2lCw8H 7gBGnUidhZJ7MceLQkZGDhPbTubLLkf/OMU7djA8/giFEf44y/k2euQYS+592OqiZfLA sl3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680216169; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LJKMsL6lFwq8SCHVQgcMWO1wT/sfeEXGAHCyclpmzhA=; b=FmiI8xHjw662TQx5S8F6n0EmOpSMw40bjiY2xtn7g+/jjhUmydGiVjh7mP6hv4/kvZ jsV8JLt4l25HW1IDqG4vjWieyeynqFRzBjQ4023QJEPuUvs7XV5+IjcXpix70rJeGQWU RHdTJWIHlp9xbUgXhgqFzuBNir0AKCH1B2KcoLJpvZl5HrDeXQQGgv0qqNs+ZIZAzqnt gL08se1H9E5Uz/YO5o84fUi+Qtc6bW+ddUEb7nDunY6tZXuix/gUew2U3aUM5lizGOH6 KjENxdsQYa/OQUFp/YgrQE7yTYiGthy6WEV/s/KF9hTg7udi/wavaZXqlLe24pDBiGVo 0EaA== X-Gm-Message-State: AAQBX9eoKiJSFH+LeFzoDtDtusTdEpQlPKYrbGCcwhW5wE63Q22yPLDp 0dmtRjp4YHeFyMaluBEXjuhl9+Xv74qGXA== X-Received: by 2002:a81:b96:0:b0:52e:ebac:f766 with SMTP id 144-20020a810b96000000b0052eebacf766mr2890098ywl.4.1680216168747; Thu, 30 Mar 2023 15:42:48 -0700 (PDT) Received: from gauss.local (c-98-224-219-15.hsd1.mi.comcast.net. [98.224.219.15]) by smtp.gmail.com with ESMTPSA id 203-20020a8113d4000000b00545a08184a9sm136364ywt.57.2023.03.30.15.42.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Mar 2023 15:42:48 -0700 (PDT) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Thu, 30 Mar 2023 18:42:44 -0400 Message-Id: <20230330224246.47109-1-leo.izen@gmail.com> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 0/2] JPEG XL Animation Support 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: POUeMOY2tKoB This patch adds support for animated JPEG XL files in both the libjxl decoder wrapper and a separate demuxer to properly set the timebase for it. Changes from v1: - Made some tweaks based on review suggestions from Anton Khirnov -- moved packet request inside main loop -- added guard against avctx->pkt_timebase being unset -- removed size_t remaining from persistent context, changing pkt->data instead. -- populate AVFrame->duration field. - Rebased against master Leo Izen (2): avcodec/libjxldec: add animated decode support avformat/jpegxl_anim_dec: add animated JPEG XL demuxer MAINTAINERS | 1 + libavcodec/libjxldec.c | 109 ++++++++++---- libavcodec/version.h | 2 +- libavformat/Makefile | 1 + libavformat/allformats.c | 1 + libavformat/img2dec.c | 2 +- libavformat/jpegxl_anim_dec.c | 266 ++++++++++++++++++++++++++++++++++ libavformat/jpegxl_probe.c | 19 +-- libavformat/jpegxl_probe.h | 7 +- libavformat/version.h | 4 +- 10 files changed, 370 insertions(+), 42 deletions(-) create mode 100644 libavformat/jpegxl_anim_dec.c