annotate mpeg.h @ 3068:9cc9ff5aff9c libavformat

set bps to uncompressed original sound data for compressed audio according to aiff specs, qt set it to 16 for mace and ima4, fail if block align is not set.
author bcoudurier
date Mon, 25 Feb 2008 12:00:31 +0000
parents e5dfe3c96f3b
children feeee985c74c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
1 /*
2176
50322a49fa2b split mpeg ps and variants muxer and demuxer, I'll clean more in a few minutes, lpcm freq tab is left static const in mpeg.h for now until we have more code in common
bcoudurier
parents: 2164
diff changeset
2 * MPEG1/2 muxer and demuxer common defines
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
15 * Lesser General Public License for more details.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
16 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
896
edbe5c3717f9 Update licensing information: The FSF changed postal address.
diego
parents: 885
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
20 */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
21
2620
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2176
diff changeset
22 #ifndef FFMPEG_MPEG_H
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2176
diff changeset
23 #define FFMPEG_MPEG_H
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
24
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
25 #define PACK_START_CODE ((unsigned int)0x000001ba)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
26 #define SYSTEM_HEADER_START_CODE ((unsigned int)0x000001bb)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
27 #define SEQUENCE_END_CODE ((unsigned int)0x000001b7)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
28 #define PACKET_START_CODE_MASK ((unsigned int)0xffffff00)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
29 #define PACKET_START_CODE_PREFIX ((unsigned int)0x00000100)
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30 #define ISO_11172_END_CODE ((unsigned int)0x000001b9)
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 858
diff changeset
31
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
32 /* mpeg2 */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
33 #define PROGRAM_STREAM_MAP 0x1bc
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
34 #define PRIVATE_STREAM_1 0x1bd
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
35 #define PADDING_STREAM 0x1be
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
36 #define PRIVATE_STREAM_2 0x1bf
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
37
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
38 #define AUDIO_ID 0xc0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
39 #define VIDEO_ID 0xe0
336
d75fd4c6ab62 primitive LPCM generator
bellard
parents: 335
diff changeset
40 #define AC3_ID 0x80
496
112057e05179 libdts support by (Benjamin Zores <ben at geexbox dot org>)
michael
parents: 483
diff changeset
41 #define DTS_ID 0x8a
336
d75fd4c6ab62 primitive LPCM generator
bellard
parents: 335
diff changeset
42 #define LPCM_ID 0xa0
789
411b75055a43 add support for muxing subtitles in mpeg-ps
aurel
parents: 783
diff changeset
43 #define SUB_ID 0x20
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
44
722
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
45 #define STREAM_TYPE_VIDEO_MPEG1 0x01
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
46 #define STREAM_TYPE_VIDEO_MPEG2 0x02
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
47 #define STREAM_TYPE_AUDIO_MPEG1 0x03
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
48 #define STREAM_TYPE_AUDIO_MPEG2 0x04
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
49 #define STREAM_TYPE_PRIVATE_SECTION 0x05
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
50 #define STREAM_TYPE_PRIVATE_DATA 0x06
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
51 #define STREAM_TYPE_AUDIO_AAC 0x0f
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
52 #define STREAM_TYPE_VIDEO_MPEG4 0x10
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
53 #define STREAM_TYPE_VIDEO_H264 0x1b
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
54
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
55 #define STREAM_TYPE_AUDIO_AC3 0x81
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
56 #define STREAM_TYPE_AUDIO_DTS 0x8a
2443f9469df2 PSM support in MPEG-PS demuxer.
mru
parents: 708
diff changeset
57
356
72c7cf2f3a7a CONFIG_ENCODERS fix by (Ronald Bultje <rbultje at ronald dot bitfreak dot net>)
michael
parents: 355
diff changeset
58 static const int lpcm_freq_tab[4] = { 48000, 96000, 44100, 32000 };
72c7cf2f3a7a CONFIG_ENCODERS fix by (Ronald Bultje <rbultje at ronald dot bitfreak dot net>)
michael
parents: 355
diff changeset
59
2906
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
60 /**
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
61 * Parse MPEG-PES five-byte timestamp
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
62 */
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
63 static inline int64_t ff_parse_pes_pts(uint8_t *buf) {
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
64 return (int64_t)(*buf & 0x0e) << 29 |
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
65 (AV_RB16(buf+1) >> 1) << 15 |
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
66 AV_RB16(buf+3) >> 1;
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
67 }
e5dfe3c96f3b Move parsing of MPEG-PES timestamp to mpeg.h (as an inline function) so it
ivo
parents: 2620
diff changeset
68
2620
792383dd085e Add FFMPEG_ prefix to all multiple inclusion guards.
diego
parents: 2176
diff changeset
69 #endif /* FFMPEG_MPEG_H */