[問題] 關於vfw.h裡的AVIStreamGetFrameOpen
開發平台(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
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章