Doxygen Source Code Documentation
mtypes.h
Go to the documentation of this file.00001 /*===========================================================================* 00002 * mtypes.h * 00003 * * 00004 * MPEG data types * 00005 * * 00006 *===========================================================================*/ 00007 00008 /* 00009 * Copyright (c) 1995 The Regents of the University of California. 00010 * All rights reserved. 00011 * 00012 * Permission to use, copy, modify, and distribute this software and its 00013 * documentation for any purpose, without fee, and without written agreement is 00014 * hereby granted, provided that the above copyright notice and the following 00015 * two paragraphs appear in all copies of this software. 00016 * 00017 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR 00018 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT 00019 * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF 00020 * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00021 * 00022 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, 00023 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 00024 * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 00025 * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO 00026 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 00027 */ 00028 00029 /* 00030 * $Header: /misc/elrond0/share/cvs/AFNI/src/mpeg_encodedir/headers/mtypes.h,v 1.4 2004/04/02 15:12:41 rwcox Exp $ 00031 * $Log: mtypes.h,v $ 00032 * Revision 1.4 2004/04/02 15:12:41 rwcox 00033 * Cput 00034 * 00035 * Revision 1.3 2003/12/23 13:50:09 rwcox 00036 * Cput 00037 * 00038 * Revision 1.2 2003/12/03 14:46:15 rwcox 00039 * Cput 00040 * 00041 * Revision 1.1 2001/12/17 18:25:45 rwcox 00042 * Cadd 00043 * 00044 * Revision 1.12 1995/04/14 23:12:11 smoot 00045 * added ChromBlock for future color MV searches 00046 * 00047 * Revision 1.11 1995/01/19 23:55:05 eyhung 00048 * Changed copyrights 00049 * 00050 * Revision 1.10 1994/11/14 22:48:57 smoot 00051 * added defines for Specifics operation 00052 * 00053 * Revision 1.9 1994/11/12 02:12:52 keving 00054 * nothing 00055 * 00056 * Revision 1.8 1993/07/22 22:24:23 keving 00057 * nothing 00058 * 00059 * Revision 1.7 1993/07/09 00:17:23 keving 00060 * nothing 00061 * 00062 * Revision 1.6 1993/06/03 21:08:53 keving 00063 * nothing 00064 * 00065 * Revision 1.5 1993/02/17 23:18:20 dwallach 00066 * checkin prior to keving's joining the project 00067 * 00068 * Revision 1.4 1993/01/18 10:20:02 dwallach 00069 * *** empty log message *** 00070 * 00071 * Revision 1.3 1993/01/18 10:17:29 dwallach 00072 * RCS headers installed, code indented uniformly 00073 * 00074 * Revision 1.3 1993/01/18 10:17:29 dwallach 00075 * RCS headers installed, code indented uniformly 00076 * 00077 */ 00078 00079 00080 #ifndef MTYPES_INCLUDED 00081 #define MTYPES_INCLUDED 00082 00083 00084 /*==============* 00085 * HEADER FILES * 00086 *==============*/ 00087 00088 #include "general.h" 00089 #include "dct.h" 00090 00091 00092 /*===========* 00093 * CONSTANTS * 00094 *===========*/ 00095 00096 #define TYPE_BOGUS 0 /* for the header of the circular list */ 00097 #define TYPE_VIRGIN 1 00098 00099 #define STATUS_EMPTY 0 00100 #define STATUS_LOADED 1 00101 #define STATUS_WRITTEN 2 00102 00103 00104 /*==================* 00105 * TYPE DEFINITIONS * 00106 *==================*/ 00107 00108 /* 00109 * your basic Block type 00110 */ 00111 typedef int16 Block[DCTSIZE][DCTSIZE]; 00112 typedef int16 FlatBlock[DCTSIZE_SQ]; 00113 typedef int32 LumBlock[2*DCTSIZE][2*DCTSIZE]; 00114 typedef int32 ChromBlock[DCTSIZE][DCTSIZE]; 00115 00116 /*========* 00117 * MACROS * 00118 *========*/ 00119 00120 #ifdef ABS 00121 #undef ABS 00122 #endif 00123 00124 #define ABS(x) (((x)<0)?-(x):(x)) 00125 00126 #ifdef HEINOUS_DEBUG_MODE 00127 #define DBG_PRINT(x) {printf x; fflush(stdout);} 00128 #else 00129 #define DBG_PRINT(x) 00130 #endif 00131 00132 #define ERRCHK(bool, str) {if(!(bool)) {perror(str); exit(1);}} 00133 00134 /* For Specifics */ 00135 typedef struct detalmv_def { 00136 int typ,fx,fy,bx,by; 00137 } BlockMV; 00138 #define TYP_SKIP 0 00139 #define TYP_FORW 1 00140 #define TYP_BACK 2 00141 #define TYP_BOTH 3 00142 00143 00144 #endif /* MTYPES_INCLUDED */ 00145 00146