add multiple inclusion guards to headers
[libav.git] / libavformat / mpegts.h
CommitLineData
5dbafeb7
FB
1/*
2 * MPEG2 transport stream defines
3 * Copyright (c) 2003 Fabrice Bellard.
4 *
b78e7197
DB
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
5dbafeb7
FB
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
b78e7197 10 * version 2.1 of the License, or (at your option) any later version.
5dbafeb7 11 *
b78e7197 12 * FFmpeg is distributed in the hope that it will be useful,
5dbafeb7
FB
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
b78e7197 18 * License along with FFmpeg; if not, write to the Free Software
5509bffa 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
5dbafeb7
FB
20 */
21
699b3f99
MR
22#ifndef AVFORMAT_MPEGTS_H
23#define AVFORMAT_MPEGTS_H
24
99545457
MR
25#include "avformat.h"
26
5dbafeb7 27#define TS_FEC_PACKET_SIZE 204
5d4d67e0 28#define TS_DVHS_PACKET_SIZE 192
5dbafeb7
FB
29#define TS_PACKET_SIZE 188
30#define NB_PID_MAX 8192
31#define MAX_SECTION_SIZE 4096
32
33/* pids */
34#define PAT_PID 0x0000
35#define SDT_PID 0x0011
36
37/* table ids */
38#define PAT_TID 0x00
115329f1 39#define PMT_TID 0x02
5dbafeb7
FB
40#define SDT_TID 0x42
41
c6ec28b1
MN
42/* descriptor ids */
43#define DVB_SUBT_DESCID 0x59
44
ce34182d
MN
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
5dbafeb7
FB
49#define STREAM_TYPE_PRIVATE_SECTION 0x05
50#define STREAM_TYPE_PRIVATE_DATA 0x06
278de475
MR
51#define STREAM_TYPE_AUDIO_AAC 0x0f
52#define STREAM_TYPE_VIDEO_MPEG4 0x10
240ae82c 53#define STREAM_TYPE_VIDEO_H264 0x1b
cf10ee18 54#define STREAM_TYPE_VIDEO_VC1 0xea
5dbafeb7 55
ec23a472 56#define STREAM_TYPE_AUDIO_AC3 0x81
23c99253 57#define STREAM_TYPE_AUDIO_DTS 0x8a
ec23a472 58
c6ec28b1
MN
59#define STREAM_TYPE_SUBTITLE_DVB 0x100
60
d2a067d1 61extern AVOutputFormat mpegts_muxer;
b45a7a18
FB
62
63typedef struct MpegTSContext MpegTSContext;
64
65MpegTSContext *mpegts_parse_open(AVFormatContext *s);
66int mpegts_parse_packet(MpegTSContext *ts, AVPacket *pkt,
67 const uint8_t *buf, int len);
68void mpegts_parse_close(MpegTSContext *ts);
699b3f99
MR
69
70#endif