1 /*===========================================================================* 2 * mproto.h * 3 * * 4 * basically a lot of miscellaneous prototypes * 5 * * 6 *===========================================================================*/ 7 8 /* 9 * Copyright (c) 1995 The Regents of the University of California. 10 * All rights reserved. 11 * 12 * Permission to use, copy, modify, and distribute this software and its 13 * documentation for any purpose, without fee, and without written agreement is 14 * hereby granted, provided that the above copyright notice and the following 15 * two paragraphs appear in all copies of this software. 16 * 17 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR 18 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT 19 * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF 20 * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 21 * 22 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, 23 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 24 * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS 25 * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO 26 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 27 */ 28 29 /* 30 * $Header: /n/picasso/project/mm/mpeg/mpeg_dist/mpeg_encode/headers/RCS/mproto.h,v 1.12 1995/03/29 20:14:29 smoot Exp $ 31 * $Log: mproto.h,v $ 32 * Revision 1.12 1995/03/29 20:14:29 smoot 33 * deleted unneeded dct prototype 34 * 35 * Revision 1.11 1995/01/19 23:55:02 eyhung 36 * Changed copyrights 37 * 38 * Revision 1.10 1995/01/16 06:20:10 eyhung 39 * Changed ReadYUV to ReadEYUV 40 * 41 * Revision 1.9 1993/07/22 22:24:23 keving 42 * nothing 43 * 44 * Revision 1.8 1993/07/09 00:17:23 keving 45 * nothing 46 * 47 * Revision 1.7 1993/06/03 21:08:53 keving 48 * nothing 49 * 50 * Revision 1.6 1993/02/24 19:13:33 keving 51 * nothing 52 * 53 * Revision 1.5 1993/02/17 23:18:20 dwallach 54 * checkin prior to keving's joining the project 55 * 56 * Revision 1.4 1993/01/18 10:20:02 dwallach 57 * *** empty log message *** 58 * 59 * Revision 1.3 1993/01/18 10:17:29 dwallach 60 * RCS headers installed, code indented uniformly 61 * 62 * Revision 1.3 1993/01/18 10:17:29 dwallach 63 * RCS headers installed, code indented uniformly 64 * 65 */ 66 67 68 /*==============* 69 * HEADER FILES * 70 *==============*/ 71 72 #include "general.h" 73 #include "ansi.h" 74 #include "bitio.h" 75 76 77 #define DCTSIZE2 DCTSIZE*DCTSIZE 78 typedef short DCTELEM; 79 typedef DCTELEM DCTBLOCK[DCTSIZE2]; 80 81 82 83 /*===============================* 84 * EXTERNAL PROCEDURE prototypes * 85 *===============================*/ 86 87 /* 88 * from mbasic.c: 89 */ 90 void mp_reset _ANSI_ARGS_((void)); 91 void mp_free _ANSI_ARGS_((MpegFrame *mf)); 92 MpegFrame *mp_new _ANSI_ARGS_((int fnumber, char type, MpegFrame *oldFrame)); 93 void mp_ycc_calc _ANSI_ARGS_((MpegFrame *mf)); 94 void mp_dct_blocks _ANSI_ARGS_((MpegFrame *mf)); 95 void AllocDecoded _ANSI_ARGS_((MpegFrame *frame)); 96 97 /* 98 * from moutput.c: 99 */ 100 boolean mp_quant_zig_block _ANSI_ARGS_((Block in, FlatBlock out, int qscale, int iblock)); 101 void UnQuantZig _ANSI_ARGS_((FlatBlock in, Block out, int qscale, boolean iblock)); 102 void mp_rle_huff_block _ANSI_ARGS_((FlatBlock in, BitBucket *out)); 103 void mp_rle_huff_pblock _ANSI_ARGS_((FlatBlock in, BitBucket *out)); 104 void mp_create_blocks _ANSI_ARGS_((MpegFrame *mf)); 105 106 107 108 109 void ReadEYUV _ANSI_ARGS_((MpegFrame * mf, FILE *fpointer, int width, 110 int height)); 111 boolean ReadPPM _ANSI_ARGS_((MpegFrame *mf, FILE *fpointer)); 112 void PPMtoYCC _ANSI_ARGS_((MpegFrame * mf)); 113 114 void MotionSearchPreComputation _ANSI_ARGS_((MpegFrame *frame)); 115 boolean PMotionSearch _ANSI_ARGS_((LumBlock currentBlock, MpegFrame *prev, 116 int by, int bx, int *motionY, int *motionX)); 117 void ComputeHalfPixelData _ANSI_ARGS_((MpegFrame *frame)); 118 void mp_validate_size _ANSI_ARGS_((int *x, int *y)); 119 void AllocYCC _ANSI_ARGS_((MpegFrame * mf)); 120 121 122 /* jrevdct.c */ 123 void init_pre_idct _ANSI_ARGS_((void )); 124 void j_rev_dct_sparse _ANSI_ARGS_((DCTBLOCK data , int pos )); 125 void j_rev_dct _ANSI_ARGS_((DCTBLOCK data )); 126 void j_rev_dct_sparse _ANSI_ARGS_((DCTBLOCK data , int pos )); 127 void j_rev_dct _ANSI_ARGS_((DCTBLOCK data )); 128 129 /* block.c */ 130 void BlockToData _ANSI_ARGS_((uint8 **data, Block block, int by, int bx)); 131 void AddMotionBlock _ANSI_ARGS_((Block block, uint8 **prev, int by, int bx, 132 int my, int mx)); 133