X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fmpegts.h;h=e60329711bead63de99da76decb9984dbfce5033;hb=89e568feeca69b1e4b975d0b26aeafbe72fd5418;hp=771becbd4b78e8068268a771cc6e99c7044ea730;hpb=cf10ee184f721d3b9539f5e6d79de19704d8c52d;p=ffmpeg diff --git a/libavformat/mpegts.h b/libavformat/mpegts.h index 771becbd4b7..e60329711be 100644 --- a/libavformat/mpegts.h +++ b/libavformat/mpegts.h @@ -1,6 +1,6 @@ /* * MPEG2 transport stream defines - * Copyright (c) 2003 Fabrice Bellard. + * Copyright (c) 2003 Fabrice Bellard * * This file is part of FFmpeg. * @@ -19,9 +19,16 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifndef AVFORMAT_MPEGTS_H +#define AVFORMAT_MPEGTS_H + +#include "avformat.h" + #define TS_FEC_PACKET_SIZE 204 #define TS_DVHS_PACKET_SIZE 192 #define TS_PACKET_SIZE 188 +#define TS_MAX_PACKET_SIZE 204 + #define NB_PID_MAX 8192 #define MAX_SECTION_SIZE 4096 @@ -34,9 +41,6 @@ #define PMT_TID 0x02 #define SDT_TID 0x42 -/* descriptor ids */ -#define DVB_SUBT_DESCID 0x59 - #define STREAM_TYPE_VIDEO_MPEG1 0x01 #define STREAM_TYPE_VIDEO_MPEG2 0x02 #define STREAM_TYPE_AUDIO_MPEG1 0x03 @@ -44,20 +48,38 @@ #define STREAM_TYPE_PRIVATE_SECTION 0x05 #define STREAM_TYPE_PRIVATE_DATA 0x06 #define STREAM_TYPE_AUDIO_AAC 0x0f +#define STREAM_TYPE_AUDIO_AAC_LATM 0x11 #define STREAM_TYPE_VIDEO_MPEG4 0x10 #define STREAM_TYPE_VIDEO_H264 0x1b #define STREAM_TYPE_VIDEO_VC1 0xea +#define STREAM_TYPE_VIDEO_DIRAC 0xd1 #define STREAM_TYPE_AUDIO_AC3 0x81 #define STREAM_TYPE_AUDIO_DTS 0x8a -#define STREAM_TYPE_SUBTITLE_DVB 0x100 +typedef struct MpegTSContext MpegTSContext; -extern AVOutputFormat mpegts_muxer; +MpegTSContext *ff_mpegts_parse_open(AVFormatContext *s); +int ff_mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt, + const uint8_t *buf, int len); +void ff_mpegts_parse_close(MpegTSContext *ts); -typedef struct MpegTSContext MpegTSContext; +/** + * Parse an MPEG-2 descriptor + * @param[in] fc Format context (used for logging only) + * @param st Stream + * @param stream_type STREAM_TYPE_xxx + * @param pp Descriptor buffer pointer + * @param desc_list_end End of buffer + * @param mp4_dec_config_descr_len Length of 'mp4_dec_config_descr', or zero if not present + * @param mp4_es_id + * @param pid + * @param mp4_dec_config_descr + * @return <0 to stop processing + */ +int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type, + const uint8_t **pp, const uint8_t *desc_list_end, + int mp4_dec_config_descr_len, int mp4_es_id, int pid, + uint8_t *mp4_dec_config_descr); -MpegTSContext *mpegts_parse_open(AVFormatContext *s); -int mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt, - const uint8_t *buf, int len); -void mpegts_parse_close(MpegTSContext *ts); +#endif /* AVFORMAT_MPEGTS_H */