From patchwork Tue Dec 14 15:29:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: quietvoid X-Patchwork-Id: 32496 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7120997iog; Tue, 14 Dec 2021 07:30:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJwAE9c8q45OYBcHUBScnU/GHCw7b1VFI7aVln45tlwY/grQtjUMjxxbZo/NEfo/H/EKgjZ9 X-Received: by 2002:a17:907:8a20:: with SMTP id sc32mr6639359ejc.65.1639495829843; Tue, 14 Dec 2021 07:30:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639495829; cv=none; d=google.com; s=arc-20160816; b=CsR1frb8lTmvFpqQpEFskR4yWrUI7QfLvLG82uYV502+HC9a5bKB5gkiosahjW3hWY WXzbpVsMSXGBLLW7y0dqhLwPROohw6dl68iSwsiMTrYADBdw8pELS634BzfV75di3I5k XuxhC4bvUdI9VqBbJktEEogw5NxCy3QLkXSgbKteP+0+XQSf2g4GdLpfjnOTp2dJTVjy L8wjoLD5CkAnvDljxkANMKmGONlNhXJH09Mp5pXBL+dNhw0Qwly24Vk0fuonITeGFw5o HBOyub+0PuZYC22sJR2Io3nUbtTNch/8/27iusYa7f4hvUxqUZIqPqhcWYrq7zMLKxJ4 yw9Q== 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=xYA6B9zgLF7ZhjyrhFtX45uyTGgKzc2uZSmBJOIiMP0=; b=NvtvZKA72ZGDyk+78wmK0n8KEJp9qw8a/yacOG5O60pm9GAPLQ1/KdD92JYveQm6Xs EGKgGSs6ZNemXfDF7WMl7g5RziVVMaKNV+M3/qiNuU5yxFhlkoJLMilQRkUHyK7OHykR yFJgz4uur4RCAi3H6amkbysePvXLRbufKEimGr0sMqV6/pihd4oXiLu9QCzWHYm5F/JZ sqk6rvsmPOZnksyKe0jaa2iniBYufVP4VGH+Lwn6KZrwRPwgvg3TmYeeP1IQ9xM87kRV BkumsgPTLv3MvmiP9yX/OH5kgae/y1wQF1Mx1bK8CISsuXO6YF2ORYviERGmJgGo7kki 53iQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="iiUTA/gl"; 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 cx23si192239edb.77.2021.12.14.07.30.29; Tue, 14 Dec 2021 07:30:29 -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="iiUTA/gl"; 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 B553068A8DB; Tue, 14 Dec 2021 17:30:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 566AC68A6F6 for ; Tue, 14 Dec 2021 17:30:20 +0200 (EET) Received: by mail-ed1-f51.google.com with SMTP id z7so3190836edc.11 for ; Tue, 14 Dec 2021 07:30:20 -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=sUVXDJjoMx5Vg3DIqPO+A014VfGTifRmXFmgWL4MHJk=; b=iiUTA/glQvW54oc+n1y+SpyNJTspCGqa32NfvbvL/1ZQjk0/O//g+QjRJxM6C4AJVy 0WPE3dt0n+bljUwqNwR9aXs0wwQm6Fcaq/bPFFbhIzWkzhWgCl55pZg+Yq3vGV4uDJa9 YiwnM4J4bvZhcDAvcYxpzoQB9AvhTtpX6m6sKTSaDZOjQ0cplWc+ytZtcTAH0+EpeiRT /c1NQyvFk06ZiM6WY13nA+q2D7j+vZmBz/MMJNL4FXaWFPXzlKk7Hg1rvC6Mirq/+75N YoUPhSbzfYyvLGWonUsM/ybjOheGU+eGffoo1sr181U7/oOKg1wRWETx/KeJnsfzboUC f1/Q== 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=sUVXDJjoMx5Vg3DIqPO+A014VfGTifRmXFmgWL4MHJk=; b=WiDFTKNlGfq04T7ixLROyr88t9OHC069JAUqalk6kKbCtB2bq0U07mrprFq5x7QyNU PeiMxBXoyAIPiau+Jw6sFZ4OoRBNkVNh/mad+oZnkXMEdqy2nqOvZRlYw2VKWitPosjj iW34QPVvUQIgzS1liBH8VelyLm3l96tOqJ36FB/MQVg8DhG8gptYFOeevFK/7nr7aA7G ooShgxQJzYONE0PZlvmd34d1twCVcwuu30TPT2hXzaJ/m0iioX7VH2Nx2LfP9wBBTwd+ lzwdnrCeTuAwm2SMBdy3GphJ0j/aMMEEoaQNO8aMtxg1bvmbJB6lgDDH9Wb9jxFmWL7x N8+g== X-Gm-Message-State: AOAM532QowfdGQgvRJMx4Sl0rV/Gqz7hPF96SV5D2FiBvja/1vbSYvfY xFXur8+ZvTfjlN2fxpDc2r04ZW3xO3g= X-Received: by 2002:a17:907:7b98:: with SMTP id ne24mr6314248ejc.14.1639495819597; Tue, 14 Dec 2021 07:30:19 -0800 (PST) Received: from localhost.localdomain ([2a01:4f8:162:73cc::2]) by smtp.gmail.com with ESMTPSA id p19sm22062ejn.97.2021.12.14.07.30.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Dec 2021 07:30:19 -0800 (PST) From: quietvoid X-Google-Original-From: quietvoid To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Dec 2021 16:29:56 +0100 Message-Id: <20211214153001.2610297-1-tcChlisop0@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v10 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: ylcHVSTvbaNB 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. v9: https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/288896.html Changes since v9: - mov: Fixed size validation for reading into temporary buffer. As suggested here: https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/289087.html - mov: Removed the unnecessary padding for the temporary buffer. Because avio_read respects the requested size. - matroskaenc: Changed mkv_write_dovi return type to void, as it is infallible. 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 | 37 +++ libavformat/mov.c | 52 +---- 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, 518 insertions(+), 64 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