Windows2003-3790/enduser/netmeeting/av/codecs/dec/dech261/sv_proto.h
2020-09-30 16:53:55 +02:00

670 lines
26 KiB
C

/*
* @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 */