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

📄 dvdtdcod.h

📁 dvd解码卡的wdm驱动程序例程
💻 H
字号:
/*++

Copyright (c) 1998  Microsoft Corporation

Module Name:

    DvdTDCod.H

Abstract:

    API definitions for Master Decoder HW routines library "DvdTDcod.lib"
    
	DvdTDCod.lib itself is provided by Microsoft in binary form only

Environment:

    Kernel mode only

Notes:

  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  PURPOSE.

  Copyright (c) 1998 Microsoft Corporation.  All Rights Reserved.

  Some portions adapted with permission from code Copyright (c) 1997-1998 Toshiba Corporation

Revision History:

	5/1/98: created

--*/
#ifndef __DVDCOD_H__
#define __DVDCOD_H__

// allocate decoder data area and put 'blind' ptr to it in our device ext
PVOID decAllocateDecoderInfo( PHW_DEVICE_EXTENSION pHwDevExt );

// initialize the mpeg hw
void decInitMPEG( PHW_DEVICE_EXTENSION pHwDevExt, DWORD dwSTC );

void decVsyncOn( PHW_DEVICE_EXTENSION pHwDevExt ); // vert sync on

void decClosedCaptionOn( PHW_DEVICE_EXTENSION pHwDevExt ); //turn on/off closed caption
void decClosedCaptionOff( PHW_DEVICE_EXTENSION pHwDevExt );

// get MPEG decoder interrupt status
UCHAR decGetMPegIntStatus( PHW_DEVICE_EXTENSION pHwDevExt );

UCHAR decGetPciIntStatus( PHW_DEVICE_EXTENSION pHwDevExt );

//DMA routines
void decSetDma0Size( PHW_DEVICE_EXTENSION pHwDevExt, ULONG dmaSize );
void decSetDma1Size( PHW_DEVICE_EXTENSION pHwDevExt, ULONG dmaSize );
void decSetDma0Addr( PHW_DEVICE_EXTENSION pHwDevExt, ULONG dmaAddr );
void decSetDma1Addr( PHW_DEVICE_EXTENSION pHwDevExt, ULONG dmaAddr );
void decSetDma0Start( PHW_DEVICE_EXTENSION pHwDevExt );
void decSetDma1Start( PHW_DEVICE_EXTENSION pHwDevExt );

ULONG decGetVideoSTCA( PHW_DEVICE_EXTENSION pHwDevExt );

void decGetLPCMInfo( void *pBuf, PMYAUDIOFORMAT pfmt );

void decInitAudioAfterNewFormat( PHW_DEVICE_EXTENSION pHwDevExtpHwDevExt );

//hardware reg mode setting
BOOLEAN decSetStreamMode( PHW_DEVICE_EXTENSION pHwDevExt, PHW_STREAM_REQUEST_BLOCK pSrb ); // set stream modes on HW
void decSetDisplayMode( PHW_DEVICE_EXTENSION pHwDevExt ); // set display mode on HW

void decSetAudioMode( PHW_DEVICE_EXTENSION pHwDevExt ); // set audio mode on HW
void decSetAudioAC3( PHW_DEVICE_EXTENSION pHwDevExt ); // set audio mode AC3
void decSetAudioPCM( PHW_DEVICE_EXTENSION pHwDevExt ); // set audio mode PCM
ULONG decGetAudioMode( PHW_DEVICE_EXTENSION pHwDevExt ); // get audio mode from HW
void decSetAudioFreq( PHW_DEVICE_EXTENSION pHwDevExt, ULONG freq ); // set audio freq 

void decSetCopyGuard( PHW_DEVICE_EXTENSION pHwDevExt ); // set copy protection on HW

// video play speed/mode
void decSetVideoPlayMode( PHW_DEVICE_EXTENSION pHwDevExt, ULONG mode ); // set video play speed/mode
ULONG decGetVideoPlayMode( PHW_DEVICE_EXTENSION pHwDevExt ); // get video play speed/mode
void decSetVideoRunMode( PHW_DEVICE_EXTENSION pHwDevExt, ULONG mode ); // set video run speed/mode
ULONG decGetVideoRunMode( PHW_DEVICE_EXTENSION pHwDevExt ); // get video run speed/mode

UCHAR decGetVideoPort( PHW_DEVICE_EXTENSION pHwDevExt ); // get video port
void decSetVideoPort( PHW_DEVICE_EXTENSION pHwDevExt, UCHAR port ); // set video port

// interrupt handlers
void decHwIntVideo( PHW_DEVICE_EXTENSION pHwDevExt );
void decHwIntVSync( PHW_DEVICE_EXTENSION pHwDevExt );

// access/control composite picture
BOOLEAN decGetSubpicMute( PHW_DEVICE_EXTENSION pHwDevExt );
void decSetSubpicMute( PHW_DEVICE_EXTENSION pHwDevExt, BOOLEAN flag );

// Set CGMS for Digital Audio Copy Guard & NTSC Analog Copy Guard
void decDvdTitleCopyKey( PHW_DEVICE_EXTENSION pHwDevExt, PKS_DVDCOPY_TITLEKEY pTitleKey );
BOOLEAN decCpp_reset( PHW_DEVICE_EXTENSION pHwDevExt, CPPMODE mode );
BOOLEAN decCpp_decoder_challenge( PHW_DEVICE_EXTENSION pHwDevExt, PKS_DVDCOPY_CHLGKEY r1 );
BOOLEAN decCpp_drive_bus( PHW_DEVICE_EXTENSION pHwDevExt, PKS_DVDCOPY_BUSKEY fsr1 );
BOOLEAN decCpp_drive_challenge( PHW_DEVICE_EXTENSION pHwDevExt, PKS_DVDCOPY_CHLGKEY r2 );
BOOLEAN decCpp_decoder_bus( PHW_DEVICE_EXTENSION pHwDevExt, PKS_DVDCOPY_BUSKEY fsr2 );
BOOLEAN decCpp_DiscKeyStart(PHW_DEVICE_EXTENSION pHwDevExt);
BOOLEAN decCpp_DiscKeyEnd(PHW_DEVICE_EXTENSION pHwDevExt);
BOOLEAN decCpp_TitleKey( PHW_DEVICE_EXTENSION pHwDevExt, PKS_DVDCOPY_TITLEKEY tk );

// actual start video decoding at various speeds
void decDecodeStartNormal( PHW_DEVICE_EXTENSION pHwDevExt, DWORD dwSTC );
void decDecodeStartFast( PHW_DEVICE_EXTENSION pHwDevExt, DWORD dwSTC );
void decDecodeStartSlow( PHW_DEVICE_EXTENSION pHwDevExt, DWORD dwSTC );

void decStopData( PHW_DEVICE_EXTENSION pHwDevExt, BOOL bKeep );
void decHighlight( PHW_DEVICE_EXTENSION pHwDevExt, PKSPROPERTY_SPHLI phli );
void decDisableInt( PHW_DEVICE_EXTENSION pHwDevExt );
void decGenericNormal( PHW_DEVICE_EXTENSION pHwDevExt );
void decGenericFreeze( PHW_DEVICE_EXTENSION pHwDevExt );
void decGenericSlow( PHW_DEVICE_EXTENSION pHwDevExt );
void decStopForFast( PHW_DEVICE_EXTENSION pHwDevExt );
void decResumeForFast( PHW_DEVICE_EXTENSION pHwDevExt );
void decFastNormal( PHW_DEVICE_EXTENSION pHwDevExt );
void decFastSlow( PHW_DEVICE_EXTENSION pHwDevExt );
void decFastFreeze( PHW_DEVICE_EXTENSION pHwDevExt );
void decFreezeFast( PHW_DEVICE_EXTENSION pHwDevExt );

// misc HW routines used by dvdcmd.c
void  decSUBP_STC_ON( PHW_DEVICE_EXTENSION pHwDevExt );
void  decSUBP_STC_OFF( PHW_DEVICE_EXTENSION pHwDevExt );
void  decVPRO_SUBP_PALETTE(  PHW_DEVICE_EXTENSION pHwDevExt ,PUCHAR pPalData );
void  decSUBP_SET_AUDIO_CH(  PHW_DEVICE_EXTENSION pHwDevExt , ULONG ch );
ULONG decSUBP_GET_AUDIO_CH( PHW_DEVICE_EXTENSION pHwDevExt );
void  decSUBP_SET_SUBP_CH(  PHW_DEVICE_EXTENSION pHwDevExt , ULONG ch );
ULONG decSUBP_GET_SUBP_CH( PHW_DEVICE_EXTENSION pHwDevExt );
void  decSUBP_SET_STC(  PHW_DEVICE_EXTENSION pHwDevExt , ULONG stc );
void decCGuard_CPGD_SET_ASPECT( PHW_DEVICE_EXTENSION pHwDevExt, ULONG aspect );
void decCGuard_CPGD_SUBP_PALETTE( PHW_DEVICE_EXTENSION pHwDevExt, PUCHAR pPalData );
NTSTATUS decAUDIO_ZR38521_STAT( PHW_DEVICE_EXTENSION pHwDevExt, PULONG pDiff );
NTSTATUS decAUDIO_ZR38521_MUTE_OFF(PHW_DEVICE_EXTENSION pHwDevExt);
NTSTATUS decAUDIO_ZR38521_BFST( PHW_DEVICE_EXTENSION pHwDevExt, PULONG pErrCode );
NTSTATUS decAUDIO_ZR38521_STOP(PHW_DEVICE_EXTENSION pHwDevExt);
NTSTATUS decAUDIO_ZR38521_VDSCR_ON( PHW_DEVICE_EXTENSION pHwDevExt, ULONG stc );
void decVIDEO_SET_STCA( PHW_DEVICE_EXTENSION pHwDevExt, ULONG stca );
ULONG decVIDEO_GET_STD_CODE( PHW_DEVICE_EXTENSION pHwDevExt );
BOOL decVIDEO_GET_DECODE_STATE( PHW_DEVICE_EXTENSION pHwDevExt );
NTSTATUS decVIDEO_DECODE_STOP( PHW_DEVICE_EXTENSION pHwDevExt );
void decVIDEO_UFLOW_INT_OFF( PHW_DEVICE_EXTENSION pHwDevExt );
void decVIDEO_PRSO_PS1( PHW_DEVICE_EXTENSION pHwDevExt );


	
			



		



#endif // __DVDCOD_H__


⌨️ 快捷键说明

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