📄 ih263enc.h
字号:
/*==========================================================================*/
/* Copyright (C) 2000 Texas Instruments, Incorporated */
/* All Rights Reserved. */
/*==========================================================================*/
/*
* ======== ih263enc.h ========
* IH263ENC Interface Header
*/
#ifndef IH263ENC_
#define IH263ENC_
#include <std.h>
#include <ialg.h>
#include "ih263.h"
/*
* ======== IH263ENC_Handle ========
* This handle is used to reference all H263ENC instance objects
*/
typedef struct IH263ENC_Obj *IH263ENC_Handle;
/*
* ======== IH263ENC_Obj ========
* This structure must be the first field of all H263ENC instance objects
*/
typedef struct IH263ENC_Obj
{
struct IH263ENC_Fxns *fxns;
} IH263ENC_Obj;
/*
* ======== IH263ENC_Params ========
* This structure defines the creation parameters for all H263ENC objects
*/
typedef struct IH263ENC_Params
{
int size; /* must be first field of all params structures */
unsigned short bitRate; /* target bitrate (kbps) */
unsigned char frameRate; /* target frame rate */
unsigned char intraRate; /* I-frame is coded every intraRate frame(s) */
unsigned char qi; /* Q value for I-frames */
unsigned char minQ; /* minimum Q value allowed */
unsigned char maxQ; /* maximum Q value allowed */
H263_SRCFMT srcFormat; /* source format of encoded sequence */
unsigned char nMB2proc; /* number of macro blocks to process */
} IH263ENC_Params;
/*
* ======== IH263ENC_PARAMS ========
* Default parameter values for H263ENC instance objects
*/
extern IH263ENC_Params IH263ENC_PARAMS;
/*
* ======== IH263ENC_Fxns ========
* This structure defines all of the operations on H263ENC objects
*/
typedef struct IH263ENC_Fxns
{
IALG_Fxns ialg; /* IH263ENC extends IALG */
void (*encode)(IH263ENC_Handle handle,
unsigned char *in[3],
unsigned int *out);
} IH263ENC_Fxns;
/*
* ======== IH263DEC_Status ========
* Status structure defines the parameters that can be changed or read
* during real-time operation of the alogrithm.
*/
typedef struct IH263ENC_Status
{
int size; /* must be first field of all status structures */
int frame; /* number of frames decoded */
int width; /* width of decoded frame */
int height; /* height of decoded frame */
H263_SRCFMT srcFormat; /* source format of encoded sequence */
H263_PTYPE picType; /* encoded picture type */
unsigned char *y; /* pointer to Y */
unsigned char *u; /* pointer to U/Cb */
unsigned char *v; /* pointer to V/Cr */
int nBits; /* number of bits consumed by current frame */
int nWords;
} IH263ENC_Status;
/*
* ======== IH263ENC_Cmd ========
* The Cmd enumeration defines the control commands for the H263ENC
* control method.
*/
typedef enum IH263ENC_Cmd
{
IH263ENC_GETSTATUS,
IH263ENC_SETSTATUS,
IH263ENC_CLRSTATUS,
IH263ENC_SETPARAMS
} IH263ENC_Cmd;
#endif /* IH263ENC_ */
/*==========================================================================*/
/* Copyright (C) 2000 Texas Instruments, Incorporated */
/* All Rights Reserved. */
/*==========================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -