annotate libmpdemux/mpeg_hdr.h @ 32493:59b6fef90241

Fix program switching with -demuxer lavf.
author reimar
date Sat, 06 Nov 2010 14:57:44 +0000
parents 102ae81b5dc8
children 562cd6805eac
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29238
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
1 /*
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
2 * This file is part of MPlayer.
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
3 *
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
5 * it under the terms of the GNU General Public License as published by
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
7 * (at your option) any later version.
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
8 *
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
12 * GNU General Public License for more details.
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
13 *
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
14 * You should have received a copy of the GNU General Public License along
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
17 */
d643e4643313 Add standard license header to all files in libmpdemux.
diego
parents: 26029
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
19 #ifndef MPLAYER_MPEG_HDR_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
20 #define MPLAYER_MPEG_HDR_H
2565
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
21
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
22 typedef struct {
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
23 // video info:
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
24 int mpeg1; // 0=mpeg2 1=mpeg1
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
25 int display_picture_width;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
26 int display_picture_height;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
27 int aspect_ratio_information;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
28 int frame_rate_code;
16184
04dd5945fab8 100l to whoever wrote this crap using 1/10000 units. it caused framerates to get trashed from 30000/1001 to 2997/100, etc.!
rfelker
parents: 15217
diff changeset
29 float fps;
30639
102ae81b5dc8 Parse and use the information from the frame rate extension header for MPEG-2.
reimar
parents: 30579
diff changeset
30 int frame_rate_extension_n;
102ae81b5dc8 Parse and use the information from the frame rate extension header for MPEG-2.
reimar
parents: 30579
diff changeset
31 int frame_rate_extension_d;
2565
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
32 int bitrate; // 0x3FFFF==VBR
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
33 // timing:
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
34 int picture_structure;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
35 int progressive_sequence;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
36 int repeat_first_field;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
37 int progressive_frame;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
38 int top_field_first;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
39 int display_time; // secs*100
14477
92553e3c8f01 automatic fps calculation for mpeg4 in raw stream/mpeg-ts
nicodvb
parents: 2565
diff changeset
40 //the following are for mpeg4
15217
d49091f2206c integer overflow when reading fps from h264 vui.
lorenm
parents: 14887
diff changeset
41 unsigned int timeinc_resolution, timeinc_bits, timeinc_unit;
14477
92553e3c8f01 automatic fps calculation for mpeg4 in raw stream/mpeg-ts
nicodvb
parents: 2565
diff changeset
42 int picture_type;
2565
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
43 } mp_mpeg_header_t;
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
44
24784
328d1b36952a Mark constant argument of mp_header_process_sequence_header as such.
diego
parents: 21947
diff changeset
45 int mp_header_process_sequence_header (mp_mpeg_header_t * picture, const unsigned char * buffer);
2565
4bc54a0f775f mpeg video header parser
arpi
parents:
diff changeset
46 int mp_header_process_extension (mp_mpeg_header_t * picture, unsigned char * buffer);
18398
a1375e440e92 COSMETICS: moved code to parse mpeg1/2 A/R to mpeg_hdr.c
nicodvb
parents: 16184
diff changeset
47 float mpeg12_aspect_info(mp_mpeg_header_t *picture);
14477
92553e3c8f01 automatic fps calculation for mpeg4 in raw stream/mpeg-ts
nicodvb
parents: 2565
diff changeset
48 int mp4_header_process_vol(mp_mpeg_header_t * picture, unsigned char * buffer);
14887
rathann
parents: 14798
diff changeset
49 void mp4_header_process_vop(mp_mpeg_header_t * picture, unsigned char * buffer);
14798
0bd50330e688 framerate autodetection for H264 in raw/ts streams
nicodvb
parents: 14477
diff changeset
50 int h264_parse_sps(mp_mpeg_header_t * picture, unsigned char * buf, int len);
21947
df1d03939216 added function to parse vc1 sequence header
nicodvb
parents: 18398
diff changeset
51 int mp_vc1_decode_sequence_header(mp_mpeg_header_t * picture, unsigned char * buf, int len);
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 24784
diff changeset
52
30579
7c6145c57bda Add mp_getbits() to mpeg_hdr.h to avoid a forward declaration.
diego
parents: 29238
diff changeset
53 unsigned char mp_getbits(unsigned char *buffer, unsigned int from, unsigned char len);
7c6145c57bda Add mp_getbits() to mpeg_hdr.h to avoid a forward declaration.
diego
parents: 29238
diff changeset
54
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
55 #endif /* MPLAYER_MPEG_HDR_H */