--- encoder.h 2002/11/26 23:44:10 1.25 +++ encoder.h 2010/09/13 07:38:09 1.33 @@ -1,56 +1,26 @@ /***************************************************************************** * * XVID MPEG-4 VIDEO CODEC - * - Encoder header - + * - Encoder related header - * - * Copyright(C) 2002 Michael Militzer + * Copyright(C) 2002-2003 Michael Militzer + * 2002-2003 Peter Ross * - * This file is part of XviD, a free MPEG-4 video encoder/decoder - * - * XviD is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * 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 + * the Free Software Foundation ; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of + * but WITHOUT ANY WARRANTY ; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software + * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * Under section 8 of the GNU General Public License, the copyright - * holders of XVID explicitly forbid distribution in the following - * countries: - * - * - Japan - * - United States of America - * - * Linking XviD statically or dynamically with other modules is making a - * combined work based on XviD. Thus, the terms and conditions of the - * GNU General Public License cover the whole combination. - * - * As a special exception, the copyright holders of XviD give you - * permission to link XviD with independent modules that communicate with - * XviD solely through the VFW1.1 and DShow interfaces, regardless of the - * license terms of these independent modules, and to copy and distribute - * the resulting combined work under terms of your choice, provided that - * every copy of the combined work is accompanied by a complete copy of - * the source code of XviD (the version of XviD used to produce the - * combined work), being distributed under the terms of the GNU General - * Public License plus this exception. An independent module is a module - * which is not derived from or based on XviD. - * - * Note that people who make modified versions of XviD are not obligated - * to grant this special exception for their modified versions; it is - * their choice whether to do so. The GNU General Public License gives - * permission to release a modified version without this exception; this - * exception also makes it possible to release a modified version which - * carries forward this exception. - * - * $Id: encoder.h,v 1.25 2002/11/26 23:44:10 edgomez Exp $ + * $Id: encoder.h,v 1.33 2010/09/13 07:38:09 Isibaar Exp $ * ****************************************************************************/ @@ -60,19 +30,13 @@ #include "xvid.h" #include "portab.h" #include "global.h" -#include "image/image.h" -#include "utils/ratecontrol.h" /***************************************************************************** * Constants ****************************************************************************/ -/* Quatization type */ -#define H263_QUANT 0 -#define MPEG4_QUANT 1 - -/* Indicates no quantizer changes in INTRA_Q/INTER_Q modes */ -#define NO_CHANGE 64 +/* lambda base exponential. 1<= 0 */ + + /* multithreaded stuff */ + int num_threads; /* number of additional threads */ + SMPmotionData * motionData; /* data structures used to pass all thread-specific data */ + + int m_framenum; /* debug frame num counter; unlike iFrameNum, does not reset at ivop */ + + float fMvPrevSigma; +} Encoder; /***************************************************************************** * Inline functions @@ -221,21 +253,16 @@ return 0; } - /***************************************************************************** * Prototypes ****************************************************************************/ void init_encoder(uint32_t cpu_flags); -int encoder_create(XVID_ENC_PARAM * pParam); -int encoder_destroy(Encoder * pEnc); -int encoder_encode(Encoder * pEnc, - XVID_ENC_FRAME * pFrame, - XVID_ENC_STATS * pResult); - -int encoder_encode_bframes(Encoder * pEnc, - XVID_ENC_FRAME * pFrame, - XVID_ENC_STATS * pResult); +int enc_create(xvid_enc_create_t * create); +int enc_destroy(Encoder * pEnc); +int enc_encode(Encoder * pEnc, + xvid_enc_frame_t * pFrame, + xvid_enc_stats_t * stats); #endif