annotate libmpeg2/mpeg2.h @ 13395:07708ec98d87

New MD5 sum video output driver. For every frame, it calculates the MD5 sum and writes a list of those sums to an, optionally specified, output file. It does not rely on external programs to be installed. The MD5 sum code is borrowed from the uCIFS library, written by Christopher R. Hertel in 2004 and released under the LGPL license. Note: This driver is not yet activated and will not be compiled and linked to libvo. A separate patch will take care of that. This is just for adding the files to the repository.
author ivo
date Mon, 20 Sep 2004 01:01:08 +0000
parents d0a8810e155c
children 1385ec491ffb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
1 /*
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
2 * mpeg2.h
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
3 * Copyright (C) 2000-2003 Michel Lespinasse <walken@zoy.org>
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
4 * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
5 *
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
7 * See http://libmpeg2.sourceforge.net/ for updates.
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
8 *
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
9 * mpeg2dec is free software; you can redistribute it and/or modify
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
12 * (at your option) any later version.
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
13 *
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 * mpeg2dec is distributed in the hope that it will be useful,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17 * GNU General Public License for more details.
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
18 *
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
20 * along with this program; if not, write to the Free Software
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22 */
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
24 #ifndef MPEG2_H
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
25 #define MPEG2_H
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
26
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
27 #define MPEG2_VERSION(a,b,c) (((a)<<16)|((b)<<8)|(c))
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
28 #define MPEG2_RELEASE MPEG2_VERSION (0, 4, 0) /* 0.4.0 */
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
29
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
30 #define SEQ_FLAG_MPEG2 1
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
31 #define SEQ_FLAG_CONSTRAINED_PARAMETERS 2
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
32 #define SEQ_FLAG_PROGRESSIVE_SEQUENCE 4
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
33 #define SEQ_FLAG_LOW_DELAY 8
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
34 #define SEQ_FLAG_COLOUR_DESCRIPTION 16
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
35
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
36 #define SEQ_MASK_VIDEO_FORMAT 0xe0
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
37 #define SEQ_VIDEO_FORMAT_COMPONENT 0
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
38 #define SEQ_VIDEO_FORMAT_PAL 0x20
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
39 #define SEQ_VIDEO_FORMAT_NTSC 0x40
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
40 #define SEQ_VIDEO_FORMAT_SECAM 0x60
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
41 #define SEQ_VIDEO_FORMAT_MAC 0x80
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
42 #define SEQ_VIDEO_FORMAT_UNSPECIFIED 0xa0
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
43
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
44 typedef struct mpeg2_sequence_s {
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
45 unsigned int width, height;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
46 unsigned int chroma_width, chroma_height;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
47 unsigned int byte_rate;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
48 unsigned int vbv_buffer_size;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
49 uint32_t flags;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
50
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
51 unsigned int picture_width, picture_height;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
52 unsigned int display_width, display_height;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
53 unsigned int pixel_width, pixel_height;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
54 unsigned int frame_period;
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
55
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
56 uint8_t profile_level_id;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
57 uint8_t colour_primaries;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
58 uint8_t transfer_characteristics;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
59 uint8_t matrix_coefficients;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
60 } mpeg2_sequence_t;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
61
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
62 #define GOP_FLAG_DROP_FRAME 1
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
63 #define GOP_FLAG_BROKEN_LINK 2
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
64 #define GOP_FLAG_CLOSED_GOP 4
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
65
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
66 typedef struct mpeg2_gop_s {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
67 uint8_t hours;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
68 uint8_t minutes;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
69 uint8_t seconds;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
70 uint8_t pictures;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
71 uint32_t flags;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
72 } mpeg2_gop_t;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
73
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
74 #define PIC_MASK_CODING_TYPE 7
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
75 #define PIC_FLAG_CODING_TYPE_I 1
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
76 #define PIC_FLAG_CODING_TYPE_P 2
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
77 #define PIC_FLAG_CODING_TYPE_B 3
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
78 #define PIC_FLAG_CODING_TYPE_D 4
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
79
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
80 #define PIC_FLAG_TOP_FIELD_FIRST 8
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
81 #define PIC_FLAG_PROGRESSIVE_FRAME 16
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
82 #define PIC_FLAG_COMPOSITE_DISPLAY 32
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
83 #define PIC_FLAG_SKIP 64
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
84 #define PIC_FLAG_TAGS 128
10509
d9d24093db2e Export flags needed for softpulldown filter.
ranma
parents: 9852
diff changeset
85 #define PIC_FLAG_REPEAT_FIRST_FIELD 256
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
86 #define PIC_MASK_COMPOSITE_DISPLAY 0xfffff000
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
87
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
88 typedef struct mpeg2_picture_s {
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
89 unsigned int temporal_reference;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
90 unsigned int nb_fields;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
91 uint32_t tag, tag2;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
92 uint32_t flags;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
93 struct {
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
94 int x, y;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
95 } display_offset[3];
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
96 } mpeg2_picture_t;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
97
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
98 typedef struct mpeg2_fbuf_s {
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
99 uint8_t * buf[3];
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
100 void * id;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
101 } mpeg2_fbuf_t;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
102
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
103 typedef struct mpeg2_info_s {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
104 const mpeg2_sequence_t * sequence;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
105 const mpeg2_gop_t * gop;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
106 const mpeg2_picture_t * current_picture;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
107 const mpeg2_picture_t * current_picture_2nd;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
108 const mpeg2_fbuf_t * current_fbuf;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
109 const mpeg2_picture_t * display_picture;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
110 const mpeg2_picture_t * display_picture_2nd;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
111 const mpeg2_fbuf_t * display_fbuf;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
112 const mpeg2_fbuf_t * discard_fbuf;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
113 const uint8_t * user_data;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
114 unsigned int user_data_len;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
115 } mpeg2_info_t;
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
116
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
117 typedef struct mpeg2dec_s mpeg2dec_t;
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
118 typedef struct mpeg2_decoder_s mpeg2_decoder_t;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
119
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
120 typedef enum {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
121 STATE_BUFFER = 0,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
122 STATE_SEQUENCE = 1,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
123 STATE_SEQUENCE_REPEATED = 2,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
124 STATE_GOP = 3,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
125 STATE_PICTURE = 4,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
126 STATE_SLICE_1ST = 5,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
127 STATE_PICTURE_2ND = 6,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
128 STATE_SLICE = 7,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
129 STATE_END = 8,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
130 STATE_INVALID = 9,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
131 STATE_INVALID_END = 10
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
132 } mpeg2_state_t;
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
133
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
134 typedef struct mpeg2_convert_init_s {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
135 unsigned int id_size;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
136 unsigned int buf_size[3];
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
137 void (* start) (void * id, const mpeg2_fbuf_t * fbuf,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
138 const mpeg2_picture_t * picture, const mpeg2_gop_t * gop);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
139 void (* copy) (void * id, uint8_t * const * src, unsigned int v_offset);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
140 } mpeg2_convert_init_t;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
141 typedef enum {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
142 MPEG2_CONVERT_SET = 0,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
143 MPEG2_CONVERT_STRIDE = 1,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
144 MPEG2_CONVERT_START = 2
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
145 } mpeg2_convert_stage_t;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
146 typedef int mpeg2_convert_t (int stage, void * id,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
147 const mpeg2_sequence_t * sequence, int stride,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
148 uint32_t accel, void * arg,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
149 mpeg2_convert_init_t * result);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
150 int mpeg2_convert (mpeg2dec_t * mpeg2dec, mpeg2_convert_t convert, void * arg);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
151 int mpeg2_stride (mpeg2dec_t * mpeg2dec, int stride);
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
152 void mpeg2_set_buf (mpeg2dec_t * mpeg2dec, uint8_t * buf[3], void * id);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
153 void mpeg2_custom_fbuf (mpeg2dec_t * mpeg2dec, int custom_fbuf);
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
154
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
155 #define MPEG2_ACCEL_X86_MMX 1
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
156 #define MPEG2_ACCEL_X86_3DNOW 2
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
157 #define MPEG2_ACCEL_X86_MMXEXT 4
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
158 #define MPEG2_ACCEL_PPC_ALTIVEC 1
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
159 #define MPEG2_ACCEL_ALPHA 1
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
160 #define MPEG2_ACCEL_ALPHA_MVI 2
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
161 #define MPEG2_ACCEL_SPARC_VIS 1
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
162 #define MPEG2_ACCEL_SPARC_VIS2 2
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
163 #define MPEG2_ACCEL_DETECT 0x80000000
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
164
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
165 uint32_t mpeg2_accel (uint32_t accel);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
166 mpeg2dec_t * mpeg2_init (void);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
167 const mpeg2_info_t * mpeg2_info (mpeg2dec_t * mpeg2dec);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
168 void mpeg2_close (mpeg2dec_t * mpeg2dec);
36
846535ace7a2 libmpeg2-0.2.0 merge
arpi_esp
parents: 1
diff changeset
169
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
170 void mpeg2_buffer (mpeg2dec_t * mpeg2dec, uint8_t * start, uint8_t * end);
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
171 int mpeg2_getpos (mpeg2dec_t * mpeg2dec);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
172 mpeg2_state_t mpeg2_parse (mpeg2dec_t * mpeg2dec);
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
173
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
174 void mpeg2_reset (mpeg2dec_t * mpeg2dec, int full_reset);
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
175 void mpeg2_skip (mpeg2dec_t * mpeg2dec, int skip);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
176 void mpeg2_slice_region (mpeg2dec_t * mpeg2dec, int start, int end);
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
177
12932
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
178 void mpeg2_tag_picture (mpeg2dec_t * mpeg2dec, uint32_t tag, uint32_t tag2);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
179
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
180 void mpeg2_init_fbuf (mpeg2_decoder_t * decoder, uint8_t * current_fbuf[3],
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
181 uint8_t * forward_fbuf[3], uint8_t * backward_fbuf[3]);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
182 void mpeg2_slice (mpeg2_decoder_t * decoder, int code, const uint8_t * buffer);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
183
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
184 typedef enum {
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
185 MPEG2_ALLOC_MPEG2DEC = 0,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
186 MPEG2_ALLOC_CHUNK = 1,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
187 MPEG2_ALLOC_YUV = 2,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
188 MPEG2_ALLOC_CONVERT_ID = 3,
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
189 MPEG2_ALLOC_CONVERTED = 4
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
190 } mpeg2_alloc_t;
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
191
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
192 void * mpeg2_malloc (unsigned size, mpeg2_alloc_t reason);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
193 void mpeg2_free (void * buf);
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
194 void mpeg2_malloc_hooks (void * malloc (unsigned, mpeg2_alloc_t),
d0a8810e155c Importing libmpeg2 from mpeg2dec-0.4.0b
henry
parents: 10509
diff changeset
195 int free (void *));
9852
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
196
47984e3f54ce Importing libmpeg2 from mpeg2dec-0.3.1
arpi
parents: 2050
diff changeset
197 #endif /* MPEG2_H */