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:111
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:2820
SLConfigDescr::inst_bitrate_len
int inst_bitrate_len
Definition:
mpegts.h:82
AVFormatContext
Format I/O context.
Definition:
avformat.h:1273
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:1579
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:1234
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:2776
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:2795
SLConfigDescr::au_len
int au_len
Definition:
mpegts.h:81
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1400
Generated on Thu Sep 10 2015 11:39:05 for FFmpeg by
1.8.6