[問題] 關於vfw.h裡的AVIStreamGetFrameOpen

看板C_and_CPP (C/C++)作者 (tyyo)時間14年前 (2012/05/04 13:53), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) NO 問題(Question): 我想利用vfw.h 內的函式讀取AVI檔每一張FRAME的內容 但是在我使用 AVIStreamGetFrameOpen 這個函式時總是return NULL 已經查詢過MSDN,上面說我可能是電腦裡面缺少一些fourcc(這個看不太懂) 但我可以用window media player打開我想開啟的avi檔 也更新過電腦裡面的decode,但依舊是回傳NULL 想請問板上的大大,我是不是有哪裡寫錯的地方,謝謝 以下為程式碼 bool GetVideoStreamFromAVI (char* szFilePath , PAVISTREAM* gavi ,AVISTREAMINFO* avis ) { //Initial AVI library AVIFileInit() ; //Open Avi file HRESULT hr ; // used to describe an error or warning. PAVIFILE pfile ; hr = AVIFileOpen(&pfile , szFilePath , OF_READ , 0L ) ; if( 0 != hr ) return false ; //getting an AVI stream int gcpavi(0) ; gcpavi = AVIFileGetStream(pfile , gavi , streamtypeVIDEO , 0L ) ; if( gcpavi != AVIERR_OK ) { if( *gavi == NULL ) { AVIStreamRelease( *gavi ) ; } } //put stream header in avis AVIStreamInfo(*gavi , avis , sizeof(AVISTREAMINFO)) ; //Get Stream Header Size long lStreamSize = 0 ; AVIStreamFormatSize( *gavi , 0 , &lStreamSize ) ; //Get Stream Header BITMAPINFOHEADER bmpInfoHeader ; //AVIStreamReadFormat( *gavi , 0L , &bmpInfoHeader , &lStreamSize ) ; int nFrameLengh = AVIStreamLength(*gavi) ; //prepares to decompress video frames from specified video stream PGETFRAME pGF ; pGF = AVIStreamGetFrameOpen( (*gavi) , NULL ) ; if( pGF == NULL ) { return false ; } return true ; } pGF這個都一直是NULL >< 想請問哪裡有出問題嗎? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.228.146.2
文章代碼(AID): #1FesxikI (C_and_CPP)
文章代碼(AID): #1FesxikI (C_and_CPP)