--- branches/dev-api-4/xvidcore/src/plugins/plugin_2pass1.c 2003/07/29 23:02:34 1105 +++ branches/dev-api-4/xvidcore/src/plugins/plugin_2pass1.c 2003/12/17 15:16:16 1267 @@ -22,7 +22,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: plugin_2pass1.c,v 1.1.2.6 2003-07-29 23:02:34 edgomez Exp $ + * $Id: plugin_2pass1.c,v 1.1.2.10 2003-12-17 15:16:16 edgomez Exp $ * *****************************************************************************/ @@ -56,23 +56,22 @@ if((rc = malloc(sizeof(rc_2pass1_t))) == NULL) return(XVID_ERR_MEMORY); - /* Initialize safe defaults for 2pass 1 */ + /* Initialize safe defaults for 2pass 1 */ rc->stat_file = NULL; /* Open the 1st pass file */ - if((rc->stat_file = fopen(param->filename, "w+")) == NULL) + if((rc->stat_file = fopen(param->filename, "w+b")) == NULL) return(XVID_ERR_FAIL); /* * The File Header */ -#if 0 - fprintf(rc->stat_file, "# XviD 2pass stat file\n"); - fprintf(rc->stat_file, "version %i.%i.%i\n",XVID_MAJOR(XVID_VERSION), XVID_MINOR(XVID_VERSION), XVID_PATCH(XVID_VERSION)); - fprintf(rc->stat_file, "start\n"); - fprintf(rc->stat_file, "type quantizer length kblocks mblocks ublocks\n"); -#endif - + fprintf(rc->stat_file, "# XviD 2pass stat file (core version %d.%d.%d)\n", + XVID_VERSION_MAJOR(XVID_VERSION), + XVID_VERSION_MINOR(XVID_VERSION), + XVID_VERSION_PATCH(XVID_VERSION)); + fprintf(rc->stat_file, "# Please do not modify this file\n\n"); + rc->fq_error = 0; *handle = rc; @@ -83,7 +82,6 @@ static int rc_2pass1_destroy(rc_2pass1_t * rc, xvid_plg_destroy_t * destroy) { fclose(rc->stat_file); - free(rc); return(0); } @@ -91,17 +89,16 @@ static int rc_2pass1_before(rc_2pass1_t * rc, xvid_plg_data_t * data) { - if (data->quant <= 0) { - if (data->zone && data->zone->mode == XVID_ZONE_QUANT) { - rc->fq_error += (double)data->zone->increment / (double)data->zone->base; - data->quant = (int)rc->fq_error; - rc->fq_error -= data->quant; - - }else { - data->quant = 2; - } - } - return 0; + if (data->quant <= 0) { + if (data->zone && data->zone->mode == XVID_ZONE_QUANT) { + rc->fq_error += (double)data->zone->increment / (double)data->zone->base; + data->quant = (int)rc->fq_error; + rc->fq_error -= data->quant; + } else { + data->quant = 2; + } + } + return(0); } @@ -147,6 +144,7 @@ switch(opt) { case XVID_PLG_INFO : + case XVID_PLG_FRAME : return 0; case XVID_PLG_CREATE :