--- encoder.h 2003/03/16 12:04:14 1.27.2.5 +++ encoder.h 2003/10/01 23:23:00 1.27.2.15 @@ -1,16 +1,10 @@ /***************************************************************************** * * XVID MPEG-4 VIDEO CODEC - * - Encoder header - + * - Encoder related header - * - * This program is an implementation of a part of one or more MPEG-4 - * Video tools as specified in ISO/IEC 14496-2 standard. Those intending - * to use this software module in hardware or software products are - * advised that its use may infringe existing patents or copyrights, and - * any such use would be at such party's own risk. The original - * developer of this software module and his/her company, and subsequent - * editors and their companies, will have no liability for use of this - * software or modifications or derivatives thereof. + * Copyright(C) 2002-2003 Michael Militzer + * 2002-2003 Peter Ross * * This program is free software ; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,17 +20,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - ****************************************************************************/ -/***************************************************************************** - * - * History - * - * - 13.06.2002 Added legal header - * - 22.08.2001 Added support for EXT_MODE encoding mode - * support for EXTENDED API - * - 22.08.2001 fixed bug in iDQtab - * - * $Id: encoder.h,v 1.27.2.5 2003/03/16 12:04:14 suxen_drol Exp $ + * $Id: encoder.h,v 1.27.2.15 2003/10/01 23:23:00 edgomez Exp $ * ****************************************************************************/ @@ -46,7 +30,6 @@ #include "xvid.h" #include "portab.h" #include "global.h" -#include "utils/ratecontrol.h" /***************************************************************************** * Constants @@ -76,14 +59,23 @@ int plugin_flags; /* frame rate increment & base */ - uint32_t fincr; + int32_t fincr; uint32_t fbase; - xvid_global_t global_flags; + int profile; + + int global_flags; int bquant_ratio; int bquant_offset; int frame_drop_ratio; + int min_quant[3]; + int max_quant[3]; + + int par; + int par_width; + int par_height; + #ifdef _SMP int num_threads; #endif @@ -101,7 +93,7 @@ /* vars that not "quite" frame independant */ uint32_t m_rounding_type; uint32_t m_fcode; - xvid_vol_t vol_flags; + int vol_flags; int64_t m_stamp; } @@ -135,9 +127,9 @@ { int frame_num; int fincr; - xvid_vol_t vol_flags; - xvid_vop_t vop_flags; - xvid_motion_t motion_flags; + int vol_flags; + int vop_flags; + int motion_flags; int coding_type; uint32_t quant; @@ -153,11 +145,12 @@ MACROBLOCK *mbs; - WARPPOINTS warp; // as in bitstream - GMC_DATA gmc_data; // common data for all MBs + WARPPOINTS warp; /* as in bitstream */ + GMC_DATA gmc_data; /* common data for all MBs */ + NEW_GMC_DATA new_gmc_data; /* common data for all MBs */ int length; /* the encoded size of this frame */ - + Statistics sStat; } FRAMEINFO; @@ -170,15 +163,19 @@ int iFrameNum; int bitrate; - // plugins - unsigned int num_plugins; /* note: we store plugin flags in MBPARAM */ + /* zones */ + unsigned int num_zones; + xvid_enc_zone_t * zones; + + /* plugins */ + int num_plugins; /* note: we store plugin flags in MBPARAM */ xvid_enc_plugin_t * plugins; - // dquant + /* dquant */ int * temp_dquants; - // images + /* images */ FRAMEINFO *current; FRAMEINFO *reference; @@ -215,8 +212,6 @@ int m_framenum; /* debug frame num counter; unlike iFrameNum, does not reset at ivop */ - RateControl rate_control; - float fMvPrevSigma; } Encoder; @@ -260,7 +255,7 @@ void init_encoder(uint32_t cpu_flags); -int enc_create(xvid_enc_create_t * create, xvid_enc_rc_t * rc); +int enc_create(xvid_enc_create_t * create); int enc_destroy(Encoder * pEnc); int enc_encode(Encoder * pEnc, xvid_enc_frame_t * pFrame,