comparison mpegvideo.h @ 429:718a22dc121f libavcodec

license/copyright change
author glantau
date Sat, 25 May 2002 22:45:33 +0000
parents 5c8b3a717929
children 000aeeac27a2
comparison
equal deleted inserted replaced
428:dd4f4c3d7171 429:718a22dc121f
1 /* 1 /*
2 * Generic DCT based hybrid video encoder 2 * Generic DCT based hybrid video encoder
3 * Copyright (c) 2000,2001 Gerard Lantau. 3 * Copyright (c) 2000, 2001, 2002 Fabrice Bellard.
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify 5 * This library is free software; you can redistribute it and/or
6 * it under the terms of the GNU General Public License as published by 6 * modify it under the terms of the GNU Lesser General Public
7 * the Free Software Foundation; either version 2 of the License, or 7 * License as published by the Free Software Foundation; either
8 * (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This program is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * GNU General Public License for more details. 13 * Lesser General Public License for more details.
14 * 14 *
15 * You should have received a copy of the GNU General Public License 15 * You should have received a copy of the GNU Lesser General Public
16 * along with this program; if not, write to the Free Software 16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19 19
20 #define FRAME_SKIPED 100 // return value for header parsers if frame is not coded 20 #define FRAME_SKIPED 100 // return value for header parsers if frame is not coded
21 21
22 enum OutputFormat { 22 enum OutputFormat {
45 int qscale; 45 int qscale;
46 int mv_bits; 46 int mv_bits;
47 int i_tex_bits; 47 int i_tex_bits;
48 int p_tex_bits; 48 int p_tex_bits;
49 int misc_bits; 49 int misc_bits;
50 uint64_t expected_bits; 50 UINT64 expected_bits;
51 int new_pict_type; 51 int new_pict_type;
52 float new_qscale; 52 float new_qscale;
53 }RateControlEntry; 53 }RateControlEntry;
54 54
55 typedef struct RateControlContext{ 55 typedef struct RateControlContext{
276 /* mpeg4 specific */ 276 /* mpeg4 specific */
277 int time_increment_resolution; 277 int time_increment_resolution;
278 int time_increment_bits; /* number of bits to represent the fractional part of time */ 278 int time_increment_bits; /* number of bits to represent the fractional part of time */
279 int last_time_base; 279 int last_time_base;
280 int time_base; /* time in seconds of last I,P,S Frame */ 280 int time_base; /* time in seconds of last I,P,S Frame */
281 int64_t time; /* time of current frame */ 281 INT64 time; /* time of current frame */
282 int64_t last_non_b_time; 282 INT64 last_non_b_time;
283 uint16_t pp_time; /* time distance between the last 2 p,s,i frames */ 283 UINT16 pp_time; /* time distance between the last 2 p,s,i frames */
284 uint16_t bp_time; /* time distance between the last b and p,s,i frame */ 284 UINT16 bp_time; /* time distance between the last b and p,s,i frame */
285 int shape; 285 int shape;
286 int vol_sprite_usage; 286 int vol_sprite_usage;
287 int sprite_width; 287 int sprite_width;
288 int sprite_height; 288 int sprite_height;
289 int sprite_left; 289 int sprite_left;
312 312
313 /* divx specific, used to workaround (many) bugs in divx5 */ 313 /* divx specific, used to workaround (many) bugs in divx5 */
314 int divx_version; 314 int divx_version;
315 int divx_build; 315 int divx_build;
316 #define BITSTREAM_BUFFER_SIZE 1024*256 316 #define BITSTREAM_BUFFER_SIZE 1024*256
317 uint8_t *bitstream_buffer; //Divx 5.01 puts several frames in a single one, this is used to reorder them 317 UINT8 *bitstream_buffer; //Divx 5.01 puts several frames in a single one, this is used to reorder them
318 int bitstream_buffer_size; 318 int bitstream_buffer_size;
319 319
320 /* RV10 specific */ 320 /* RV10 specific */
321 int rv10_version; /* RV10 version: 0 or 3 */ 321 int rv10_version; /* RV10 version: 0 or 3 */
322 int rv10_first_dc_coded[3]; 322 int rv10_first_dc_coded[3];