[cvs] / xvidcore / src / utils / ratecontrol.h Repository:
ViewVC logotype

Annotation of /xvidcore/src/utils/ratecontrol.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (view) (download)

1 : edgomez 1.6 /*****************************************************************************
2 :     *
3 :     * XVID MPEG-4 VIDEO CODEC
4 :     * - 1 Pass rate controler header file -
5 :     *
6 :     * Copyright(C) 2002 Michael Militzer
7 :     *
8 :     * This program is an implementation of a part of one or more MPEG-4
9 :     * Video tools as specified in ISO/IEC 14496-2 standard. Those intending
10 :     * to use this software module in hardware or software products are
11 :     * advised that its use may infringe existing patents or copyrights, and
12 :     * any such use would be at such party's own risk. The original
13 :     * developer of this software module and his/her company, and subsequent
14 :     * editors and their companies, will have no liability for use of this
15 :     * software or modifications or derivatives thereof.
16 :     *
17 :     * This program is free software; you can redistribute it and/or modify
18 :     * it under the terms of the GNU General Public License as published by
19 :     * the Free Software Foundation; either version 2 of the License, or
20 :     * (at your option) any later version.
21 :     *
22 :     * This program is distributed in the hope that it will be useful,
23 :     * but WITHOUT ANY WARRANTY; without even the implied warranty of
24 :     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25 :     * GNU General Public License for more details.
26 :     *
27 :     * You should have received a copy of the GNU General Public License
28 :     * along with this program; if not, write to the Free Software
29 :     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30 :     *
31 :     * $Id$
32 :     *
33 :     ****************************************************************************/
34 :    
35 : Isibaar 1.1 #ifndef _RATECONTROL_H_
36 :     #define _RATECONTROL_H_
37 :    
38 :     #include "../portab.h"
39 :    
40 : edgomez 1.5 typedef struct
41 :     {
42 : edgomez 1.4 int64_t size;
43 :     int32_t count;
44 : edgomez 1.5 }
45 :     QuantInfo;
46 : Isibaar 1.1
47 : edgomez 1.4 typedef struct
48 :     {
49 :     int32_t rtn_quant;
50 :     int64_t frames;
51 :     int64_t total_size;
52 :     double framerate;
53 :     int32_t target_rate;
54 :     int16_t max_quant;
55 :     int16_t min_quant;
56 :     int64_t last_change;
57 :     int64_t quant_sum;
58 :     double quant_error[32];
59 :     double avg_framesize;
60 :     double target_framesize;
61 :     double sequence_quality;
62 :     int32_t averaging_period;
63 :     int32_t reaction_delay_factor;
64 :     int32_t buffer;
65 : edgomez 1.5 }
66 :     RateControl;
67 : Isibaar 1.1
68 : edgomez 1.5 void RateControlInit(RateControl * rate_control,
69 :     uint32_t target_rate,
70 :     uint32_t reaction_delay_factor,
71 :     uint32_t averaging_period,
72 :     uint32_t buffer,
73 :     int framerate,
74 :     int max_quant,
75 :     int min_quant);
76 :    
77 :     int RateControlGetQ(RateControl * rate_control,
78 :     int keyframe);
79 :    
80 :     void RateControlUpdate(RateControl * rate_control,
81 :     int16_t quant,
82 :     int frame_size,
83 :     int keyframe);
84 : Isibaar 1.1
85 : edgomez 1.6 #endif /* _RATECONTROL_H_ */

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4