From patchwork Tue Nov 21 21:14:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 35012 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8c2a:b0:181:818d:5e7f with SMTP id j42csp848687pzh; Tue, 21 Nov 2023 13:15:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IHfykIjMmq8ZNwpvDQyJJCvr/7o7WTNuAIpaEHe2ywJGzpFffkYEYcCt6LrXrz40NelCfan X-Received: by 2002:a05:6512:3248:b0:503:654:cf27 with SMTP id c8-20020a056512324800b005030654cf27mr282802lfr.28.1700601299897; Tue, 21 Nov 2023 13:14:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700601299; cv=none; d=google.com; s=arc-20160816; b=tqTZbkZLmNnnhx5zFRCKhS6vKpfFyAfQpE9O5WbtZKTepwgiAHLEJ5UpHG6mwwPXqN S30Dr65BqB4X8OE8jJRaJEdj1tIM0FNG+TmFynSpuL7s3HdXuvFK6UHh6vDrfe9Oo5O+ z82xh3PZLqzgBKRAA7OUlVF5//NuAr1H3QhTaPedqkUCF7jCYPmUZQLb4uZUp0RmlkoF lIItY4Muh6FFnrrMlsuz78DogIKIminR96o/bXgqDLD0vY/OEUvD1/1axdUtM3TSIx4a ITv3kKlKft3oOQXnGMEpWH/lBYEKAo4+6t585pfHHR9+CDHu3Ntd7QLEajlJJuQkVvg5 H7fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=elFJUtkGczEyt16rMCi734SsPQeLfxyynF6xIeqhIZQ=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=0/Fv+Vp/fr/9kDdo7lvbuIEF54Y9ziRM1mCQFHSmZOol9G0SUBBELptTV2xoabWmEE wckb+iCXAR5CzVZkHw1Zr2Jh+XcPV47jOvEdx6bvnTfmPLwHtXR3PeVcBESLi3vmAgjP j7DWUJDonNlG28ZOIVhQYRLXI/aZUl/F8b22+mh2GZ1S0RT/aF8GDsW5n+xGycBv1bPr KnK0BmtPO2Uyse/poU1ECuGcc6KsW7+revaf3GKuMWtrsS9yhCQBwkJyNm5xyi7ldsP+ JQ5XGSDkY8BgQGJOTY0lkYl8imkbAbIlw8SVe7jQ9gq2II2g2Fj1ZSawLrFhO7zIFQzb SXEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=MxbEt8Y9; 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 l2-20020a056402230200b00548e610311fsi1600162eda.174.2023.11.21.13.14.59; Tue, 21 Nov 2023 13:14:59 -0800 (PST) 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=20230601 header.b=MxbEt8Y9; 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 F056668CC92; Tue, 21 Nov 2023 23:14:54 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9633068C882 for ; Tue, 21 Nov 2023 23:14:48 +0200 (EET) Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-6c4cf0aea06so5746933b3a.0 for ; Tue, 21 Nov 2023 13:14:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700601286; x=1701206086; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=oB/q7+3DdeGlEV+BE2Jc9wtWjaYMAP08OIV4+h5e9ys=; b=MxbEt8Y9JAQhFhw2Kzcq3u89wc0teUIBdnh6nDjGPgCgmPvFHb+uG96gCwy9K/lMzp Vonu62s1zsa5GitKmY7m9cLFCpoj0sU3HKKWYbIO6k/D3LUdb5ngPIA28OH6PkGHz7+l yCA7o5pvwCq/d0DMYiZ1hb5AxvK9RJlOwDtLO2wGMpoOafZOnB5+TPPtvzN5SW3aUM+r ncPbrNPWzSaIYIO3itoqn1uqfnvlHn07AQKF0gb7NRqTwZg8ym2479xgpDtyyLK7HZpa 5SzVp6BuLewXFFZQhpDZhJk46P4fRQOF1jG9IAupYsr5MwA4QwDikd1cB8Wmzt4hIFEu bj0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700601286; x=1701206086; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oB/q7+3DdeGlEV+BE2Jc9wtWjaYMAP08OIV4+h5e9ys=; b=iYXUYbsuuARLRi/iWDQsT5+x2+WtQrHasH50K9rr9hgw1TyseqGLr7sublQFqnVrxs JbGErDO7HdZ7zN0AtYp9mHgfPX/HRBGB6DAZv/KFk9J572HAMcLnc+AxDNBnyPYC9/Ta 6V4NDB6HhKCzUZ3yWPcb10xOVROjjSGNhyJ9xzgTjoTmvmEy21bcH2cCuXTWoID9gTf3 FVylXZz3tqPRcW4vBxAWcx4SuSw9sEqS1EZvivJXiUxEeQibGvYVQklbMXbGcht544O2 x6yQ2XgHZ3L4D95HKOprJNRHy6wDP+D8qxlS5zaoG/tfLmBmLGSlbRzN1MfjPmBIeaBM qI8w== X-Gm-Message-State: AOJu0YwEwnnLfB+/C1nuzOoP4Wo7c2aoo9PhTAbpTVz5KCxONMCcemI1 EsvzF2IhOqMgEEkKWqAwR8Sdz6uLSoc= X-Received: by 2002:a05:6a20:7d89:b0:18a:d78e:4ef8 with SMTP id v9-20020a056a207d8900b0018ad78e4ef8mr369312pzj.1.1700601286052; Tue, 21 Nov 2023 13:14:46 -0800 (PST) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id bn2-20020a056a00324200b0069ea08a2a99sm8412505pfb.211.2023.11.21.13.14.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Nov 2023 13:14:45 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 Nov 2023 18:14:37 -0300 Message-ID: <20231121211442.8723-1-jamrial@gmail.com> X-Mailer: git-send-email 2.42.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 0/5] avformat: introduce AVStreamGroup 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 9eylx8yGSq1+ Addressed Anton's comments for AVStreamGroup, and made several changes to the iamf demuxer. This set also introduces an iamf muxer, as well as support for creating and setting stream groups to ffmpeg.c Comments are very welcome. James Almer (5): avformat: introduce AVStreamGroup avutil/mem: add av_dynarray2_add_nofree avformat: Immersive Audio Model and Formats demuxer avformat: Immersive Audio Model and Formats muxer ffmpeg: add support for muxing AVStreamGroups fftools/ffmpeg.h | 2 + fftools/ffmpeg_mux_init.c | 327 ++++++++++ fftools/ffmpeg_opt.c | 2 + libavcodec/avpacket.c | 3 + libavcodec/packet.h | 24 + libavformat/Makefile | 3 + libavformat/allformats.c | 2 + libavformat/avformat.c | 186 +++++- libavformat/avformat.h | 169 +++++ libavformat/dump.c | 140 +++- libavformat/iamf.c | 627 ++++++++++++++++++ libavformat/iamf.h | 379 +++++++++++ libavformat/iamf_internal.h | 190 ++++++ libavformat/iamf_parse.c | 1193 +++++++++++++++++++++++++++++++++++ libavformat/iamfdec.c | 533 ++++++++++++++++ libavformat/iamfenc.c | 1085 +++++++++++++++++++++++++++++++ libavformat/internal.h | 33 + libavformat/options.c | 139 ++++ libavutil/mem.c | 17 + libavutil/mem.h | 32 +- 20 files changed, 5052 insertions(+), 34 deletions(-) create mode 100644 libavformat/iamf.c create mode 100644 libavformat/iamf.h create mode 100644 libavformat/iamf_internal.h create mode 100644 libavformat/iamf_parse.c create mode 100644 libavformat/iamfdec.c create mode 100644 libavformat/iamfenc.c