[FFmpeg-devel] [PATCH v3] avformat: add MMTP parser and MMT/TLV demuxer
SuperFashi
admin at superfashi.com
Sat Apr 29 08:49:50 EEST 2023
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 <admin at superfashi.com>
---
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 <stdbool.h>
-#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) {
--
2.25.1
More information about the ffmpeg-devel
mailing list