FFmpeg
2.1.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
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_CAVS 0x42
56
#define STREAM_TYPE_VIDEO_VC1 0xea
57
#define STREAM_TYPE_VIDEO_DIRAC 0xd1
58
59
#define STREAM_TYPE_AUDIO_AC3 0x81
60
#define STREAM_TYPE_AUDIO_DTS 0x8a
61
62
typedef
struct
MpegTSContext
MpegTSContext
;
63
64
MpegTSContext
*
ff_mpegts_parse_open
(
AVFormatContext
*
s
);
65
int
ff_mpegts_parse_packet
(
MpegTSContext
*ts,
AVPacket
*
pkt
,
66
const
uint8_t
*
buf
,
int
len
);
67
void
ff_mpegts_parse_close
(
MpegTSContext
*ts);
68
69
typedef
struct
SLConfigDescr
{
70
int
use_au_start
;
71
int
use_au_end
;
72
int
use_rand_acc_pt
;
73
int
use_padding
;
74
int
use_timestamps
;
75
int
use_idle
;
76
int
timestamp_res
;
77
int
timestamp_len
;
78
int
ocr_len
;
79
int
au_len
;
80
int
inst_bitrate_len
;
81
int
degr_prior_len
;
82
int
au_seq_num_len
;
83
int
packet_seq_num_len
;
84
}
SLConfigDescr
;
85
86
typedef
struct
Mp4Descr
{
87
int
es_id
;
88
int
dec_config_descr_len
;
89
uint8_t
*
dec_config_descr
;
90
SLConfigDescr
sl
;
91
}
Mp4Descr
;
92
93
/**
94
* Parse an MPEG-2 descriptor
95
* @param[in] fc Format context (used for logging only)
96
* @param st Stream
97
* @param stream_type STREAM_TYPE_xxx
98
* @param pp Descriptor buffer pointer
99
* @param desc_list_end End of buffer
100
* @return <0 to stop processing
101
*/
102
int
ff_parse_mpeg2_descriptor
(
AVFormatContext
*
fc
,
AVStream
*st,
int
stream_type,
103
const
uint8_t
**pp,
const
uint8_t
*desc_list_end,
104
Mp4Descr
*mp4_descr,
int
mp4_descr_count,
int
pid,
105
MpegTSContext
*ts);
106
107
#endif
/* AVFORMAT_MPEGTS_H */
s
const char * s
Definition:
avisynth_c.h:668
Mp4Descr
Definition:
mpegts.h:86
MpegTSContext
Definition:
mpegts.c:95
Mp4Descr::sl
SLConfigDescr sl
Definition:
mpegts.h:90
SLConfigDescr::packet_seq_num_len
int packet_seq_num_len
Definition:
mpegts.h:83
Mp4Descr::es_id
int es_id
Definition:
mpegts.h:87
SLConfigDescr::inst_bitrate_len
int inst_bitrate_len
Definition:
mpegts.h:80
AVFormatContext
Format I/O context.
Definition:
avformat.h:968
uint8_t
uint8_t
Definition:
audio_convert.c:194
SLConfigDescr::au_seq_num_len
int au_seq_num_len
Definition:
mpegts.h:82
SLConfigDescr::use_au_start
int use_au_start
Definition:
mpegts.h:70
SLConfigDescr::timestamp_len
int timestamp_len
Definition:
mpegts.h:77
ff_mpegts_parse_open
MpegTSContext * ff_mpegts_parse_open(AVFormatContext *s)
Definition:
mpegts.c:2383
SLConfigDescr
Definition:
mpegts.h:69
fc
static uint16_t fc[]
Definition:
dcaenc.h:41
SLConfigDescr::ocr_len
int ocr_len
Definition:
mpegts.h:78
ff_mpegts_parse_packet
int ff_mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt, const uint8_t *buf, int len)
Definition:
mpegts.c:2402
AVStream
Stream structure.
Definition:
avformat.h:667
Mp4Descr::dec_config_descr
uint8_t * dec_config_descr
Definition:
mpegts.h:89
SLConfigDescr::use_au_end
int use_au_end
Definition:
mpegts.h:71
buf
void * buf
Definition:
avisynth_c.h:594
SLConfigDescr::use_timestamps
int use_timestamps
Definition:
mpegts.h:74
SLConfigDescr::use_idle
int use_idle
Definition:
mpegts.h:75
Mp4Descr::dec_config_descr_len
int dec_config_descr_len
Definition:
mpegts.h:88
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:1372
ff_mpegts_parse_close
void ff_mpegts_parse_close(MpegTSContext *ts)
Definition:
mpegts.c:2427
SLConfigDescr::use_rand_acc_pt
int use_rand_acc_pt
Definition:
mpegts.h:72
avformat.h
Main libavformat public API header.
len
int len
Definition:
vorbis_enc_data.h:452
SLConfigDescr::timestamp_res
int timestamp_res
Definition:
mpegts.h:76
SLConfigDescr::use_padding
int use_padding
Definition:
mpegts.h:73
pkt
static AVPacket pkt
Definition:
demuxing.c:52
SLConfigDescr::degr_prior_len
int degr_prior_len
Definition:
mpegts.h:81
SLConfigDescr::au_len
int au_len
Definition:
mpegts.h:79
AVPacket
This structure stores compressed data.
Definition:
avcodec.h:1040
Generated on Tue Dec 3 2013 09:58:18 for FFmpeg by
1.8.5