20 |
* along with this program; if not, write to the Free Software |
* along with this program; if not, write to the Free Software |
21 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 |
* |
* |
23 |
* $Id: plugin_single.c,v 1.1.2.1 2003-05-12 12:33:16 suxen_drol Exp $ |
* $Id: plugin_single.c,v 1.1.2.4 2003-07-24 12:00:06 Isibaar Exp $ |
24 |
* |
* |
25 |
****************************************************************************/ |
****************************************************************************/ |
26 |
|
|
30 |
#include "../xvid.h" |
#include "../xvid.h" |
31 |
#include "../image/image.h" |
#include "../image/image.h" |
32 |
|
|
33 |
#define DEFAULT_INITIAL_QUANTIZER 5 |
#define DEFAULT_INITIAL_QUANTIZER 8 |
34 |
|
|
35 |
#define DEFAULT_BITRATE 900000 /* 900kbps */ |
#define DEFAULT_BITRATE 900000 /* 900kbps */ |
36 |
#define DEFAULT_DELAY_FACTOR 16 |
#define DEFAULT_DELAY_FACTOR 16 |
126 |
*handle = rc; |
*handle = rc; |
127 |
|
|
128 |
/* A bit of debug info */ |
/* A bit of debug info */ |
129 |
DPRINTF(DPRINTF_RC, "bytes_per_sec: %i\n", rc->bytes_per_sec); |
DPRINTF(XVID_DEBUG_RC, "bytes_per_sec: %i\n", rc->bytes_per_sec); |
130 |
DPRINTF(DPRINTF_RC, "frame rate : %f\n", (double) create->fbase / create->fincr); |
DPRINTF(XVID_DEBUG_RC, "frame rate : %f\n", (double) create->fbase / create->fincr); |
131 |
DPRINTF(DPRINTF_RC, "target_framesize: %f\n", rc->target_framesize); |
DPRINTF(XVID_DEBUG_RC, "target_framesize: %f\n", rc->target_framesize); |
132 |
|
|
133 |
return (0); |
return (0); |
134 |
} |
} |
173 |
double base_quality; |
double base_quality; |
174 |
double target_quality; |
double target_quality; |
175 |
|
|
|
|
|
176 |
/* Update internal values */ |
/* Update internal values */ |
177 |
rc->time += (double) data->fincr / data->fbase; |
rc->time += (double) data->fincr / data->fbase; |
178 |
rc->total_size += data->length; |
rc->total_size += data->length; |
179 |
|
|
180 |
|
if(data->type == XVID_TYPE_BVOP) |
181 |
|
return (0); |
182 |
|
|
183 |
|
rc->rtn_quant = data->quant; |
184 |
|
|
185 |
/* Compute the deviation from expected total size */ |
/* Compute the deviation from expected total size */ |
186 |
deviation = (int64_t) |
deviation = (int64_t) |
187 |
((double) rc->total_size - (double) rc->bytes_per_sec * rc->time); |
((double) rc->total_size - (double) rc->bytes_per_sec * rc->time); |