Mercurial > libavcodec.hg
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]; |