From patchwork Mon Aug 30 11:14:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 29877 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp3852591iov; Mon, 30 Aug 2021 04:14:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxoVRFK2kbroJ74mD7VGROQi68Gx8DZV6waAULh79EBHRyTqh4lA4DMmhU8G42NamyOpMgO X-Received: by 2002:a17:906:354a:: with SMTP id s10mr24460604eja.357.1630322065590; Mon, 30 Aug 2021 04:14:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630322065; cv=none; d=google.com; s=arc-20160816; b=bvYDXpIxghiCNmGERrxLFpGOsw61QmKVLgtpA641oGfAUleArjiw7OsAHLqLEktLej cI/QiEC7n7cBM96nWUkpT9PiSq3Pt30hxuFvd5nAWLaB6X789Y475k69Mpt/IABMkw8b 32ORarVbGJqlXSpyOQllKdVbn0H8SNLM/Vb4Wv20iypVTfrX0ySz3G+wUZKVvat8heAt +Jb99nbCBWkMs7uCAJatGy2kWP+G01eGGrshmbRaA0uqthkA8z852hMrU4Tk4IfsCyTF 16+3DWVxhkLycXPN4b19pft1WimtoXp+25pvIL8G1o0jINJRH7aayZY2eqoJ5Iiu7LmO Yvww== 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=yAN2GYuRb64VVQjs26cKoU0qAaerWK3H3uXYFnO+XGc=; b=ur+IN5eh6B4Q66SMRV26b/VpV1PanVNsFS/vVHuu6xnCoDHWROGjDtVlkpXmGclqAW StSCykT44utjMRnNBkiphNQhIvvozZUk9Q9Yxb/mao6VbTFAAXtDFWbpDqnCRB3C7CeJ iMEkxghFi3xV2Te0L5GZ2KqRg6gKtBB1jORgTgWiMYAADQFNcLyziuYRHqQ/Cd/73BIU xCGFm6G6F+aKimLhx99BKRPUXSjAs0YrMFUrS/dhvrXNHcq9FT1ugUKy3h5A31KRXMKz ukAjzmKXB+E5YkjpnFETcjaeV/IKVAfJRkITLHyldJA/340rcRnMPmGfntngTtxWwQJe htnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=RQ7HTbNl; 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 bl2si14981308ejb.55.2021.08.30.04.14.24; Mon, 30 Aug 2021 04:14:25 -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=20161025 header.b=RQ7HTbNl; 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 AB28A689A0D; Mon, 30 Aug 2021 14:14:20 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4017A680258 for ; Mon, 30 Aug 2021 14:14:14 +0300 (EEST) Received: by mail-lj1-f170.google.com with SMTP id f2so25255133ljn.1 for ; Mon, 30 Aug 2021 04:14:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=KeMS7+M2Rdbbsy7kAHW+CgAkxP75l++mQtvYb096fzw=; b=RQ7HTbNlc+ooU3slvM5V8jOd0/8sK+BAtcz1hWiHxZ8vNJVj7Flej3bVKqJiCAwAch 7Kcs2jAZmbrRr+g24omHF1puloRS6QNuQ4pphARly7ERq4lYpTB/OIuzRHHPHi6ZZ6AC 8/WXPAMIOgTWjctRcpQkYMoaa5p+NzPRl6xgkt2Iym22JdA6swtmB6iTaw4Iwlm8OxMU 4JxoTFNI7ckqRQG7XdPB/kjml7nB81PmP+FmVQIQ4jWatK4/rtoiJuyI28LsR+P9nMdg 8jg949j2XfEbfcjk54Rdt175ODdzSQ8vG4aU99nSEWsv892j+IiwadU8zc0ZiPt/MJCE hnjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=KeMS7+M2Rdbbsy7kAHW+CgAkxP75l++mQtvYb096fzw=; b=ugZKj/0N085ZbOojpdTQJxnH9eNiFsNq/gwMQAQn62sf41XB1Fe+gS0k6DA4tYAtzn /uOfcf2CJiWE1yQJSHlq5vA+GjeHZPDU6hFJXaKDbDEJbs0lD0wi8e/wZo0kV4LzPYKS F+XUuSQatu3K3WKPQkBnJQnHbXh3AD7FcLIl2bksp79triiUK2FoJx+sgoySJdaHa+iq STCE6Ab3nRmBgJawMcFgu7+nrwkSS9wKmo6WrSMSduM4fvXvJg0/SzV6oli4iIJmbGNW ASfbKaYZn+nOMaRCeno4EZz8Ncd2Fa7BqepDaYaUnVq1DhBXW9hsMyNrrBTFYoVPDCj4 dXwA== X-Gm-Message-State: AOAM533+gFegNLoNnAfjNRTT0dMjaDov2tRG3x3bYc9qg9z3Wfz+/df4 XkvhPwdk21cVVWtFMlZlI6VwX20i/vE= X-Received: by 2002:a2e:a54d:: with SMTP id e13mr20480174ljn.267.1630322053064; Mon, 30 Aug 2021 04:14:13 -0700 (PDT) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id bt29sm1366286lfb.4.2021.08.30.04.14.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Aug 2021 04:14:12 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Mon, 30 Aug 2021 14:14:05 +0300 Message-Id: <20210830111407.5655-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 0/2] Support for stream dispositions in MP4 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: GgnDTGL+2+sq First patch implements the CMAF specified way of flagging what in FFmpeg are are called stream dispositions. Other identifiers such as HTML media track kinds are allowed, but if there is a DASH identifier for something, it should be utilized in stead. Second patch is a compatibility patch for one of the vendors that supports this feature. If this is considered a too bad of a hack, we can drop it from being upstreamed, but at least I wanted to bring it up :) . The compatibility mode is not the default, so it should also not proliferate such behavior. Compared to first version: * Missed unused variables causing additional warnings were removed. Best regards, Jan Jan Ekström (2): avformat/{isom,mov,movenc}: add support for CMAF DASH roles avformat/{isom,movenc}: add kind box compatibility mode for Unified Origin libavformat/isom.c | 32 ++++++++ libavformat/isom.h | 18 +++++ libavformat/mov.c | 67 +++++++++++++++ libavformat/movenc.c | 57 +++++++++++++ libavformat/movenc.h | 2 + tests/fate/mov.mak | 17 ++++ .../ref/fate/mov-mp4-disposition-mpegts-remux | 81 +++++++++++++++++++ ...p4-disposition-unified-origin-mpegts-remux | 81 +++++++++++++++++++ 8 files changed, 355 insertions(+) create mode 100644 tests/ref/fate/mov-mp4-disposition-mpegts-remux create mode 100644 tests/ref/fate/mov-mp4-disposition-unified-origin-mpegts-remux