DirectShow AVI 文件操作
最近在做一个“运动物体分割”的课题,在课题中要处理视频文件,首先考虑最简单的视频格式:AVI格式,由于AVI格式是微软推出的,所以在Windows下操作比较容易,这里我用DirectShow读写AVI视频文件,并把所有操作封装成一个类:AVICodec。下面是类的定义:
class AVICodec
{
public:
AVICodec(){size = -1;}
AVICodec(LPCWSTR avifile);
void release();
int init_getframe();
char* getframe(unsigned int index);
int getFrame(unsigned int index);
int getFrameEnd();
void play();
private:
IGraphBuilder *pGraph;
IMediaControl *pControl;
IMediaEvent *pEvent;
IMediaDet *pDet;AM_MEDIA_TYPE amMediaType;
public:
BITMAPINFOHEADER *pbih;