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
mpeg.h
Go to the documentation of this file.
1
/*
2
* MPEG1/2 muxer and demuxer common defines
3
* Copyright (c) 2000, 2001, 2002 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_MPEG_H
23
#define AVFORMAT_MPEG_H
24
25
#include <stdint.h>
26
#include "
libavutil/intreadwrite.h
"
27
28
#define PACK_START_CODE ((unsigned int)0x000001ba)
29
#define SYSTEM_HEADER_START_CODE ((unsigned int)0x000001bb)
30
#define SEQUENCE_END_CODE ((unsigned int)0x000001b7)
31
#define PACKET_START_CODE_MASK ((unsigned int)0xffffff00)
32
#define PACKET_START_CODE_PREFIX ((unsigned int)0x00000100)
33
#define ISO_11172_END_CODE ((unsigned int)0x000001b9)
34
35
/* mpeg2 */
36
#define PROGRAM_STREAM_MAP 0x1bc
37
#define PRIVATE_STREAM_1 0x1bd
38
#define PADDING_STREAM 0x1be
39
#define PRIVATE_STREAM_2 0x1bf
40
41
#define AUDIO_ID 0xc0
42
#define VIDEO_ID 0xe0
43
#define H264_ID 0xe2
44
#define AC3_ID 0x80
45
#define DTS_ID 0x88
46
#define LPCM_ID 0xa0
47
#define SUB_ID 0x20
48
49
#define STREAM_TYPE_VIDEO_MPEG1 0x01
50
#define STREAM_TYPE_VIDEO_MPEG2 0x02
51
#define STREAM_TYPE_AUDIO_MPEG1 0x03
52
#define STREAM_TYPE_AUDIO_MPEG2 0x04
53
#define STREAM_TYPE_PRIVATE_SECTION 0x05
54
#define STREAM_TYPE_PRIVATE_DATA 0x06
55
#define STREAM_TYPE_AUDIO_AAC 0x0f
56
#define STREAM_TYPE_VIDEO_MPEG4 0x10
57
#define STREAM_TYPE_VIDEO_H264 0x1b
58
#define STREAM_TYPE_VIDEO_CAVS 0x42
59
60
#define STREAM_TYPE_AUDIO_AC3 0x81
61
62
static
const
int
lpcm_freq_tab
[4] = { 48000, 96000, 44100, 32000 };
63
64
/**
65
* Parse MPEG-PES five-byte timestamp
66
*/
67
static
inline
int64_t
ff_parse_pes_pts
(
const
uint8_t
*
buf
) {
68
return
(int64_t)(*buf & 0x0e) << 29 |
69
(
AV_RB16
(buf+1) >> 1) << 15 |
70
AV_RB16
(buf+3) >> 1;
71
}
72
73
#endif
/* AVFORMAT_MPEG_H */
Generated on Sun Sep 14 2014 18:56:13 for FFmpeg by
1.8.2