/*********
C++定义多态方式
*******/
class AVCodecBase
{
public:
virtual int init(AVCodecContext *);
virtual int decode(AVCodecContext*);
virtual int encode(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
virtual int close(AVCodecContext*);
//****其他数据定义
};
int AVCodecBase::init(AVCodecContext *p)
{
//初始化...
}
int AVCodecBase::encode(AVCodecContext *p, uint8_t *buf, int buf_size, void *data)
{
//编码...
}
int AVCodecBase::decode(AVCodecContext*p)
{
//解码...
}
int AVCodecBase::close(AVCodecContext*p)
{
//关闭...
}
//===========VC1
class VC1Codec : public AVCodecBase
{
int init(AVCodecContext *p);
int decode(AVCodecContext*p);
int encode(AVCodecContext *p, uint8_t *buf, int buf_size, void *data);
int close(AVCodecContext*p);
};
int VC1Codec::init(AVCodecContext *p)
{
//VC1实现初始化...
}
int VC1Codec::encode(AVCodecContext *p, uint8_t *buf, int buf_si