⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vidstrm.h

📁 传说中的 视频抓取驱动源码 啊啊啊啊啊啊啊啊啊啊啊啊啊
💻 H
字号:
#pragma once

//==========================================================================;
//
//	CWDMVideoStream - WDM Video Stream base class definition
//
//		$Date:   22 Feb 1999 15:48:34  $
//	$Revision:   1.2  $
//	  $Author:   KLEBANOV  $
//
// $Copyright:	(c) 1997 - 1999  ATI Technologies Inc.  All Rights Reserved.  $
//
//==========================================================================;

#include "i2script.h"
#include "aticonfg.h"


#include "decdev.h"
#include "decvport.h"


typedef enum {
    STREAM_VideoCapture,
    STREAM_VPVideo,
    STREAM_VBICapture,
    STREAM_VPVBI,
    STREAM_AnalogVideoInput
}; 


class CWDMVideoDecoder;

class CWDMVideoStream
{
public:

	CWDMVideoStream(PHW_STREAM_OBJECT pStreamObject,
					CWDMVideoDecoder * pCWDMVideoDecoder,
					PUINT puiError);
	virtual ~CWDMVideoStream();

	void * operator new(size_t size, void * pAllocation) { return(pAllocation);}
	void operator delete(void * pAllocation) {}

	virtual VOID STREAMAPI VideoReceiveDataPacket(IN PHW_STREAM_REQUEST_BLOCK pSrb);
	VOID STREAMAPI VideoReceiveCtrlPacket(IN PHW_STREAM_REQUEST_BLOCK pSrb);
	virtual void TimeoutPacket(IN OUT PHW_STREAM_REQUEST_BLOCK pSrb);

	VOID VideoGetState(PHW_STREAM_REQUEST_BLOCK);
	virtual VOID VideoSetState(PHW_STREAM_REQUEST_BLOCK, BOOL bVPConnected, BOOL bVPVBIConnected);

	virtual VOID VideoGetProperty(PHW_STREAM_REQUEST_BLOCK);
	virtual VOID VideoSetProperty(PHW_STREAM_REQUEST_BLOCK);

	VOID VideoStreamGetConnectionProperty (PHW_STREAM_REQUEST_BLOCK);
	VOID VideoIndicateMasterClock (PHW_STREAM_REQUEST_BLOCK);

	virtual void CancelPacket( PHW_STREAM_REQUEST_BLOCK)
	{
	};

protected:
	PHW_STREAM_OBJECT			m_pStreamObject;

    // General purpose lock. We could use a separate one
    // for each queue, but this keeps things a little
    // more simple. Since it is never held for very long,
    // this shouldn't be a big performance hit.

    KSSTATE                     m_KSState;            // Run, Stop, Pause

    HANDLE                      m_hMasterClock;       // 
	
	// -------------------


    CWDMVideoDecoder *			m_pVideoDecoder;
	CDecoderVideoPort *			m_pVideoPort;
	CVideoDecoderDevice *		m_pDevice;

private:

    // Control SRBs go here
    LIST_ENTRY                  m_ctrlSrbQueue;
    KSPIN_LOCK                  m_ctrlSrbLock;

    // Flag to indicate whether or not we are currently
    // busy processing a control SRB
    BOOL                        m_processingCtrlSrb;
};


//
// prototypes for data handling routines
//

VOID STREAMAPI VideoReceiveDataPacket(IN PHW_STREAM_REQUEST_BLOCK);
VOID STREAMAPI VideoReceiveCtrlPacket(IN PHW_STREAM_REQUEST_BLOCK);

DWORD FAR PASCAL DirectDrawEventCallback(DWORD dwEvent, PVOID pContext, DWORD dwParam1, DWORD dwParam2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -