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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3, Mon Apr 15 08:04:06 2002 UTC revision 1.9.2.1, Mon Jun 9 13:55:49 2003 UTC
# Line 1  Line 1 
1    /*****************************************************************************
2     *
3     *  XVID MPEG-4 VIDEO CODEC
4     *  - Deprecated code  -
5     *
6     *  Copyright(C) 2002 Benjamin Lambert <foxer@hotmail.com>
7     *
8     *  This program is free software ; you can redistribute it and/or modify
9     *  it under the terms of the GNU General Public License as published by
10     *  the Free Software Foundation ; either version 2 of the License, or
11     *  (at your option) any later version.
12     *
13     *  This program is distributed in the hope that it will be useful,
14     *  but WITHOUT ANY WARRANTY ; without even the implied warranty of
15     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     *  GNU General Public License for more details.
17     *
18     *  You should have received a copy of the GNU General Public License
19     *  along with this program ; if not, write to the Free Software
20     *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21     *
22     * $Id$
23     *
24     ****************************************************************************/
25    
26  #ifndef _RATECONTROL_H_  #ifndef _RATECONTROL_H_
27  #define _RATECONTROL_H_  #define _RATECONTROL_H_
28    
 #include "../encoder.h"  
29  #include "../portab.h"  #include "../portab.h"
30    
31  void RateControlInit(uint32_t target_rate, uint32_t reaction_delay_factor,  typedef struct
32                                           uint32_t averaging_period, uint32_t buffer,  {
33                                           int framerate, int max_quant, int min_quant);          int64_t size;
34            int32_t count;
35  int RateControlGetQ(int keyframe);  }
36    QuantInfo;
37  void RateControlUpdate(int16_t quant, int frame_size, int keyframe);  
38    typedef struct
39    {
40            int32_t rtn_quant;
41            int64_t frames;
42            int64_t total_size;
43            double framerate;
44            int32_t target_rate;
45            int16_t max_quant;
46            int16_t min_quant;
47            int64_t last_change;
48            int64_t quant_sum;
49            double quant_error[32];
50            double avg_framesize;
51            double target_framesize;
52            double sequence_quality;
53            int32_t averaging_period;
54            int32_t reaction_delay_factor;
55            int32_t buffer;
56    }
57    RateControl;
58    
59    void RateControlInit(RateControl * rate_control,
60                                             uint32_t target_rate,
61                                             uint32_t reaction_delay_factor,
62                                             uint32_t averaging_period,
63                                             uint32_t buffer,
64                                             int framerate,
65                                             int max_quant,
66                                             int min_quant);
67    
68    int RateControlGetQ(RateControl * rate_control,
69                                            int keyframe);
70    
71    void RateControlUpdate(RateControl * rate_control,
72                                               int16_t quant,
73                                               int frame_size,
74                                               int keyframe);
75    
76  #endif /* _RATECONTROL_H_ */  #endif /* _RATECONTROL_H_ */
   

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.9.2.1

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