2008年7月27日 星期日

處理AVI所需的API - Part2

partial class AVIFileAPI
{

 // 獲得資料流檔頭資訊
 [DllImport("avifil32.dll")]
 extern internal static int AVIStreamInfo(IntPtr pavi, out AVISTREAMINFO psi, int lSize);

 [DllImport("avifil32.dll")]
 extern internal static int AVIStreamRelease(IntPtr pavi);

 // 得到一個取得Freame的物件
 [DllImport("avifil32.dll")]
 extern internal static IntPtr AVIStreamGetFrameOpen(IntPtr pavi, ref BITMAPINFOHEADER lpbiWanted);

 [DllImport("avifil32.dll")]
 extern internal static IntPtr AVIStreamGetFrameOpen(IntPtr pavi, int lpbiWanted);

 // 取得Frame的DIB
 [DllImport("avifil32.dll")]
 extern internal static IntPtr AVIStreamGetFrame(IntPtr pgf, int lPos);

 // 取得此資料流的總Sample數
 [DllImport("avifil32.dll")]
 extern internal static int AVIStreamLength(IntPtr pavi);

 [DllImport("avifil32.dll")]
 extern internal static int AVIStreamRead(IntPtr pavi, int lStart, int lSamples, IntPtr lpBuffer, int cbBuffer, out int plBytes, out int plSamples);

 // 讀取資料流指定位置的Frame的格式資訊
 [DllImport("avifil32.dll")]
 extern internal static int AVIStreamReadFormat(IntPtr pavi, int lPos, out BITMAPINFOHEADER lpFormat, out int lpcbFormat);

 [DllImport("avifil32.dll")]
 extern internal static uint AVIStreamGetFrameClose(IntPtr pget);

 // 取得此資料流的起始Sample編號
 [DllImport("avifil32.dll")]
 extern internal static int AVIStreamStart(IntPtr pavi);
}

沒有留言:

張貼留言