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

📄 decdev.h

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

//==========================================================================;
//
//  Video Decoder Device abstract base class definition
//
//      $Date:   28 Aug 1998 14:43:46  $
//  $Revision:   1.1  $
//    $Author:   Tashjian  $
//
// $Copyright:  (c) 1997 - 1998  ATI Technologies Inc.  All Rights Reserved.  $
//
//==========================================================================;


#include "viddefs.h"
#include "mytypes.h"

class CWDMVideoDecoder;

class CVideoDecoderDevice
{
private:
    BOOL m_bOutputEnabledSet;
    CWDMVideoDecoder* m_pDecoder;


public:
    CVideoDecoderDevice();
    virtual ~CVideoDecoderDevice();

    virtual int GetDefaultDecoderWidth() = 0;
    virtual int GetDefaultDecoderHeight() = 0;

    virtual void SetRect(MRect &) = 0;

    virtual void SetVBIEN(BOOL b) = 0;
    virtual void SetVBIFMT(BOOL b) = 0;

    virtual void SaveState() = 0;
    virtual void RestoreState(DWORD dwStreamsOpen = -1) = 0;


    void GetCrossbarProperty(PHW_STREAM_REQUEST_BLOCK);
    void SetCrossbarProperty(PHW_STREAM_REQUEST_BLOCK);
    virtual BOOL GoodPins(ULONG InPin, ULONG OutPin) = 0;
    virtual BOOL TestRoute(ULONG InPin, ULONG OutPin) = 0;
    virtual void Route(ULONG OutPin, ULONG InPin) = 0;
    virtual ULONG GetNoInputs() = 0;
    virtual ULONG GetNoOutputs() = 0;
    virtual ULONG GetPinInfo(KSPIN_DATAFLOW dir, ULONG idx, ULONG &related) = 0;
    virtual ULONG GetRoute(ULONG OutPin) = 0;
    virtual KSPIN_MEDIUM * GetPinMedium(KSPIN_DATAFLOW dir, ULONG idx) = 0;

    virtual ErrorCode SetVideoInput(Connector c) = 0;

    
    virtual NTSTATUS GetProcAmpProperty(ULONG, PLONG) = 0;
    virtual NTSTATUS SetProcAmpProperty(ULONG, LONG) = 0;


    void GetDecoderProperty(PHW_STREAM_REQUEST_BLOCK);
    virtual void GetVideoDecoderCaps(PKSPROPERTY_VIDEODECODER_CAPS_S) = 0;
    virtual DWORD GetVideoDecoderStandard() = 0;
    virtual void GetVideoDecoderStatus(PKSPROPERTY_VIDEODECODER_STATUS_S) = 0;
    virtual BOOL IsOutputEnabled() = 0;
    void SetDecoderProperty(PHW_STREAM_REQUEST_BLOCK);
    virtual BOOL SetVideoDecoderStandard(DWORD) = 0;
    virtual void SetOutputEnabled(BOOL) = 0;
    void SetOutputEnabledOverridden(BOOL bOutputEnabledSet)
    {
        m_bOutputEnabledSet = bOutputEnabledSet;
    }
    BOOL IsOutputEnabledOverridden()
    {
        return m_bOutputEnabledSet;
    }


    virtual void GetVideoPortProperty(PHW_STREAM_REQUEST_BLOCK pSrb) = 0;
    virtual void GetVideoPortVBIProperty(PHW_STREAM_REQUEST_BLOCK pSrb) = 0;

    virtual void Set16BitDataStream(BOOL b) = 0;
    virtual BOOL IsHighOdd() = 0;
    virtual void SetHighOdd(BOOL b) = 0;
    virtual void ConfigVPSurfaceParams(PKSVPSURFACEPARAMS pSurfaceParams) = 0;
    virtual void ConfigVPVBISurfaceParams(PKSVPSURFACEPARAMS pSurfaceParams) = 0;

    virtual int GetDecoderHeight() = 0;

    virtual void GetVideoSurfaceOrigin(int*, int*) = 0;
    virtual void GetVBISurfaceOrigin(int*, int*) = 0;
    void SetVideoDecoder(CWDMVideoDecoder* pDecoder)
    {
        m_pDecoder = pDecoder;
    }
};

⌨️ 快捷键说明

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