Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
From: <milan_cutka@us...> - 2004-03-01 14:39:11
|
Update of /cvsroot/ffdshow/ffdshow/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14380/src Modified Files: Tffvfw.cpp Tffvfw.h driverproc.cpp Log Message: working on VFW interface to ffdshow Index: Tffvfw.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffdshow/src/Tffvfw.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Tffvfw.cpp 1 Mar 2004 12:30:34 -0000 1.12 --- Tffvfw.cpp 1 Mar 2004 14:28:05 -0000 1.13 *************** *** 19,31 **** #include "stdafx.h" #include "Tffvfw.h" - #include "TtrayIcon.h" - #include "Tdialog.h" - #include "TffProc.h" - #include "acm/Tacm.h" #include "IffdshowBase.h" ! #include "IffDecoder.h" Tffvfw::Tffvfw(void) { loadReg(); --- 19,40 ---- #include "stdafx.h" #include "Tffvfw.h" #include "IffdshowBase.h" ! #include "TffdshowEnc.h" Tffvfw::Tffvfw(void) { + /* + HRESULT hr; + deciE=new TffdshowEnc(NULL,&hr); + deciE->QueryInterface(IID_IffdshowBase,(void**)&deci); + */ + if (SUCCEEDED(CoCreateInstance(CLSID_FFDSHOWENC,NULL,CLSCTX_INPROC_SERVER,IID_IffdshowEnc,(void**)&deciE))) + { + deciE->QueryInterface(IID_IffdshowBase,(void**)&deci ); + deci->putParam(IDFF_filterMode,deci->getParam2(IDFF_filterMode)|IDFF_FILTERMODE_VFW); + } + else + deci=NULL; + loadReg(); *************** *** 37,40 **** --- 46,52 ---- Tffvfw::~Tffvfw() { + deci->Release(); + deciE->Release(); + //delete deciE; //#ifndef DVX3 // delete acm; *************** *** 51,52 **** --- 63,112 ---- decCfg.loadReg(); } + + void Tffvfw::aboutDlg(HWND hParent) + { + deci->putParam(IDFF_dlgEncAbout,1); + deci->showCfgDlg(hParent); + } + void Tffvfw::configDlg(HWND hParent) + { + deci->showCfgDlg(hParent); + } + + int Tffvfw::saveMem(void *buf,int len) + { + return deciE->saveEncodingSettingsMem(buf,len); + } + int Tffvfw::loadMem(const void *buf,int len) + { + return deciE->loadEncodingSettingsMem(buf,len); + } + + LRESULT Tffvfw::query(BITMAPINFO *lpbiInput,BITMAPINFO *lpbiOutput) + { + return ICERR_ERROR; + } + LRESULT Tffvfw::getFormat(BITMAPINFO *lpbiInput,BITMAPINFO *lpbiOutput) + { + return ICERR_ERROR; + } + LRESULT Tffvfw::getSize(BITMAPINFO *lpbiInput,BITMAPINFO *lpbiOutput) + { + return ICERR_ERROR; + } + LRESULT Tffvfw::framesInfo(ICCOMPRESSFRAMES *icf) + { + return ICERR_ERROR; + } + LRESULT Tffvfw::begin(BITMAPINFO *lpbiInput,BITMAPINFO *lpbiOutput) + { + return ICERR_ERROR; + } + LRESULT Tffvfw::end(void) + { + return ICERR_ERROR; + } + LRESULT Tffvfw::run(void *icc0) + { + return ICERR_ERROR; + } Index: Tffvfw.h =================================================================== RCS file: /cvsroot/ffdshow/ffdshow/src/Tffvfw.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Tffvfw.h 1 Mar 2004 12:30:34 -0000 1.13 --- Tffvfw.h 1 Mar 2004 14:28:05 -0000 1.14 *************** *** 10,13 **** --- 10,14 ---- private: bool graph; + IffdshowEnc *deciE;IffdshowBase *deci; public: *************** *** 22,25 **** --- 23,37 ---- Tffvfw(void); ~Tffvfw(); + + void aboutDlg(HWND hParent),configDlg(HWND hParent); + int saveMem(void *buf,int len),loadMem(const void *buf,int len); + + virtual LRESULT query(BITMAPINFO*,BITMAPINFO*); + virtual LRESULT getFormat(BITMAPINFO*,BITMAPINFO*); + virtual LRESULT getSize(BITMAPINFO*,BITMAPINFO*); + virtual LRESULT framesInfo(ICCOMPRESSFRAMES*); + virtual LRESULT begin(BITMAPINFO*,BITMAPINFO*); + virtual LRESULT end(void); + virtual LRESULT run(void*); }; Index: driverproc.cpp =================================================================== RCS file: /cvsroot/ffdshow/ffdshow/src/driverproc.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** driverproc.cpp 25 Feb 2004 11:20:04 -0000 1.7 --- driverproc.cpp 1 Mar 2004 14:28:05 -0000 1.8 *************** *** 42,46 **** extern "C" __declspec(dllexport) LRESULT WINAPI DriverProc(DWORD dwDriverId,HDRVR hDriver,UINT uMsg,LPARAM lParam1,LPARAM lParam2) { ! #if 0 //TODO: restore VFW interface Tffvfw *ffvfw=(Tffvfw*)dwDriverId; switch(uMsg) --- 42,46 ---- extern "C" __declspec(dllexport) LRESULT WINAPI DriverProc(DWORD dwDriverId,HDRVR hDriver,UINT uMsg,LPARAM lParam1,LPARAM lParam2) { ! #if 1 //TODO: restore VFW interface Tffvfw *ffvfw=(Tffvfw*)dwDriverId; switch(uMsg) *************** *** 60,64 **** ICOPEN *icopen=(ICOPEN*)lParam2; if (icopen!=NULL && icopen->fccType!=ICTYPE_VIDEO && icopen->fccType!=ICTYPE_AUDIO) return DRV_CANCEL; ! ffvfw=new Tffvfw(FFVFW_MODE::VFW); if (icopen!=NULL) icopen->dwError=ICERR_OK; DPRINTF("DRV_OPEN :%i",ffvfw); --- 60,64 ---- ICOPEN *icopen=(ICOPEN*)lParam2; if (icopen!=NULL && icopen->fccType!=ICTYPE_VIDEO && icopen->fccType!=ICTYPE_AUDIO) return DRV_CANCEL; ! ffvfw=new Tffvfw; if (icopen!=NULL) icopen->dwError=ICERR_OK; DPRINTF("DRV_OPEN :%i",ffvfw); *************** *** 100,104 **** case ICM_ABOUT: DPRINTF("ICM_ABOUT"); ! ffvfw->aboutDlg((HWND)lParam1); return ICERR_OK; case ICM_CONFIGURE: --- 100,104 ---- case ICM_ABOUT: DPRINTF("ICM_ABOUT"); ! if (lParam1!=-1) ffvfw->aboutDlg((HWND)lParam1); return ICERR_OK; case ICM_CONFIGURE: *************** *** 140,179 **** case ICM_COMPRESS_QUERY: DPRINTF("ICM_COMPRESS_QUERY"); ! return ffvfw->co.query((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_COMPRESS_GET_FORMAT: DPRINTF("ICM_COMPRESS_GET_FORMAT"); ! return ffvfw->co.getFormat((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_COMPRESS_GET_SIZE: DPRINTF("ICM_COMPRESS_GET_SIZE"); ! return ffvfw->co.getSize((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_COMPRESS_FRAMES_INFO: DPRINTF("ICM_COMPRESS_FRAMES_INFO"); ! return ffvfw->co.framesInfo((ICCOMPRESSFRAMES*)lParam1); case ICM_COMPRESS_BEGIN: DPRINTF("ICM_COMPRESS_BEGIN"); ! return ffvfw->co.begin((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_COMPRESS_END: DPRINTF("ICM_COMPRESS_END"); ! return ffvfw->co.end(); case ICM_COMPRESS: DPRINTF("ICM_COMPRESS"); ! return ffvfw->co.run((ICCOMPRESS*)lParam1); ! // decompressor case ICM_DECOMPRESS_QUERY: DPRINTF("ICM_DECOMPRESS_QUERY"); ! return ffvfw->dec.query((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_DECOMPRESS_GET_FORMAT: DPRINTF("ICM_DECOMPRESS_GET_FORMAT"); ! return ffvfw->dec.getFormat((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_DECOMPRESS_BEGIN: DPRINTF("ICM_DECOMPRESS_BEGIN"); ! return ffvfw->dec.begin((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_DECOMPRESS_END: DPRINTF("ICM_DECOMPRESS_END"); ! return ffvfw->dec.end(); case ICM_DECOMPRESS: //DPRINTF("ICM_DECOMPRESS"); ! return ffvfw->dec.run((ICDECOMPRESS *)lParam1); case ICM_DECOMPRESS_GET_PALETTE: --- 140,179 ---- case ICM_COMPRESS_QUERY: DPRINTF("ICM_COMPRESS_QUERY"); ! return ffvfw->query((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_COMPRESS_GET_FORMAT: DPRINTF("ICM_COMPRESS_GET_FORMAT"); ! return ffvfw->getFormat((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_COMPRESS_GET_SIZE: DPRINTF("ICM_COMPRESS_GET_SIZE"); ! return ffvfw->getSize((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_COMPRESS_FRAMES_INFO: DPRINTF("ICM_COMPRESS_FRAMES_INFO"); ! return ffvfw->framesInfo((ICCOMPRESSFRAMES*)lParam1); case ICM_COMPRESS_BEGIN: DPRINTF("ICM_COMPRESS_BEGIN"); ! return ffvfw->begin((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_COMPRESS_END: DPRINTF("ICM_COMPRESS_END"); ! return ffvfw->end(); case ICM_COMPRESS: DPRINTF("ICM_COMPRESS"); ! return ffvfw->run((ICCOMPRESS*)lParam1); // decompressor + case ICM_DECOMPRESS_QUERY: DPRINTF("ICM_DECOMPRESS_QUERY"); ! return ICERR_UNSUPPORTED;//return ffvfw->dec.query((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_DECOMPRESS_GET_FORMAT: DPRINTF("ICM_DECOMPRESS_GET_FORMAT"); ! return ICERR_UNSUPPORTED;//return ffvfw->dec.getFormat((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_DECOMPRESS_BEGIN: DPRINTF("ICM_DECOMPRESS_BEGIN"); ! return ICERR_UNSUPPORTED;//return ffvfw->dec.begin((BITMAPINFO*)lParam1,(BITMAPINFO*)lParam2); case ICM_DECOMPRESS_END: DPRINTF("ICM_DECOMPRESS_END"); ! return ICERR_UNSUPPORTED;//return ffvfw->dec.end(); case ICM_DECOMPRESS: //DPRINTF("ICM_DECOMPRESS"); ! return ICERR_UNSUPPORTED;//return ffvfw->dec.run((ICDECOMPRESS *)lParam1); case ICM_DECOMPRESS_GET_PALETTE: *************** *** 185,188 **** --- 185,189 ---- return ICERR_UNSUPPORTED; + /* #ifndef DVX3 // ACM *************** *** 216,219 **** --- 217,221 ---- return ffvfw->acm->convert((LPACMDRVSTREAMINSTANCE) lParam1,(LPACMDRVSTREAMHEADER)lParam2); #endif + */ default: return DefDriverProc(dwDriverId,hDriver,uMsg,lParam1,lParam2); |