Thanks. Is there anything else that does not fit codebase tradition? Please point everything out so I could send a new patch.
On Sun, Apr 30, 2023 at 3:06 AM Michael Niedermayer <mich...@niedermayer.cc> wrote: > On Sat, Apr 29, 2023 at 02:53:06PM +0900, SuperFashi wrote: > > v1 -> v2: Refactor using GetByteContext; Fix compile error. > > v2 -> v3: Remove debug statement. > > v3 -> v4: Squash commits (sorry, first time git patch user :( > > > > 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 <ad...@superfashi.com> > > --- > > Changelog | 1 + > > doc/demuxers.texi | 4 + > > libavformat/Makefile | 1 + > > libavformat/allformats.c | 1 + > > libavformat/mmtp.c | 1372 ++++++++++++++++++++++++++++++++++++++ > > libavformat/mmtp.h | 61 ++ > > libavformat/mmttlv.c | 324 +++++++++ > > libavformat/version.h | 2 +- > > 8 files changed, 1765 insertions(+), 1 deletion(-) > > create mode 100644 libavformat/mmtp.c > > create mode 100644 libavformat/mmtp.h > > create mode 100644 libavformat/mmttlv.c > > > > diff --git a/Changelog b/Changelog > > index b6f6682904..2483fdd547 100644 > > --- a/Changelog > > +++ b/Changelog > > @@ -6,6 +6,7 @@ version <next>: > > - Playdate video decoder and demuxer > > - Extend VAAPI support for libva-win32 on Windows > > - afireqsrc audio source filter > > +- MMTP parser and MMT/TLV demuxer > > > > version 6.0: > > - Radiance HDR image support > > diff --git a/doc/demuxers.texi b/doc/demuxers.texi > > index 2d33b47a56..56aab251b2 100644 > > --- a/doc/demuxers.texi > > +++ b/doc/demuxers.texi > > @@ -689,6 +689,10 @@ Set the sample rate for libopenmpt to output. > > Range is from 1000 to INT_MAX. The value default is 48000. > > @end table > > > > +@section mmttlv > > + > > +Demuxer for MMT protocol over TLV packets (MMT/TLV), as defined in ARIB > STD-B32. > > + > > @section mov/mp4/3gp > > > > Demuxer for Quicktime File Format & ISO/IEC Base Media File Format > (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part 12). > > diff --git a/libavformat/Makefile b/libavformat/Makefile > > index f8ad7c6a11..e32d6e71a3 100644 > > --- a/libavformat/Makefile > > +++ b/libavformat/Makefile > > @@ -354,6 +354,7 @@ OBJS-$(CONFIG_MLV_DEMUXER) += mlvdec.o > riffdec.o > > OBJS-$(CONFIG_MM_DEMUXER) += mm.o > > OBJS-$(CONFIG_MMF_DEMUXER) += mmf.o > > OBJS-$(CONFIG_MMF_MUXER) += mmf.o rawenc.o > > +OBJS-$(CONFIG_MMTTLV_DEMUXER) += mmtp.o mmttlv.o > > OBJS-$(CONFIG_MODS_DEMUXER) += mods.o > > OBJS-$(CONFIG_MOFLEX_DEMUXER) += moflex.o > > OBJS-$(CONFIG_MOV_DEMUXER) += mov.o mov_chan.o mov_esds.o > \ > > diff --git a/libavformat/allformats.c b/libavformat/allformats.c > > index efdb34e29d..d5f4f5680e 100644 > > --- a/libavformat/allformats.c > > +++ b/libavformat/allformats.c > > @@ -270,6 +270,7 @@ extern const AVInputFormat ff_mlv_demuxer; > > extern const AVInputFormat ff_mm_demuxer; > > extern const AVInputFormat ff_mmf_demuxer; > > extern const FFOutputFormat ff_mmf_muxer; > > +extern const AVInputFormat ff_mmttlv_demuxer; > > extern const AVInputFormat ff_mods_demuxer; > > extern const AVInputFormat ff_moflex_demuxer; > > extern const AVInputFormat ff_mov_demuxer; > > diff --git a/libavformat/mmtp.c b/libavformat/mmtp.c > > new file mode 100644 > > index 0000000000..ba1fcab281 > > --- /dev/null > > +++ b/libavformat/mmtp.c > > @@ -0,0 +1,1372 @@ > > +/* > > + * MPEG Media Transport Protocol (MMTP) parser, as defined in ISO/IEC > 23008-1. > > + * Copyright (c) 2023 SuperFashi > > + * > > + * This file is part of FFmpeg. > > + * > > + * FFmpeg is free software; you can redistribute it and/or > > + * modify it under the terms of the GNU Lesser General Public > > + * License as published by the Free Software Foundation; either > > + * version 2.1 of the License, or (at your option) any later version. > > + * > > + * FFmpeg is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > > + * Lesser General Public License for more details. > > + * > > + * You should have received a copy of the GNU Lesser General Public > > + * License along with FFmpeg; if not, write to the Free Software > > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > 02110-1301 USA > > + */ > > +#include "libavutil/mem.h" > > +#include "libavutil/avassert.h" > > +#include "libavutil/intreadwrite.h" > > +#include "libavcodec/bytestream.h" > > +#include "network.h" > > +#include "mmtp.h" > > +#include "internal.h" > > +#include "demux.h" > > + > > +#include <stdbool.h> > > + > > > +#define ENSURE_BS_LEFT(bs, size) if (bytestream2_get_bytes_left(bs) < > (size)) return AVERROR_INVALIDDATA > > please dont wrap libavcodec API in another API > if every file in libavformat did that, noone would be able to > read code except their own files > > > > + > > +struct MMTGeneralLocationInfo { > > + uint8_t location_type; > > + union { > > + struct { > > + uint16_t packet_id; > > + } type0; > > + struct { > > + struct in_addr ipv4_src_addr; > > + struct in_addr ipv4_dst_addr; > > > + in_port_t dst_port; > > src/libavformat/mmtp.c:43:13: error: unknown type name ‘in_port_t’ > in_port_t dst_port; > > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > If the United States is serious about tackling the national security > threats > related to an insecure 5G network, it needs to rethink the extent to which > it > values corporate profits and government espionage over security.-Bruce > Schneier > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".