From patchwork Sat Jan 1 04:16:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: quietvoid X-Patchwork-Id: 32979 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp14457847iog; Fri, 31 Dec 2021 20:16:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzyg7+3IOUd3pFsCwan6L0cDxHyIfB1clTwLorHaIX31Yu63VIeZEY+fRjRH1/gAumKZT2i X-Received: by 2002:a17:906:d8cd:: with SMTP id re13mr32143011ejb.231.1641010596540; Fri, 31 Dec 2021 20:16:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641010596; cv=none; d=google.com; s=arc-20160816; b=pqVw75viyJsJKLZ1ylVOmtflS5JqmmuBdHmFU8wnW7sHMcee1q/bL7OBtNoTjVdQkR QTKA1tywL1emAyme8u9kM1ygeEh0rdk+wX4VAfDFetomk/RQJM9pfeCBqk2f/QSMX3oA 5yeTnlZ4D35o1unyvN+fSeM5gKKtzNR1eTroUvmo+sZEhzcyK0dJPHP5ymdaYJijxjbg Wwlzhu2BnKJcZgB93/73Y4Wm81NKHWSQ1dY9CKm98rxdqMTcG28E/tvB9JnShjrw7GlJ uAE7GOaDyLBKTMPv9Kd7CzD9ZlNkJqQnHEHjjzpVYNty5f+q8B68WuBOXjgjtHrJZ76+ qTNw== 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=F+RgnTbFERyCDUxVa0/ax7e4vnfGAY+mrKKyejnYmzI=; b=OOYw9SFJvx/1MoNO7UkbHE0jWtQ6JlXWST7TIumnMKq8Fnjx/UO6XxW/uWlQBjvwzY pwfDZePkqCZJXklRy3Ti6BOldA6WY5FzsKQzXGAnicaqQ5kEx1CXeFRQn5mkHMqzACyV WrGFAiIv2BlxdDx7ElWzr2A4VrDnaSbyxWg7el9mELj+u4n620wRw5wvgSZs722a91MR t8yQ6fpkcWoQaApDLknc0KXKh6OhpZCHXNjLNDylrXmq9Xd3Zi1ApTp6NeBGtFslRmwm tGxgmZbQnysX3JZep2ndOm3Xs6+Qv2oUybsARudqBx8nxrIwctwgAliMCD6sqov/vZq9 9A+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Lj4+HJIw; 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 hc14si14554718ejc.365.2021.12.31.20.16.35; Fri, 31 Dec 2021 20:16:36 -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=Lj4+HJIw; 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 8131668B0B3; Sat, 1 Jan 2022 06:16:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BAFBA68B050 for ; Sat, 1 Jan 2022 06:16:24 +0200 (EET) Received: by mail-ed1-f44.google.com with SMTP id z9so44645443edm.10 for ; Fri, 31 Dec 2021 20:16:24 -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=vz+2qAdSakqcQFExFM6da5GHFl64Ig/makn/N2RY1uE=; b=Lj4+HJIwyQRCJjXAYktn191KKNL50kaG9OTs/+3D6lVcVMsT1I9TrxX6yjyKT4NEZv VgfHXv4eLwe2+647J/9RoCP1O4QOVU9tK2NOZS+H5fSqIptRXH05Tg1UgFP8wIojlQ0W JzkbAcWlTpHomcKe3AIlk5aXuBlGZv1u19XpXdxahBB6E0otFlMiQxg5kIuQGFREKrXQ y6gp0IPfgbg3dm9sD1TAqA/nRgZlSrHFmS2uZR2ULIs5K1CqatxoHjfA8Ui1wl2cFON2 8j6qtXDRrIAVYaNE1YC/PyyeCTOZ31V5aOM0pHnxjYEb8MJLKeSVNHxi84BNx3Qk0IrE CRbg== 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=vz+2qAdSakqcQFExFM6da5GHFl64Ig/makn/N2RY1uE=; b=TWJnP5K1M0y+QmVCOFHfQ2J9KWrZXb5RXLWRFrLLKvCP46TG47uRMhYcKcHyu5kWUf mG3Ba2A8lHf+Ec+zaP1/gOOvcR8+7CXMavP0eR9OXRvSqEpOuUHbND6FSwv9tgdh+S+h Q68U9kX08Y2/FJaIoXSWYXD8uf1aGUX5lLQKuMaef7XoRb1/NUtkSwgI40YBstlcHhGI 1A8+maCLj0RMaX/mPaqfvgO4ad2pWmqxHGgH0+FXjbbfq3OyusKLD8xDKTtyJlT+Wms9 maDaVkKrnIHkNfOlNQmUHqM5c6/CqaFRP3vjOTorGUcpfyn86pyyeXpdmpzO+6bonMLk QWfQ== X-Gm-Message-State: AOAM531wckqTYB2Q9Jn5vbN35v1D0iYiRhBvF+4wEyicQ4DsTnezpekF yhh5UwEjRzTmL2FtEKlZe13hJ0txJ0w= X-Received: by 2002:a17:907:d93:: with SMTP id go19mr31522766ejc.537.1641010583932; Fri, 31 Dec 2021 20:16:23 -0800 (PST) Received: from nark.. ([2a01:4f8:162:73cc::2]) by smtp.gmail.com with ESMTPSA id z18sm11272075edc.76.2021.12.31.20.16.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Dec 2021 20:16:23 -0800 (PST) From: quietvoid X-Google-Original-From: quietvoid To: ffmpeg-devel@ffmpeg.org Date: Sat, 1 Jan 2022 05:16:16 +0100 Message-Id: <20220101041621.427012-1-tcChlisop0@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v11 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: ExRIfrXIWiFQ 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. v10: https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/289645.html Changes since v10: - dovi_isom: Limited written values to fit into the amount of bits. - matroskaenc: Corrected mkv_write_dovi to only allow profiles that are valid for dvcC/dvvC configurations. - mov: Improved code to be more concise. 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 | 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, 516 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