|
|
/*
* @DEC_COPYRIGHT@ */ /*
* HISTORY * $Log: sv_prototypes.h,v $ * Revision 1.1.9.6 1996/10/28 17:32:26 Hans_Graves * Changed sv_MpegGet/SetParamInt() to use qwords. * [1996/10/28 17:07:11 Hans_Graves] * * Revision 1.1.9.5 1996/10/02 18:42:52 Hans_Graves * Added InputFourCC to sv_MpegEncodeFrameInOrder(). * [1996/10/02 18:34:36 Hans_Graves] * * Revision 1.1.9.4 1996/07/19 02:11:09 Hans_Graves * Change 422i motion recon function protos. * [1996/07/19 01:27:59 Hans_Graves] * * Revision 1.1.9.3 1996/05/24 22:21:42 Hans_Graves * Added MPEG 422i protos * [1996/05/24 21:55:51 Hans_Graves] * * Revision 1.1.9.2 1996/05/07 19:56:10 Hans_Graves * Added HUFF_SUPPORT * [1996/05/07 17:24:56 Hans_Graves] * * Revision 1.1.7.7 1996/04/10 21:47:39 Hans_Graves * Added Set/GetParamBoolean() * [1996/04/10 20:39:51 Hans_Graves] * * Revision 1.1.7.6 1996/04/09 20:50:35 Karen_Dintino * Adding WIN32 support * [1996/04/09 20:47:45 Karen_Dintino] * * Revision 1.1.7.5 1996/04/09 16:04:40 Hans_Graves * Fix protos for sv_MpegIDCTToFrame/AddToFrame() * [1996/04/09 16:03:24 Hans_Graves] * * Revision 1.1.7.4 1996/04/04 23:35:05 Hans_Graves * Added protos for sv_MpegReconFieldBlock() and sv_MpegReconFrameBlock() * [1996/04/04 22:59:42 Hans_Graves] * * Revision 1.1.7.3 1996/03/29 22:21:21 Hans_Graves * Added JPEG_SUPPORT ifdefs. * [1996/03/29 22:14:58 Hans_Graves] * * Added protos for SvMpegIDCTToFrameP_S() and SvMpegIDCTAddToFrameP_S() * [1996/03/27 21:54:00 Hans_Graves] * * Revision 1.1.7.2 1996/03/08 18:46:37 Hans_Graves * Added protos for new MPEG assembly * [1996/03/08 16:25:05 Hans_Graves] * * Revision 1.1.4.5 1996/02/06 22:54:03 Hans_Graves * Added MpegGet/SetParam() prototypes * [1996/02/06 22:50:20 Hans_Graves] * * Revision 1.1.4.4 1996/01/24 19:33:21 Hans_Graves * Changed DCT block for shorts to ints * [1996/01/24 18:13:05 Hans_Graves] * * Revision 1.1.4.3 1996/01/08 16:41:29 Hans_Graves * Updated MPEG I and II prototypes for new decoder * [1996/01/08 15:47:45 Hans_Graves] * * Revision 1.1.4.2 1995/12/07 19:31:35 Hans_Graves * Removed prototype for error() * [1995/12/07 19:20:55 Hans_Graves] * * Added MPEG encoder prototypes * [1995/12/07 18:00:18 Hans_Graves] * * Revision 1.1.2.16 1995/09/22 12:58:43 Bjorn_Engberg * Use MPEG_SUPPORT and H261_SUPPORT. * [1995/09/22 12:50:18 Bjorn_Engberg] * * Revision 1.1.2.15 1995/09/11 20:36:34 Paul_Gauthier * Add version string to JPEG header as APP1 segment * [1995/09/11 20:35:13 Paul_Gauthier] * * Revision 1.1.2.14 1995/08/15 19:13:57 Karen_Dintino * {** Merge Information **} * {** Command used: bsubmit **} * {** Ancestor revision: 1.1.2.12 **} * {** Merge revision: 1.1.2.13 **} * {** End **} * fix reentrant problem * [1995/08/15 18:31:06 Karen_Dintino] * * Revision 1.1.2.13 1995/08/14 19:40:28 Hans_Graves * Fixed H261 Init prototypes. * [1995/08/14 18:43:51 Hans_Graves] * * Revision 1.1.2.12 1995/08/07 22:09:52 Hans_Graves * Added prototype for CrawlMotionEstimation() * [1995/08/07 22:09:31 Hans_Graves] * * Revision 1.1.2.11 1995/08/04 16:32:28 Karen_Dintino * Change to SvStatus_t for some low level rtns * [1995/08/04 16:22:50 Karen_Dintino] * * Revision 1.1.2.10 1995/08/03 18:02:07 Karen_Dintino * Encode/Decode routines need to return SvStatus_t * [1995/08/03 18:00:02 Karen_Dintino] * * Revision 1.1.2.9 1995/08/02 15:27:00 Hans_Graves * Changed prototype for blockdiff16_C() * [1995/08/02 15:25:00 Hans_Graves] * * Revision 1.1.2.8 1995/07/28 17:36:05 Hans_Graves * Added prototype for sv_CompressH261() * [1995/07/28 17:29:00 Hans_Graves] * * Revision 1.1.2.7 1995/07/26 17:48:57 Hans_Graves * Added prototype for sv_DecompressH261() * [1995/07/26 17:47:19 Hans_Graves] * * Revision 1.1.2.6 1995/07/17 16:12:17 Hans_Graves * Added H261 prototypes. * [1995/07/17 15:54:27 Hans_Graves] * * Revision 1.1.2.5 1995/06/27 13:54:27 Hans_Graves * Removed prototype for sv_RdRunLevel(). * [1995/06/27 13:52:12 Hans_Graves] * * Revision 1.1.2.4 1995/06/20 14:13:39 Karen_Dintino * Separate H.261 prototypes * [1995/06/20 13:29:25 Karen_Dintino] * * Revision 1.1.2.3 1995/06/19 20:31:18 Karen_Dintino * Added support for H.261 * [1995/06/19 20:14:23 Karen_Dintino] * * Revision 1.1.2.2 1995/05/31 18:10:24 Hans_Graves * Inclusion in new SLIB location. * [1995/05/31 15:51:00 Hans_Graves] * * Revision 1.1.2.8 1994/12/14 19:09:54 Paul_Gauthier * Removed sv_gentoc.c from SLIB * [1994/12/14 19:07:29 Paul_Gauthier] * * Revision 1.1.2.7 1994/12/12 15:39:31 Paul_Gauthier * Merge changes from other SLIB versions * [1994/12/12 15:35:04 Paul_Gauthier] * * Revision 1.1.2.6 1994/11/09 21:33:12 Paul_Gauthier * Optimizations * [1994/11/09 15:31:22 Paul_Gauthier] * * Revision 1.1.2.3 1994/10/13 20:34:53 Paul_Gauthier * MPEG cleanup * [1994/10/12 21:08:55 Paul_Gauthier] * * Revision 1.1.2.2 1994/10/07 14:58:16 Paul_Gauthier * SLIB v3.0 incl. MPEG Decode * [1994/10/07 13:57:07 Paul_Gauthier] * * $EndLog$ */ /*
**++ ** FACILITY: Workstation Multimedia (WMM) v1.0 ** ** FILE NAME: ** MODULE NAME: ** ** MODULE DESCRIPTION: ** ** DESIGN OVERVIEW: ** **-- */ /*****************************************************************************
** Copyright (c) Digital Equipment Corporation, 1994 ** ** ** ** All Rights Reserved. Unpublished rights reserved under the copyright ** ** laws of the United States. ** ** ** ** The software contained on this media is proprietary to and embodies ** ** the confidential technology of Digital Equipment Corporation. ** ** Possession, use, duplication or dissemination of the software and ** ** media is authorized only pursuant to a valid written license from ** ** Digital Equipment Corporation. ** ** ** ** RESTRICTED RIGHTS LEGEND Use, duplication, or disclosure by the U.S. ** ** Government is subject to restrictions as set forth in Subparagraph ** ** (c)(1)(ii) of DFARS 252.227-7013, or in FAR 52.227-19, as applicable. ** ******************************************************************************/
/*--------------------------------------------------------------------------
* SLIB Internals Prototype file (externals are in SV.h) * * Modification History: sv_prototypes.h * * 29-Jul-94 PSG Created *---------------------------------------------------------------------------*/
#ifndef _SV_PROTOTYPES_H
#define _SV_PROTOTYPES_H
extern void DumpBlock(char *title, short *blk);
/*---------------------------------------------------------------------------*/ /* Compress/Decompress Codec Prototypes */ /*---------------------------------------------------------------------------*/
/*
** sv_codec_api.c */ static SvStatus_t sv_GetYUVComponentPointers(int, int, int, u_char *, int, u_char **, u_char **, u_char **); static SvStatus_t sv_JpegExtractBlocks (SvCodecInfo_t *, u_char *);
#ifdef JPEG_SUPPORT
/*
** sv_jpeg_decode.c */ static void sv_FillBitBuffer (int); static SvStatus_t sv_ProcessRestart (SvCodecInfo_t *); extern SvStatus_t sv_DecodeJpeg (SvCodecInfo_t *); extern void sv_ReInitJpegDecoder (SvCodecInfo_t *);
/*
** sv_jpeg_encode.c */ extern void WriteJpegData(char *, int, u_char **); extern void FlushBytes (u_char **); static void EmitBits(u_short, int); static void FlushBits (void); extern void sv_EncodeOneBlock (SvRLE_t *, SvHt_t *, SvHt_t *); extern void sv_HuffEncoderInit (SvCodecInfo_t *); extern void EmitRestart (SvJpegCompressInfo_t *); extern void sv_HuffEncoderTerm (u_char **);
/*
** sv_jpeg_format.c */ extern SvStatus_t sv_AddJpegHeader (SvHandle_t, u_char *, int, int *); extern SvStatus_t sv_AddJpegTrailer (SvHandle_t, u_char *, int, int *); extern SvStatus_t sv_FormatJpegData (SvHandle_t, char *, char *, int, int *); static SvStatus_t sv_AddCompSpecs (int, int, int, int, char **, char *); static SvStatus_t sv_AddEntropyData (SvCodecInfo_t *, char *, char **, char *); static SvStatus_t sv_AddFrame (SvCodecInfo_t *, char *, char **, char *); static SvStatus_t sv_AddFrameHeader (SvCodecInfo_t *, char **, char *); static SvStatus_t sv_AddMarker (); static SvStatus_t sv_AddScanHeader (SvCodecInfo_t *, char **, char *); static SvStatus_t sv_AddSLIBHeader (char **, char *); static SvStatus_t sv_Write16bits (short, char **, char *); static SvStatus_t sv_Write8bits (int, char **, char *); static SvStatus_t sv_AddMMSVer (char **, char *);
/*
** sv_jpeg_init.c */ static SvStatus_t sv_InitEncoderStruct (SvCodecInfo_t *); static SvStatus_t sv_InitDecoderStruct (SvCodecInfo_t *); static SvStatus_t sv_InitHDecoder (SvCodecInfo_t *); extern SvStatus_t sv_InitJpegEncoder (SvCodecInfo_t *); extern SvStatus_t sv_InitJpegDecoder (SvCodecInfo_t *); extern SvStatus_t sv_InitInfo (SvCodecInfo_t *); extern void sv_copyHTable (SvHt_t *, SvHt_t *); extern SvStatus_t sv_CheckChroma (SvCodecInfo_t *); static int JroundUp (int, int); /*
** sv_jpeg_tables.c */ extern SvStatus_t sv_MakeQTables (int, SvCodecInfo_t *); extern SvStatus_t sv_MakeHEncodingTables (SvCodecInfo_t *); extern SvStatus_t sv_MakeHDecodingTables (SvCodecInfo_t *); extern SvStatus_t sv_MakeEncoderBlkTable (SvCodecInfo_t *); extern SvStatus_t sv_MakeDecoderBlkTable (SvCodecInfo_t *); static void sv_MakeHCodeTables (SvHt_t *, char *, u_short *, u_int *); extern SvStatus_t sv_ConvertQTable (SvCodecInfo_t *, SvQuantTables_t *); extern SvStatus_t sv_LoadDefaultHTable (SvCodecInfo_t *);
/*
** sv_jpeg_parse.c */ static u_int sv_GetShort (SvCodecInfo_t *); static int sv_GetNextMarker (void); static void sv_ProcessBogusMarker (SvCodecInfo_t *); static SvStatus_t sv_ProcessDHT (SvCodecInfo_t *); static SvStatus_t sv_ProcessDQT (SvCodecInfo_t *); static SvStatus_t sv_ProcessDRI (SvCodecInfo_t *); static SvStatus_t sv_ProcessAPP0 (SvCodecInfo_t *); static SvStatus_t sv_ProcessSOF (SvCodecInfo_t *, int); static SvStatus_t sv_ProcessSOS (SvCodecInfo_t *); static SvStatus_t sv_ProcessSOI (SvCodecInfo_t *); /*static int sv_ProcessTables (SvCodecInfo_t *);*/ static SvStatus_t sv_ParseFileHeader (SvCodecInfo_t *); extern SvStatus_t sv_ParseScanHeader (SvCodecInfo_t *); extern SvStatus_t sv_ParseFrame (u_char *, int, SvCodecInfo_t *); #endif /* JPEG_SUPPORT */
#ifdef MPEG_SUPPORT
/*---------------------------------------------------------------------------*/ /* MPEG Prototypes */ /*---------------------------------------------------------------------------*/ /*
** sv_mpeg_common.c */ extern SvStatus_t sv_MpegSetParamBoolean(SvHandle_t Svh, SvParameter_t param, ScBoolean_t value); extern SvStatus_t sv_MpegSetParamInt(SvHandle_t Svh, SvParameter_t param, qword value); extern SvStatus_t sv_MpegSetParamFloat(SvHandle_t Svh, SvParameter_t param, float value); extern ScBoolean_t sv_MpegGetParamBoolean(SvHandle_t Svh, SvParameter_t param); extern qword sv_MpegGetParamInt(SvHandle_t Svh, SvParameter_t param); extern float sv_MpegGetParamFloat(SvHandle_t Svh, SvParameter_t param);
/*
** sv_mpeg_parse.c */ extern SvStatus_t sv_MpegGetHeader(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int sv_MpegGetSliceHdr(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs, SvMpegLayer_t *layer); extern SvStatus_t sv_MpegGetImageInfo(int fd, SvImageInfo_t *iminfo); extern SvStatus_t sv_MpegFindNextPicture(SvCodecInfo_t *Info, SvPictureInfo_t *PictureInfo);
/*
** sv_mpeg_decode.c */ extern SvStatus_t sv_MpegInitDecoder (SvCodecInfo_t *Info); extern SvStatus_t sv_MpegFreeDecoder(SvCodecInfo_t *Info); extern SvStatus_t sv_MpegDecompressFrame(SvCodecInfo_t *, u_char *, u_char **);
/*
** sv_mpeg_block.c */ extern ScBoolean_t sv_MpegGetIntraBlock( ScBitstream_t *bs, SvMpegLayer_t *layer, int comp, int *dc_dct_pred); extern ScBoolean_t sv_MpegGetInterBlock(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs, SvMpegLayer_t *layer, int comp); extern ScBoolean_t sv_Mpeg2GetIntraBlock(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs, SvMpegLayer_t *layer, int comp, int *dc_dct_pred); extern ScBoolean_t sv_Mpeg2GetInterBlock(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs, SvMpegLayer_t *layer, int comp);
extern ScBoolean_t sv_MpegMotionVectors(ScBitstream_t *bs, int PMV[2][2][2], int dmvector[2], int mv_field_sel[2][2], int s, int mv_count, int mv_format, int h_r_size, int v_r_size, int dmv, int mvscale); extern ScBoolean_t sv_MpegMotionVector(ScBitstream_t *bs, int *PMV, int *dmvector, int h_r_size, int v_r_size, int dmv, int mvscale, int full_pel_vector); extern void sv_MpegCalcDMV(SvMpegDecompressInfo_t *MpegInfo, int DMV[][2], int *dmvector, int mvx, int mvy); extern int sv_MpegGetDClum_C(ScBitString_t bits, unsigned int *bitsleft); extern int sv_MpegGetDCchrom_C(ScBitString_t bits, unsigned int *bitsleft);
/*
** sv_mpeg_block2.s */ extern void sv_MpegClearBlock_S(int *block); extern int sv_MpegInterHuffToDCT_S(int *dctblk, unsigned int zzpos, ScBitString_t bits, unsigned int *pbitsleft, int quant_scale, int *quant_matrix); extern int sv_MpegIntraHuffToDCT_S(int *dctblk, unsigned int comp, ScBitString_t bits, unsigned int *pbitsleft, int quant_scale, int *quant_matrix, int *dc_dct_pred); extern int sv_MpegGetDClum_S(ScBitString_t bits, unsigned int *bitsleft); extern int sv_MpegGetDCchrom_S(ScBitString_t bits, unsigned int *bitsleft);
/*
** sv_mpeg_recon.c */ extern void sv_MpegReconstruct(SvMpegDecompressInfo_t *MpegInfo, unsigned char **newframe, int bx, int by, int mb_type, int motion_type, int PMV[2][2][2], int mv_field_sel[2][2], int dmvector[2], int stwtype); extern void sv_MpegReconFieldBlock(int chroma, unsigned char *src[], int sfield, unsigned char *dst[], int dfield, int lx, int lx2, int w, int h, int x, int y, int dx, int dy, int addflag); extern void sv_MpegReconFrameBlock(int chroma, unsigned char *src[], unsigned char *dst[], int lx, int lx2, int w, int h, int x, int y, int dx, int dy, int addflag);
/*
** sv_mpeg_getmb.c */ extern int sv_MpegGetMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs, SvMpegLayer_t *layer); extern int sv_MpegGetIMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int sv_MpegGetPMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int sv_MpegGetBMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int sv_MpegGetDMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int sv_MpegGetSpIMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int sv_MpegGetSpPMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int sv_MpegGetSpBMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int sv_MpegGetSNRMBtype(SvMpegDecompressInfo_t *MpegInfo, ScBitstream_t *bs);
extern int sv_MpegGetCBP(ScBitstream_t *bs);
/*
** sv_mpeg_422recon.c */ void sv_CopyCBP_C(int *cpbdata, unsigned char *np, unsigned int w); void sv_CopyCBPf_C(int *cpbdata, unsigned char *np, unsigned int w); void sv_MpegFrameCopy411to422i(unsigned char *refframe, unsigned char *newframe, int x, int y, unsigned int w, int dx, int dy, unsigned char *tmpbuf); void sv_MpegFrameMC411to422i(int *block, unsigned int cbp, unsigned char *refframe, unsigned char *newframe, int x, int y, unsigned int w, int dx, int dy, ScBoolean_t fdct, unsigned char *tmpbuf); void sv_MpegDFrameMC411to422i(int *block, unsigned int cbp, unsigned char *brefframe, unsigned char *frefframe, unsigned char *newframe, int x, int y, unsigned int w, int bdx, int bdy, int fdx, int fdy, ScBoolean_t fdct, unsigned char *tmpbuf); void sv_MpegDFieldMC411to422i(int *block, unsigned int cbp, unsigned char *refframe, int rfield0, int rfield1, unsigned char *newframe, int x, int y, unsigned int w, int dx0, int dy0, int dx1, int dy1, ScBoolean_t fdct, unsigned char *tmpbuf); void sv_MpegQFieldMC411to422i(int *blocks, unsigned int cbp, unsigned char *bframe, int bfield0, int bfield1, unsigned char *fframe, int ffield0, int ffield1, unsigned char *newframe, int x, int y, unsigned int w, int bdx0, int bdy0, int bdx1, int bdy1, int fdx0, int fdy0, int fdx1, int fdy1, ScBoolean_t fdct, unsigned char *tmpbuf);
/*
** sv_mpeg_422reconcbp.s */ void sv_CopyCBP_S(int *cpbdata, unsigned char *np, unsigned int w); void sv_CopyCBPf_S(int *cpbdata, unsigned char *np, unsigned int w);
/*
** sv_mpeg_idct.c */ void sv_MpegIDCTToFrame_C(int *inbuf, unsigned char *rfp, int incr); void sv_MpegIDCTAddToFrame_C(int *inbuf, unsigned char *rfp, int incr); void sv_MpegIDCTToFrame2_C(int *inbuf, unsigned char *rfp, int rinc, unsigned char *ffp, int finc, int comp); void sv_MpegIDCTAddToFrame2_C(int *inbuf, unsigned char *rfp, int rinc, unsigned char *ffp, int finc, int comp);
/*
** sv_mpeg_idct2.s */ void sv_MpegIDCTToFrame_S(int *inbuf, unsigned char *rfp, int incr); void sv_MpegIDCTAddToFrame_S(int *inbuf, unsigned char *rfp, int incr);
/*
** sv_mpeg_idct3.s */ void sv_MpegIDCTToFrameP_S(int *inbuf, unsigned char *rfp, int incr); void sv_MpegIDCTAddToFrameP_S(int *inbuf, unsigned char *rfp, int incr);
/*
** sv_mpeg_init.c */ extern SvStatus_t sv_MpegInitEncoder(SvCodecInfo_t *Info); extern SvStatus_t sv_MpegFreeEncoder(SvCodecInfo_t *Info);
/*
** sv_mpeg_encode.c */ extern SvStatus_t sv_MpegEncoderBegin(SvCodecInfo_t *Info); extern SvStatus_t sv_MpegEncodeFrame(SvCodecInfo_t *Info, unsigned char *InputImage); extern SvStatus_t sv_MpegEncodeFrameInOrder(SvCodecInfo_t *Info, unsigned char *InputImage, unsigned int InputFourCC); extern SvStatus_t sv_MpegEncoderEnd(SvCodecInfo_t *Info);
/*
** sv_mpeg_putpic.c */ extern void sv_MpegPutPict(SvMpegCompressInfo_t *MpegInfo, ScBitstream_t *BS, unsigned char *frame);
/*
** sv_mpeg_puthdr.c */ extern void sv_MpegPutSeqHdr(SvMpegCompressInfo_t *MpegInfo, ScBitstream_t *bs); extern void sv_MpegPutSeqExt(SvMpegCompressInfo_t *MpegInfo, ScBitstream_t *bs); extern void sv_MpegPutSeqDispExt(SvMpegCompressInfo_t *MpegInfo, ScBitstream_t *bs); extern void sv_MpegPutUserData(ScBitstream_t *bs, char *userdata); extern void sv_MpegPutGOPHdr(ScBitstream_t *bs, float frame_rate, int tco, int frame, int closed_gop); extern void sv_MpegPutSeqEnd(ScBitstream_t *bs);
/*
** sv_mpeg_motion.c */ extern void sv_MpegMotionEstimation(SvMpegCompressInfo_t *MpegInfo, unsigned char *oldorg, unsigned char *neworg, unsigned char *oldref, unsigned char *newref, unsigned char *cur, unsigned char *curref, int sxf, int syf, int sxb, int syb, struct mbinfo *mbi, int secondfield, int ipflag);
/*
** sv_mpeg_quantize.c */ int sv_MpegIntraQuant(short *src, short *dst, int dc_prec, unsigned char *quant_mat, int mquant, int mpeg1); int sv_MpegNonIntraQuant(short *src, short *dst, unsigned char *quant_mat, int mquant, int mpeg1); void sv_MpegIntraInvQuant(short *src, short *dst, int dc_prec, unsigned char *quant_mat, int mquant, int mpeg1); void sv_MpegNonIntraInvQuant(short *src, short *dst, unsigned char *quant_mat, int mquant, int mpeg1);
/*
** sv_mpeg_transfrm.c */ void sv_MpegTransform(SvMpegCompressInfo_t *MpegInfo, unsigned char *pred[], unsigned char *cur[], struct mbinfo *mbi, short blocks[][64]); void sv_MpegInvTransform(SvMpegCompressInfo_t *MpegInfo, unsigned char *pred[], unsigned char *cur[], struct mbinfo *mbi,short blocks[][64]); void sv_MpegDCTtypeEstimation(SvMpegCompressInfo_t *MpegInfo, unsigned char *pred, unsigned char *cur, struct mbinfo *mbi);
/*
** sv_mpeg_predict.c */ extern void sv_MpegPredict(SvMpegCompressInfo_t *MpegInfo, unsigned char *reff[], unsigned char *refb[], unsigned char *cur[3], int secondfield, struct mbinfo *mbi);
/*
** sv_mpeg_ratectl.c */ extern void rc_init_seq(SvMpegCompressInfo_t *MpegInfo); extern void rc_init_GOP(SvMpegCompressInfo_t *MpegInfo, int np, int nb); extern void rc_init_pict(SvMpegCompressInfo_t *MpegInfo, ScBitstream_t *bs, unsigned char *frame); extern void rc_update_pict(SvMpegCompressInfo_t *MpegInfo, ScBitstream_t *bs); extern int rc_start_mb(SvMpegCompressInfo_t *MpegInfo); extern int rc_calc_mquant(SvMpegCompressInfo_t *MpegInfo, ScBitstream_t *bs, int j); void sv_MpegVBVendofpic(ScBitstream_t *bs); void sv_MpegVBVcalcdelay(SvMpegCompressInfo_t *MpegInfo, ScBitstream_t *bs);
#endif /* MPEG_SUPPORT */
#ifdef H261_SUPPORT
/*---------------------------------------------------------------------------*/ /* H.261 Prototypes */ /*---------------------------------------------------------------------------*/
/*
** sv_h261_init.c */ extern SvStatus_t svH261Init(SvCodecInfo_t *Info); extern SvStatus_t svH261CompressInit(SvCodecInfo_t *Info);
extern SvStatus_t svH261SetParamInt(SvHandle_t Svh, SvParameter_t param, qword value); extern qword svH261GetParamInt(SvHandle_t Svh, SvParameter_t param); extern SvStatus_t svH261SetParamFloat(SvHandle_t Svh, SvParameter_t param, float value); extern float svH261GetParamFloat(SvHandle_t Svh, SvParameter_t param); extern SvStatus_t svH261SetParamBoolean(SvHandle_t Svh, SvParameter_t param, ScBoolean_t value); extern ScBoolean_t svH261GetParamBoolean(SvHandle_t Svh, SvParameter_t param);
/*
** sv_h261_decompress.c */ extern SvStatus_t svH261Decompress(SvCodecInfo_t *Info, u_char *MultiBuf, u_char **ImagePtr); extern SvStatus_t svH261DecompressFree(SvHandle_t Svh);
/*
** sv_h261_compress.c */ extern SvStatus_t svH261Compress(SvCodecInfo_t *Info, u_char *InputImage); extern SvStatus_t svH261CompressFree(SvHandle_t Svh); extern SvStatus_t SvSetFrameSkip (SvHandle_t Svh, int FrameSkip); extern SvStatus_t SvSetFrameCount (SvHandle_t Svh, int FrameCount); extern SvStatus_t SvSetSearchLimit (SvHandle_t Svh, int SearchLimit);
extern SvStatus_t SvSetImageType (SvHandle_t Svh, int ImageType); extern SvStatus_t SvGetFrameNumber (SvHandle_t Svh, u_int *FrameNumber);
#endif /* H261_SUPPORT */
#ifdef H263_SUPPORT
/*---------------------------------------------------------------------------*/ /* H263 Prototypes */ /*---------------------------------------------------------------------------*/ /*
** sv_h263_common.c */ extern SvStatus_t svH263SetParamInt(SvHandle_t Svh, SvParameter_t param, qword value); extern qword svH263GetParamInt(SvHandle_t Svh, SvParameter_t param); extern SvStatus_t svH263SetParamFloat(SvHandle_t Svh, SvParameter_t param, float value); extern float svH263GetParamFloat(SvHandle_t Svh, SvParameter_t param); extern SvStatus_t svH263SetParamBoolean(SvHandle_t Svh, SvParameter_t param, ScBoolean_t value); extern ScBoolean_t svH263GetParamBoolean(SvHandle_t Svh, SvParameter_t param);
/*
** sv_h263_decode.c */ extern SvStatus_t svH263InitDecompressor(SvCodecInfo_t *Info); extern SvStatus_t svH263Decompress(SvCodecInfo_t *Info, u_char **ImagePtr); extern SvStatus_t svH263FreeDecompressor(SvCodecInfo_t *Info); /*
** sv_h263_encode.c */ extern SvStatus_t svH263InitCompressor(SvCodecInfo_t *Info); extern SvStatus_t svH263Compress(SvCodecInfo_t *Info, u_char *ImagePtr); extern SvStatus_t svH263FreeCompressor(SvCodecInfo_t *Info);
#endif /* H263_SUPPORT */
#ifdef HUFF_SUPPORT
/*---------------------------------------------------------------------------*/ /* Huff Prototypes */ /*---------------------------------------------------------------------------*/
/*
** sv_huff_encode.c */ extern SvStatus_t sv_HuffInitEncoder(SvCodecInfo_t *Info); extern SvStatus_t sv_HuffFreeEncoder(SvCodecInfo_t *Info); extern SvStatus_t sv_HuffEncodeFrame(SvCodecInfo_t *Info, unsigned char *InputImage); extern SvStatus_t sv_HuffPutHeader(SvHuffInfo_t *HInfo, ScBitstream_t *bs);
/*
** sv_huff_decode.c */ extern SvStatus_t sv_HuffInitDecoder(SvCodecInfo_t *Info); extern SvStatus_t sv_HuffFreeDecoder(SvCodecInfo_t *Info); extern SvStatus_t sv_HuffDecodeFrame(SvCodecInfo_t *Info, unsigned char *OutputImage); extern SvStatus_t sv_HuffGetHeader(SvHuffInfo_t *HInfo, ScBitstream_t *bs);
/*
** sv_huff_encode.c */
#endif /* HUFF_SUPPORT */
#endif /* _SV_PROTOTYPES_H */
|