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
* MPEG2 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_VIDEO_H264 0x1b
55
#define STREAM_TYPE_VIDEO_HEVC 0x24
56
#define STREAM_TYPE_VIDEO_CAVS 0x42
57
#define STREAM_TYPE_VIDEO_VC1 0xea
58
#define STREAM_TYPE_VIDEO_DIRAC 0xd1
59
60
#define STREAM_TYPE_AUDIO_AC3 0x81
61
#define STREAM_TYPE_AUDIO_DTS 0x82
62
#define STREAM_TYPE_AUDIO_TRUEHD 0x83
63
64
typedef
struct
MpegTSContext
MpegTSContext
;
65
66
MpegTSContext
*
avpriv_mpegts_parse_open
(
AVFormatContext
*
s
);
67
int
avpriv_mpegts_parse_packet
(
MpegTSContext
*ts,
AVPacket
*
pkt
,
68
const
uint8_t
*
buf
,
int
len
);
69
void
avpriv_mpegts_parse_close
(
MpegTSContext
*ts);
70
71
typedef
struct
SLConfigDescr
{
72
int
use_au_start
;
73
int
use_au_end
;
74
int
use_rand_acc_pt
;
75
int
use_padding
;
76
int
use_timestamps
;
77
int
use_idle
;
78
int
timestamp_res
;
79
int
timestamp_len
;
80
int
ocr_len
;
81
int
au_len
;
82
int
inst_bitrate_len
;
83
int
degr_prior_len
;
84
int
au_seq_num_len
;
85
int
packet_seq_num_len
;
86
}
SLConfigDescr
;
87
88
typedef
struct
Mp4Descr
{
89
int
es_id
;
90
int
dec_config_descr_len
;
91
uint8_t
*
dec_config_descr
;
92
SLConfigDescr
sl
;
93
}
Mp4Descr
;
94
95
/**
96
* Parse an MPEG-2 descriptor
97
* @param[in] fc Format context (used for logging only)
98
* @param st Stream
99
* @param stream_type STREAM_TYPE_xxx
100
* @param pp Descriptor buffer pointer
101
* @param desc_list_end End of buffer
102
* @return <0 to stop processing
103
*/
104
int
ff_parse_mpeg2_descriptor
(
AVFormatContext
*
fc
,
AVStream
*st,
int
stream_type,
105
const
uint8_t
**pp,
const
uint8_t
*desc_list_end,
106
Mp4Descr
*mp4_descr,
int
mp4_descr_count,
int
pid,
107
MpegTSContext
*ts);
108
109
/**
110
* Check presence of H264 startcode
111
* @return <0 to stop processing
112
*/
113
int
ff_check_h264_startcode
(
AVFormatContext
*
s
,
const
AVStream
*st,
const
AVPacket
*
pkt
);
114
115
#endif
/* AVFORMAT_MPEGTS_H */
s
const char * s
Definition:
avisynth_c.h:631
Mp4Descr
Definition:
mpegts.h:88
MpegTSContext
Definition:
mpegts.c:110
pkt
static AVPacket pkt
Definition:
demuxing_decoding.c:54
Mp4Descr::sl
SLConfigDescr sl
Definition:
mpegts.h:92
SLConfigDescr::packet_seq_num_len
int packet_seq_num_len
Definition:
mpegts.h:85
Mp4Descr::es_id
int es_id
Definition:
mpegts.h:89
avpriv_mpegts_parse_close
void avpriv_mpegts_parse_close(MpegTSContext *ts)
Definition:
mpegts.c:2800
SLConfigDescr::inst_bitrate_len
int inst_bitrate_len
Definition:
mpegts.h:82
AVFormatContext
Format I/O context.
Definition:
avformat.h:1272
uint8_t
uint8_t
Definition:
audio_convert.c:194
SLConfigDescr::au_seq_num_len
int au_seq_num_len
Definition:
mpegts.h:84
SLConfigDescr::use_au_start
int use_au_start
Definition:
mpegts.h:72
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:1560
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:1204
SLConfigDescr::timestamp_len
int timestamp_len
Definition:
mpegts.h:79
fc
static const uint16_t fc[]
Definition:
dcaenc.h:41
avpriv_mpegts_parse_open
MpegTSContext * avpriv_mpegts_parse_open(AVFormatContext *s)
Definition:
mpegts.c:2756
SLConfigDescr
Definition:
mpegts.h:71
SLConfigDescr::ocr_len
int ocr_len
Definition:
mpegts.h:80
AVStream
Stream structure.
Definition:
avformat.h:842
Mp4Descr::dec_config_descr
uint8_t * dec_config_descr
Definition:
mpegts.h:91
SLConfigDescr::use_au_end
int use_au_end
Definition:
mpegts.h:73
buf
void * buf
Definition:
avisynth_c.h:553
SLConfigDescr::use_timestamps
int use_timestamps
Definition:
mpegts.h:76
SLConfigDescr::use_idle
int use_idle
Definition:
mpegts.h:77
Mp4Descr::dec_config_descr_len
int dec_config_descr_len
Definition:
mpegts.h:90
avformat.h
Main libavformat public API header.
SLConfigDescr::use_rand_acc_pt
int use_rand_acc_pt
Definition:
mpegts.h:74
len
int len
Definition:
vorbis_enc_data.h:452
SLConfigDescr::timestamp_res
int timestamp_res
Definition:
mpegts.h:78
SLConfigDescr::use_padding
int use_padding
Definition:
mpegts.h:75
SLConfigDescr::degr_prior_len
int degr_prior_len
Definition:
mpegts.h:83
avpriv_mpegts_parse_packet
int avpriv_mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt, const uint8_t *buf, int len)
Definition:
mpegts.c:2775
SLConfigDescr::au_len
int au_len
Definition:
mpegts.h:81
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1139
Generated on Wed Jun 10 2015 01:56:58 for FFmpeg by
1.8.6