--- decoder.h 2004/03/03 13:18:08 1.13.2.10 +++ decoder.h 2003/06/09 17:05:51 1.14 @@ -1,9 +1,16 @@ /***************************************************************************** * * XVID MPEG-4 VIDEO CODEC - * - Decoder related header - + * - Decoder header - * - * Copyright(C) 2002-2003 Peter Ross + * 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. * * 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 @@ -19,7 +26,14 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: decoder.h,v 1.13.2.10 2004/03/03 13:18:08 syskin Exp $ + ****************************************************************************/ +/***************************************************************************** + * + * History + * + * - 13.06.2002 Added legal header - Cosmetic + * + * $Id: decoder.h,v 1.14 2003/06/09 17:05:51 Isibaar Exp $ * ****************************************************************************/ @@ -30,7 +44,6 @@ #include "portab.h" #include "global.h" #include "image/image.h" -#include "image/postprocessing.h" /***************************************************************************** * Structures @@ -73,7 +86,7 @@ typedef struct { - /* vol bitstream */ + // vol bitstream int time_inc_resolution; int fixed_time_inc; @@ -82,9 +95,7 @@ uint32_t shape; uint32_t quant_bits; uint32_t quant_type; - uint16_t *mpeg_quant_matrices; int32_t quarterpel; - int32_t cartoon_mode; int complexity_estimation_disable; ESTIMATION estimation; @@ -104,10 +115,9 @@ int newpred_enable; int reduced_resolution_enable; - /* The bitstream version if it's a XviD stream */ int bs_version; - /* image */ + // image int fixed_dimensions; uint32_t width; @@ -116,49 +126,40 @@ uint32_t edged_height; IMAGE cur; - IMAGE refn[2]; /* 0 -- last I or P VOP */ - /* 1 -- first I or P */ + IMAGE refn[2]; // 0 -- last I or P VOP + // 1 -- first I or P IMAGE tmp; /* bframe interpolation, and post processing tmp buffer */ IMAGE qtmp; /* quarter pel tmp buffer */ - /* postprocessing */ - XVID_POSTPROC postproc; - - /* macroblock */ + // macroblock uint32_t mb_width; uint32_t mb_height; MACROBLOCK *mbs; - /* - * for B-frame & low_delay==0 - * XXX: should move frame based stuff into a DECODER_FRAMEINFO struct - */ - MACROBLOCK *last_mbs; /* last MB */ - int last_coding_type; /* last coding type value */ - int last_reduced_resolution; /* last reduced_resolution value */ - int32_t frames; /* total frame number */ - int32_t packed_mode; /* bframes packed bitstream? (1 = yes) */ + // for B-frame & low_delay==0 + // XXX: should move frame based stuff into a DECODER_FRAMEINFO struct */ + MACROBLOCK *last_mbs; // last MB + int last_reduced_resolution; // last reduced_resolution value + int32_t frames; // total frame number + int32_t packed_mode; // bframes packed bitstream? (1 = yes) int8_t scalability; - VECTOR p_fmv, p_bmv; /* pred forward & backward motion vector */ - int64_t time; /* for record time */ + VECTOR p_fmv, p_bmv; // pred forward & backward motion vector + int64_t time; // for record time int64_t time_base; int64_t last_time_base; int64_t last_non_b_time; uint32_t time_pp; uint32_t time_bp; - uint32_t low_delay; /* low_delay flage (1 means no B_VOP) */ - uint32_t low_delay_default; /* default value for low_delay flag */ - - /* for GMC: central place for all parameters */ + uint32_t low_delay; // low_delay flage (1 means no B_VOP) + uint32_t low_delay_default; // default value for low_delay flag + // for GMC: central place for all parameters + IMAGE gmc; /* gmc tmp buffer, remove for blockbased compensation */ GMC_DATA gmc_data; - NEW_GMC_DATA new_gmc_data; - - xvid_image_t* out_frm; /* This is used for slice rendering */ - - int * qscale; /* quantization table for decoder's stats */ + + XVID_DEC_PICTURE* out_frm; // This is used for slice rendering } DECODER; @@ -168,10 +169,10 @@ void init_decoder(uint32_t cpu_flags); -int decoder_create(xvid_dec_create_t * param); +int decoder_create(XVID_DEC_PARAM * param); int decoder_destroy(DECODER * dec); int decoder_decode(DECODER * dec, - xvid_dec_frame_t * frame, xvid_dec_stats_t * stats); + XVID_DEC_FRAME * frame, XVID_DEC_STATS * stats); #endif