From patchwork Sat Apr 29 05:49:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: SuperFashi X-Patchwork-Id: 41414 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1842861pzb; Fri, 28 Apr 2023 22:50:36 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5HLdodZWsBZ6iSrR/kf93hjv5Upag1ZnbBtkVCwxcvKbrf/AkFyRSEjgZA1eznmOMy0t5S X-Received: by 2002:a17:907:ea5:b0:95f:133a:9b60 with SMTP id ho37-20020a1709070ea500b0095f133a9b60mr7732552ejc.57.1682747436642; Fri, 28 Apr 2023 22:50:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682747436; cv=none; d=google.com; s=arc-20160816; b=QD6U/duK8YrlpULzqoXFHwpEhjppm75NdJ6sWPAekgdSSmkiSRit5yCzQKOq7QM7QD dYgjRlWS+Ku8FFA62BXo+omGYt24SI5GMIN+8jwhIHuD6U7VYFn6O0vRtjbJ8CtdLTI7 14VJaJXbrtGcVFJIk0nmN5rVmdPeYC4bMCdRqn6/1wx9elmV7zn7ypO+IGSMSXN8IW98 k3qlN9PGGOGrWLgmPqn/ekCJgfY5gM7WvHsKj1GZoVZFDmQNes5xg4diEntI/A7GmCDg hifMAqRrS4Flgr8RrHyN8cEZeEd2wiFrdVahkTiZI4Qgj0Ir2jx9zb7UDzbG7U9T1WhV 8gtA== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=EtC+71ULo2W2AR/dYGGHY9VMoEKcdxm5XQL4mU4taEE=; b=zYkwJpI6oPCwx6r7Zgew+g+/MsS4ak9fu2u2AOanApepVIxibxBJSEPxBvgh86Kxc9 cCs3RPtEhnZDWGqQDkhOFZv42GtLlZVPUbWxRSAbPL1T1V/tQ6PHjE1LQ6z7YfsZTKNr Osa/hHVte3kXnsc/R2BkFCGtcvAJKTyQAbCISEpBmng3Gx1I0lLGQdZ3cxmJCKcr7TM1 uktAneeugsrp9VPUUH12pQRLDCoV1UTHB1bhRsqWZwPzTry4+kj6chFgxEy9oy5M2gsv 4KNrBDpCYjpxriv2SFWB9AI4BcJy2x7eGLEGUjMK/GjYjRXPgzorJdlSk1SwZ1rOTUUr toGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@superfashi-com.20221208.gappssmtp.com header.s=20221208 header.b=plSGjWl0; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id st11-20020a170907c08b00b0094f712dac50si18282563ejc.997.2023.04.28.22.50.36; Fri, 28 Apr 2023 22:50:36 -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=@superfashi-com.20221208.gappssmtp.com header.s=20221208 header.b=plSGjWl0; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 92F1568BF63; Sat, 29 Apr 2023 08:50:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9F5CB680118 for ; Sat, 29 Apr 2023 08:50:26 +0300 (EEST) Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-1a66e7a52d3so5558365ad.0 for ; Fri, 28 Apr 2023 22:50:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=superfashi-com.20221208.gappssmtp.com; s=20221208; t=1682747424; x=1685339424; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/rXkP14PZxRwflSXZc5mf5JII72u0mMsNHSLaFnrjiw=; b=plSGjWl0rNuEZubrCSwkWF9rSbWV8vu5Epubu7Q2qzfcWbOcs7RtIHKIMnSgVPz/lJ c5n0WdfnADPXmi5JOs3IMeqqyCYusGvc63LmVc6LHZ+buXZH+xSbPHJ4yUIXrWpGj55F WBiH76J4BXKWQqF39tRR5SzX2+6nvsex14YaPu6V9l06SatAEgOUqpk5uLueesLLOPlz Y3tibgWgBvniplS/ED4avfLertxF8CuD6HpH07o9dutrfn8oZ5Oiq0aeWZDoA5ckz/yL w9D21DZau8B/S8azc4NvxGqMw2L0ZLxqCZEj1bOQqqYoywZTcXac6upfB5Ypbn7dg/tI jQEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682747424; x=1685339424; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/rXkP14PZxRwflSXZc5mf5JII72u0mMsNHSLaFnrjiw=; b=f+Ppc6ICPgK0IuU2ELVfGUwCKqwzqsiwLfj0U3TbibMVDbH62jOX4uIi1rk9Sn9C8y m+RyMnr8hCsiDZjJDhbLCDwQSFWA67zCJ0H0A1Gh5DC/uCf0UaRcUjc9t1z7GGh1Lng1 quspyjoOg5E2BYED4OuJVUfDW5CQ4wljkk3TACKX/88nC069LAES54GwNiN8v4D+jjJf YqF6x9Q7aSKt4NTAVFb4kEuz/RmFv3Bjgs0ALtitwPNsCDkDrixpOfZ/cBkOICJWi5Sn BnfnMSA/De3hjudpIravwJ2i422dum9Xq0z6Lg+ACX1lawXhV4OtM76HpSTsczbP4+tI IdKQ== X-Gm-Message-State: AC+VfDz6jnXEnZjbVNlf7VJktFIyMrBCuXVfGTTA31HE2VDMcZYKDWCf 7bUG+A3tlUkBwCJhmJTvyeZWocvr8SaeXzz5kM0= X-Received: by 2002:a17:902:ce8f:b0:1a9:5c3f:6a75 with SMTP id f15-20020a170902ce8f00b001a95c3f6a75mr9039619plg.69.1682747424612; Fri, 28 Apr 2023 22:50:24 -0700 (PDT) Received: from localhost.localdomain ([2404:7a80:800:5e00:61c0:c7fd:4d76:8aca]) by smtp.gmail.com with ESMTPSA id ji9-20020a170903324900b001a1d4a985eesm14096245plb.228.2023.04.28.22.50.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Apr 2023 22:50:24 -0700 (PDT) From: SuperFashi To: ffmpeg-devel@ffmpeg.org Date: Sat, 29 Apr 2023 14:49:50 +0900 Message-Id: <20230429054950.6148-1-admin@superfashi.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230429054423.4404-1-admin@superfashi.com> References: <20230429054423.4404-1-admin@superfashi.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3] avformat: add MMTP parser and MMT/TLV demuxer 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: SuperFashi Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: R4whL5n7V+sQ v0 -> v1: Refactor using GetByteContext; Fix compile error. v1 -> v2: Remove debug statement. This patch adds an MPEG Media Transport Protocol (MMTP) parser, as defined in ISO/IEC 23008-1, and an MMT protocol over TLV packets (MMT/TLV) demuxer, as defined in ARIB STD-B32. Currently, it supports HEVC, AAC LATM, and ARIB-TTML demuxing. Since MMTP is designed to transmit over IP, there is no size information within each MMTP packet, and there is no filesystem format defined alongside the protocol. One industrial solution is a simple container format using type–length–value packets, which is defined in ARIB STD-B32. Another known container format for MMTP is using packet capture (pcap) files which records network packets. This patch does not include the demuxer for this container format. Signed-off-by: SuperFashi --- libavformat/mmtp.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libavformat/mmtp.c b/libavformat/mmtp.c index a2f98e39f6..ba1fcab281 100644 --- a/libavformat/mmtp.c +++ b/libavformat/mmtp.c @@ -29,8 +29,6 @@ #include -#define AVERROR_INVALIDDATA (abort(), 0) - #define ENSURE_BS_LEFT(bs, size) if (bytestream2_get_bytes_left(bs) < (size)) return AVERROR_INVALIDDATA struct MMTGeneralLocationInfo { @@ -115,7 +113,6 @@ static inline int parse_mmt_general_location_info(struct MMTGeneralLocationInfo return 0; } - struct Streams { AVStream *stream; @@ -155,7 +152,7 @@ struct MMTPContext { AVFormatContext *s; AVPacket *pkt; uint16_t current_pid; - bool is_rap; + bool is_rap; }; static inline struct Streams *find_current_stream(struct MMTPContext *ctx) {