FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
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 */
s
const char * s
Definition:
avisynth_c.h:768
Mp4Descr
Definition:
mpegts.h:90
MpegTSContext
Definition:
mpegts.c:111
pkt
static AVPacket pkt
Definition:
demuxing_decoding.c:54
Mp4Descr::sl
SLConfigDescr sl
Definition:
mpegts.h:94
SLConfigDescr::packet_seq_num_len
int packet_seq_num_len
Definition:
mpegts.h:87
Mp4Descr::es_id
int es_id
Definition:
mpegts.h:91
avpriv_mpegts_parse_close
void avpriv_mpegts_parse_close(MpegTSContext *ts)
Definition:
mpegts.c:2931
SLConfigDescr::inst_bitrate_len
int inst_bitrate_len
Definition:
mpegts.h:84
AVFormatContext
Format I/O context.
Definition:
avformat.h:1349
uint8_t
uint8_t
Definition:
audio_convert.c:194
SLConfigDescr::au_seq_num_len
int au_seq_num_len
Definition:
mpegts.h:86
SLConfigDescr::use_au_start
int use_au_start
Definition:
mpegts.h:74
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:1647
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:1430
SLConfigDescr::timestamp_len
int timestamp_len
Definition:
mpegts.h:81
fc
static const uint16_t fc[]
Definition:
dcaenc.h:43
avpriv_mpegts_parse_open
MpegTSContext * avpriv_mpegts_parse_open(AVFormatContext *s)
Definition:
mpegts.c:2887
SLConfigDescr
Definition:
mpegts.h:73
SLConfigDescr::ocr_len
int ocr_len
Definition:
mpegts.h:82
AVStream
Stream structure.
Definition:
avformat.h:889
Mp4Descr::dec_config_descr
uint8_t * dec_config_descr
Definition:
mpegts.h:93
SLConfigDescr::use_au_end
int use_au_end
Definition:
mpegts.h:75
buf
void * buf
Definition:
avisynth_c.h:690
SLConfigDescr::use_timestamps
int use_timestamps
Definition:
mpegts.h:78
SLConfigDescr::use_idle
int use_idle
Definition:
mpegts.h:79
Mp4Descr::dec_config_descr_len
int dec_config_descr_len
Definition:
mpegts.h:92
avformat.h
Main libavformat public API header.
SLConfigDescr::use_rand_acc_pt
int use_rand_acc_pt
Definition:
mpegts.h:76
len
int len
Definition:
vorbis_enc_data.h:452
SLConfigDescr::timestamp_res
int timestamp_res
Definition:
mpegts.h:80
SLConfigDescr::use_padding
int use_padding
Definition:
mpegts.h:77
SLConfigDescr::degr_prior_len
int degr_prior_len
Definition:
mpegts.h:85
avpriv_mpegts_parse_packet
int avpriv_mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt, const uint8_t *buf, int len)
Definition:
mpegts.c:2906
SLConfigDescr::au_len
int au_len
Definition:
mpegts.h:83
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1656
Generated on Fri Jan 12 2018 01:48:03 for FFmpeg by
1.8.6