annotate libmpdemux/mpeg_hdr.h @ 36295:0bd0297b073a

Handle special argument -1 to switch_ratio as intended. Reset to the original aspect ratio that would have been used for the very first rescaling rather than to the display size ratio. This will now handle anamorphic videos correctly as well.
author ib
date Thu, 01 Aug 2013 21:18:14 +0000
parents bf6f772e609d
children
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);
34159
bf6f772e609d Mark pointer arguments as const where possible.
reimar
parents: 34158
diff changeset
46 int mp_header_process_extension (mp_mpeg_header_t * picture, const 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);
34159
bf6f772e609d Mark pointer arguments as const where possible.
reimar
parents: 34158
diff changeset
48 int mp4_header_process_vol(mp_mpeg_header_t * picture, const unsigned char * buffer);
bf6f772e609d Mark pointer arguments as const where possible.
reimar
parents: 34158
diff changeset
49 void mp4_header_process_vop(mp_mpeg_header_t * picture, const unsigned char * buffer);
34158
562cd6805eac Stop h264_parse_sps and mp_vc1_decode_sequence_header from corrupting the
reimar
parents: 30639
diff changeset
50 int h264_parse_sps(mp_mpeg_header_t * picture, const unsigned char * buf, int len);
562cd6805eac Stop h264_parse_sps and mp_vc1_decode_sequence_header from corrupting the
reimar
parents: 30639
diff changeset
51 int mp_vc1_decode_sequence_header(mp_mpeg_header_t * picture, const unsigned char * buf, int len);
25553
6ac1ece1f9fe Add multiple inclusion guards to all header files that lack them.
diego
parents: 24784
diff changeset
52
34159
bf6f772e609d Mark pointer arguments as const where possible.
reimar
parents: 34158
diff changeset
53 unsigned char mp_getbits(const unsigned char *buffer, unsigned int from, unsigned char len);
30579
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 */