FFmpeg
libavformat
mpegts.h
Go to the documentation of this file.
1
/*
2
* MPEG-2 transport stream defines
3
* Copyright (c) 2003 Fabrice Bellard
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#ifndef AVFORMAT_MPEGTS_H
23
#define AVFORMAT_MPEGTS_H
24
25
#include "
avformat.h
"
26
27
#define TS_FEC_PACKET_SIZE 204
28
#define TS_DVHS_PACKET_SIZE 192
29
#define TS_PACKET_SIZE 188
30
#define TS_MAX_PACKET_SIZE 204
31
32
#define NB_PID_MAX 8192
33
#define MAX_SECTION_SIZE 4096
34
35
/* pids */
36
#define PAT_PID 0x0000
37
#define SDT_PID 0x0011
38
39
/* table ids */
40
#define PAT_TID 0x00
41
#define PMT_TID 0x02
42
#define M4OD_TID 0x05
43
#define SDT_TID 0x42
44
45
#define STREAM_TYPE_VIDEO_MPEG1 0x01
46
#define STREAM_TYPE_VIDEO_MPEG2 0x02
47
#define STREAM_TYPE_AUDIO_MPEG1 0x03
48
#define STREAM_TYPE_AUDIO_MPEG2 0x04
49
#define STREAM_TYPE_PRIVATE_SECTION 0x05
50
#define STREAM_TYPE_PRIVATE_DATA 0x06
51
#define STREAM_TYPE_AUDIO_AAC 0x0f
52
#define STREAM_TYPE_AUDIO_AAC_LATM 0x11
53
#define STREAM_TYPE_VIDEO_MPEG4 0x10
54
#define STREAM_TYPE_METADATA 0x15
55
#define STREAM_TYPE_VIDEO_H264 0x1b
56
#define STREAM_TYPE_VIDEO_HEVC 0x24
57
#define STREAM_TYPE_VIDEO_CAVS 0x42
58
#define STREAM_TYPE_VIDEO_VC1 0xea
59
#define STREAM_TYPE_VIDEO_DIRAC 0xd1
60
61
#define STREAM_TYPE_AUDIO_AC3 0x81
62
#define STREAM_TYPE_AUDIO_DTS 0x82
63
#define STREAM_TYPE_AUDIO_TRUEHD 0x83
64
#define STREAM_TYPE_AUDIO_EAC3 0x87
65
66
typedef
struct
MpegTSContext
MpegTSContext
;
67
68
MpegTSContext
*
avpriv_mpegts_parse_open
(
AVFormatContext
*
s
);
69
int
avpriv_mpegts_parse_packet
(
MpegTSContext
*ts,
AVPacket
*
pkt
,
70
const
uint8_t
*
buf
,
int
len
);
71
void
avpriv_mpegts_parse_close
(
MpegTSContext
*ts);
72
73
typedef
struct
SLConfigDescr
{
74
int
use_au_start
;
75
int
use_au_end
;
76
int
use_rand_acc_pt
;
77
int
use_padding
;
78
int
use_timestamps
;
79
int
use_idle
;
80
int
timestamp_res
;
81
int
timestamp_len
;
82
int
ocr_len
;
83
int
au_len
;
84
int
inst_bitrate_len
;
85
int
degr_prior_len
;
86
int
au_seq_num_len
;
87
int
packet_seq_num_len
;
88
}
SLConfigDescr
;
89
90
typedef
struct
Mp4Descr
{
91
int
es_id
;
92
int
dec_config_descr_len
;
93
uint8_t
*
dec_config_descr
;
94
SLConfigDescr
sl
;
95
}
Mp4Descr
;
96
97
/**
98
* Parse an MPEG-2 descriptor
99
* @param[in] fc Format context (used for logging only)
100
* @param st Stream
101
* @param stream_type STREAM_TYPE_xxx
102
* @param pp Descriptor buffer pointer
103
* @param desc_list_end End of buffer
104
* @return <0 to stop processing
105
*/
106
int
ff_parse_mpeg2_descriptor
(
AVFormatContext
*
fc
,
AVStream
*st,
int
stream_type,
107
const
uint8_t
**pp,
const
uint8_t
*desc_list_end,
108
Mp4Descr
*mp4_descr,
int
mp4_descr_count,
int
pid,
109
MpegTSContext
*ts);
110
111
/**
112
* Check presence of H264 startcode
113
* @return <0 to stop processing
114
*/
115
int
ff_check_h264_startcode
(
AVFormatContext
*
s
,
const
AVStream
*st,
const
AVPacket
*
pkt
);
116
117
#endif
/* AVFORMAT_MPEGTS_H */
SLConfigDescr::au_seq_num_len
int au_seq_num_len
Definition:
mpegts.h:86
fc
#define fc(width, name, range_min, range_max)
Definition:
cbs_av1.c:555
SLConfigDescr::use_idle
int use_idle
Definition:
mpegts.h:79
SLConfigDescr::inst_bitrate_len
int inst_bitrate_len
Definition:
mpegts.h:84
avpriv_mpegts_parse_open
MpegTSContext * avpriv_mpegts_parse_open(AVFormatContext *s)
Definition:
mpegts.c:3231
SLConfigDescr::use_padding
int use_padding
Definition:
mpegts.h:77
SLConfigDescr::use_rand_acc_pt
int use_rand_acc_pt
Definition:
mpegts.h:76
SLConfigDescr::timestamp_len
int timestamp_len
Definition:
mpegts.h:81
avpriv_mpegts_parse_packet
int avpriv_mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt, const uint8_t *buf, int len)
Definition:
mpegts.c:3250
buf
void * buf
Definition:
avisynth_c.h:766
Mp4Descr::sl
SLConfigDescr sl
Definition:
mpegts.h:94
s
#define s(width, name)
Definition:
cbs_vp9.c:257
SLConfigDescr::degr_prior_len
int degr_prior_len
Definition:
mpegts.h:85
AVFormatContext
Format I/O context.
Definition:
avformat.h:1342
Mp4Descr::es_id
int es_id
Definition:
mpegts.h:91
Mp4Descr::dec_config_descr_len
int dec_config_descr_len
Definition:
mpegts.h:92
SLConfigDescr::ocr_len
int ocr_len
Definition:
mpegts.h:82
SLConfigDescr::packet_seq_num_len
int packet_seq_num_len
Definition:
mpegts.h:87
SLConfigDescr::use_au_start
int use_au_start
Definition:
mpegts.h:74
avpriv_mpegts_parse_close
void avpriv_mpegts_parse_close(MpegTSContext *ts)
Definition:
mpegts.c:3275
MpegTSContext
Definition:
mpegts.c:118
SLConfigDescr::use_au_end
int use_au_end
Definition:
mpegts.h:75
uint8_t
uint8_t
Definition:
audio_convert.c:194
len
int len
Definition:
vorbis_enc_data.h:452
SLConfigDescr::au_len
int au_len
Definition:
mpegts.h:83
ff_check_h264_startcode
int ff_check_h264_startcode(AVFormatContext *s, const AVStream *st, const AVPacket *pkt)
Check presence of H264 startcode.
Definition:
mpegtsenc.c:1438
AVStream
Stream structure.
Definition:
avformat.h:870
Mp4Descr::dec_config_descr
uint8_t * dec_config_descr
Definition:
mpegts.h:93
SLConfigDescr::use_timestamps
int use_timestamps
Definition:
mpegts.h:78
avformat.h
pkt
static AVPacket pkt
Definition:
demuxing_decoding.c:54
SLConfigDescr::timestamp_res
int timestamp_res
Definition:
mpegts.h:80
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1454
ff_parse_mpeg2_descriptor
int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type, const uint8_t **pp, const uint8_t *desc_list_end, Mp4Descr *mp4_descr, int mp4_descr_count, int pid, MpegTSContext *ts)
Parse an MPEG-2 descriptor.
Definition:
mpegts.c:1766
Mp4Descr
Definition:
mpegts.h:90
SLConfigDescr
Definition:
mpegts.h:73
Generated on Wed Aug 24 2022 21:27:23 for FFmpeg by
1.8.17