From patchwork Sun Dec 5 17:35:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: quietvoid X-Patchwork-Id: 32007 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp3509210iog; Sun, 5 Dec 2021 09:36:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJzmKqCFTTDadcYh9jJjnRUBdYXSMzDMVf0qiHWjHzAdAinjCBBKDg7Ll8leZF4oCyz23acA X-Received: by 2002:a05:6402:12c1:: with SMTP id k1mr46320423edx.355.1638725767035; Sun, 05 Dec 2021 09:36:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1638725767; cv=none; d=google.com; s=arc-20160816; b=Bx/J4u2JFdnFAgxzoliWngQKnzU8D4JletwynwzD6oeh6lZK4VWFrux13oSCilrUDe Gi80FYTkqFmIA9bt0MSCetvFeK7LtYELODNxPVBSbdrCBjbcKb9o88+ZvYEINxt8L/Kc 0s5fR/dCV0G0vIyJuB7YEFVJ77Fi01H5jWoKFrALXwpcGT8h81x6YYUABwAz2LNwrY6I yHedVXi3T659V/cRTwwTN0hD7Do2vcdpj68VS0D4SLHTKwBpfo1Rmf5VXTwGaPHu08uy bIA2GBCruFWCQFNPnBS8BeWlkiHkBWu2gdy+KlitEZt/Su/lj1cJLttySjfP4oLtLVeF yZ/g== 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=DluislTjNk0/Hce97od+WUryQ11VMl+Na2UDfoFH4wA=; b=DgLTXEg5CypztbYUqaVFVjBC+9fkj/H1yOACHwKqfLCk2yHzizpIkgjcK+ktyA70JY b9W8V9KTsMt2lAQv4zoocm/z9R4ebiz6p4KMl+l8DNyJyQiT4HnFN6GWQG0PJES8Mz8W MiUGSQ3Bv0rki4B57AEZi99ZRoPW04VdWW7xATDXxl1aZ2sQfTSUtm0/MbRZ1BjJFszY oHpVP/eR1BIRMJxAnlGQHHnZIRZQ1yh12cajhJVlaC08EuG+Bb0aZSBAGZZZuQltZXl3 z31KZO2y1ehixCVZkawnYAq/dMJtajWNZXH2+ENjmQnX/OU5wcEC6PNnqC8fD9ojW37U 9amQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=ewuw2KTz; 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 i24si13352321edr.262.2021.12.05.09.36.06; Sun, 05 Dec 2021 09:36:07 -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=20210112 header.b=ewuw2KTz; 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 528F868AC6D; Sun, 5 Dec 2021 19:36:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 53466689D92 for ; Sun, 5 Dec 2021 19:35:55 +0200 (EET) Received: by mail-ed1-f54.google.com with SMTP id g14so33105402edb.8 for ; Sun, 05 Dec 2021 09:35:55 -0800 (PST) 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=aJqoUiaJ8XaEZ8EL/JlMgx009EEglWM3KmTPSzaiVII=; b=ewuw2KTzLgUrv3245avQcd5jz9ET/PL9P56iUpTLM46A9b+WpQ/BgkqUUOoRnTN0u9 50imiiS+a51NW3sDSnHad30vKxyFvVWtu/l2vHP29s2BWkanYYw5hoFnkw9MKaEbRlEk qcZ01uTAGx+s5Dazgk4OQVITff89F6M0srTvS3MNZFX/Z9bNv4ZyRY/723jUdzErAfG4 PqWGoe7aWaZMOgoLGDNHYRbpUehZo83S0aIcUEi85mEUGNmvAUbM4SAttH4wnlkEys+6 FGDmbWSGkaz7In99O6JEkVHwoqHXFMvE7lNnMjXWDjW0/GXmMfhzacqm+r1gv+c/WXJb +uTQ== 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=aJqoUiaJ8XaEZ8EL/JlMgx009EEglWM3KmTPSzaiVII=; b=CrgkgOi/oWcqX6q2zCBQB5b1mpZ3/zmTzac9ykG6vCzGMfjAZd1hlF/EbIYsvuOG4g Q7CbwR22BXaZtmYn3UyB026ZqfAKsdF7WJ01+Fnohcdtjkf7ve6rFYb2HIERBxHNJVvk wG1jkY5KIGwSvso4SBynA/2kLohdwWZqeGW7+M4LmgX8XDuPFA1Vp8vk6A+jsfV/Ni36 CyMh7eApqQfjsbpc/7B5quVyL0m9QmMdyF+9IJUqOte0gG5EIt0e60rNDj+jBMNIdG/9 Rey65nJGuBmRdAaskMmTyL78sBENLrNT6aTIconNwBhuuno6PcNV5hG/8Jr88d3QJYiV Riqg== X-Gm-Message-State: AOAM533ESmfalG1MzCX6+BIpGqpyJs4AixOUYhmhOLTmwkXzlTK/WyRB tKjN41pYVlBZpye8xZYlzQhBEWWFRkZycg== X-Received: by 2002:a05:6402:7d8:: with SMTP id u24mr47157160edy.215.1638725754183; Sun, 05 Dec 2021 09:35:54 -0800 (PST) Received: from localhost.localdomain ([2a01:4f8:162:73cc::2]) by smtp.gmail.com with ESMTPSA id h7sm6312352edb.89.2021.12.05.09.35.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Dec 2021 09:35:53 -0800 (PST) From: quietvoid X-Google-Original-From: quietvoid To: ffmpeg-devel@ffmpeg.org Date: Sun, 5 Dec 2021 18:35:30 +0100 Message-Id: <20211205173535.2306292-1-tcChlisop0@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v9 0/5] Add support for Matroska BlockAdditionMapping elements 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: quietvoid Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: FksUzGX8XaAr This patch set adds support for reading/writing the Matroska BlockAdditionMapping elements, as well as for reading/writing dvcC/dvvC blocks in Matroska. Created utility functions to read/write Dolby Vision boxes for ISOM. This was done to avoid duplicating the code, as the Matroska blocks and MOV boxes follow the same specification, defined by Dolby. Refactored the reading/writing in mov/movenc to use the new dovi_isom functions. v8: https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/288819.html Changes since v8: - Removed size argument from ff_isom_put_dvcc_dvvc, and changed the return type to void. The function always writes a constant number of bytes. quietvoid (5): avformat/dovi_isom: Implement Dolby Vision configuration parsing/writing avformat/matroska{dec, enc}: Parse BlockAdditionMapping elements avformat/mov: Refactor mov_read_dvcc_dvvc to use ff_isom_parse_dvcc_dvvc avformat/movenc: Refactor mov_write_dvcc_dvvc_tag to use ff_isom_put_dvcc_dvvc fate/matroska: Add tests for reading/writing BlockAdditionMapping elements libavformat/Makefile | 4 +- libavformat/dovi_isom.c | 118 ++++++++++ libavformat/dovi_isom.h | 35 +++ libavformat/matroska.h | 9 + libavformat/matroskadec.c | 58 ++++- libavformat/matroskaenc.c | 40 ++++ libavformat/mov.c | 50 +---- libavformat/movenc.c | 24 +- tests/fate/matroska.mak | 9 + tests/ref/fate/matroska-dovi-config-profile5 | 13 ++ tests/ref/fate/matroska-dovi-write-config | 223 +++++++++++++++++++ 11 files changed, 521 insertions(+), 62 deletions(-) create mode 100644 libavformat/dovi_isom.c create mode 100644 libavformat/dovi_isom.h create mode 100644 tests/ref/fate/matroska-dovi-config-profile5 create mode 100644 tests/ref/fate/matroska-dovi-write-config