?? dvdmedia.h
字號:
//------------------------------------------------------------------------------
// File: DVDMedia.h
//
// Desc: Contains typedefs and defines necessary for user mode (ring 3) DVD
// filters and applications.
//
// This should be included in the DirectShow SDK for user mode filters.
// The types defined here should be kept in synch with ksmedia.h WDM
// DDK for kernel mode filters.
//
// Copyright (c) 1997 - 2001, Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#ifndef __DVDMEDIA_H__
#define __DVDMEDIA_H__
#ifdef __cplusplus
extern "C"
{
#endif // __cplusplus
// -----------------------------------------------------------------------
// AC-3 definition for the AM_KSPROPSETID_AC3 property set
// -----------------------------------------------------------------------
typedef enum {
AM_PROPERTY_AC3_ERROR_CONCEALMENT = 1,
AM_PROPERTY_AC3_ALTERNATE_AUDIO = 2,
AM_PROPERTY_AC3_DOWNMIX = 3,
AM_PROPERTY_AC3_BIT_STREAM_MODE = 4,
AM_PROPERTY_AC3_DIALOGUE_LEVEL = 5,
AM_PROPERTY_AC3_LANGUAGE_CODE = 6,
AM_PROPERTY_AC3_ROOM_TYPE = 7
} AM_PROPERTY_AC3;
typedef struct
{
BOOL fRepeatPreviousBlock;
BOOL fErrorInCurrentBlock;
}
AM_AC3_ERROR_CONCEALMENT, *PAM_AC3_ERROR_CONCEALMENT;
typedef struct
{
BOOL fStereo;
ULONG DualMode;
}
AM_AC3_ALTERNATE_AUDIO, *PAM_AC3_ALTERNATE_AUDIO;
#define AM_AC3_ALTERNATE_AUDIO_1 1
#define AM_AC3_ALTERNATE_AUDIO_2 2
#define AM_AC3_ALTERNATE_AUDIO_BOTH 3
typedef struct
{
BOOL fDownMix;
BOOL fDolbySurround;
}
AM_AC3_DOWNMIX, *PAM_AC3_DOWNMIX;
typedef struct
{
LONG BitStreamMode;
}
AM_AC3_BIT_STREAM_MODE, *PAM_AC3_BIT_STREAM_MODE;
#define AM_AC3_SERVICE_MAIN_AUDIO 0
#define AM_AC3_SERVICE_NO_DIALOG 1
#define AM_AC3_SERVICE_VISUALLY_IMPAIRED 2
#define AM_AC3_SERVICE_HEARING_IMPAIRED 3
#define AM_AC3_SERVICE_DIALOG_ONLY 4
#define AM_AC3_SERVICE_COMMENTARY 5
#define AM_AC3_SERVICE_EMERGENCY_FLASH 6
#define AM_AC3_SERVICE_VOICE_OVER 7
typedef struct
{
ULONG DialogueLevel;
}
AM_AC3_DIALOGUE_LEVEL, *PAM_AC3_DIALOGUE_LEVEL;
typedef struct
{
BOOL fLargeRoom;
}
AM_AC3_ROOM_TYPE, *PAM_AC3_ROOM_TYPE;
// -----------------------------------------------------------------------
// subpicture definition for the AM_KSPROPSETID_DvdSubPic property set
// -----------------------------------------------------------------------
typedef enum {
AM_PROPERTY_DVDSUBPIC_PALETTE = 0,
AM_PROPERTY_DVDSUBPIC_HLI = 1,
AM_PROPERTY_DVDSUBPIC_COMPOSIT_ON = 2 // TRUE for subpicture is displayed
} AM_PROPERTY_DVDSUBPIC;
typedef struct _AM_DVD_YUV
{
UCHAR Reserved;
UCHAR Y;
UCHAR U;
UCHAR V;
}
AM_DVD_YUV, *PAM_DVD_YUV;
typedef struct _AM_PROPERTY_SPPAL
{
AM_DVD_YUV sppal[16];
}
AM_PROPERTY_SPPAL, *PAM_PROPERTY_SPPAL;
typedef struct _AM_COLCON
{
UCHAR emph1col:
4;
UCHAR emph2col:
4;
UCHAR backcol:
4;
UCHAR patcol:
4;
UCHAR emph1con:
4;
UCHAR emph2con:
4;
UCHAR backcon:
4;
UCHAR patcon:
4;
}
AM_COLCON, *PAM_COLCON;
typedef struct _AM_PROPERTY_SPHLI
{
USHORT HLISS; //
USHORT Reserved;
ULONG StartPTM; // start presentation time in x/90000
ULONG EndPTM; // end PTM in x/90000
USHORT StartX;
USHORT StartY;
USHORT StopX;
USHORT StopY;
AM_COLCON ColCon; // color contrast description (4 bytes as given in HLI)
}
AM_PROPERTY_SPHLI, *PAM_PROPERTY_SPHLI;
typedef BOOL AM_PROPERTY_COMPOSIT_ON, *PAM_PROPERTY_COMPOSIT_ON;
// -----------------------------------------------------------------------
// copy protection definitions
// -----------------------------------------------------------------------
// AM_UseNewCSSKey for the dwTypeSpecificFlags in IMediaSample2 to indicate
// the exact point in a stream after which to start applying a new CSS key.
// This is typically sent on an empty media sample just before attempting
// to renegotiate a CSS key.
#define AM_UseNewCSSKey 0x1
//
// AM_KSPROPSETID_CopyProt property set definitions
//
typedef enum {
AM_PROPERTY_DVDCOPY_CHLG_KEY = 0x01,
AM_PROPERTY_DVDCOPY_DVD_KEY1 = 0x02,
AM_PROPERTY_DVDCOPY_DEC_KEY2 = 0x03,
AM_PROPERTY_DVDCOPY_TITLE_KEY = 0x04,
AM_PROPERTY_COPY_MACROVISION = 0x05,
AM_PROPERTY_DVDCOPY_REGION = 0x06,
AM_PROPERTY_DVDCOPY_SET_COPY_STATE = 0x07,
AM_PROPERTY_DVDCOPY_DISC_KEY = 0x80
} AM_PROPERTY_DVDCOPYPROT;
typedef struct _AM_DVDCOPY_CHLGKEY
{
BYTE ChlgKey[10];
BYTE Reserved[2];
}
AM_DVDCOPY_CHLGKEY, *PAM_DVDCOPY_CHLGKEY;
typedef struct _AM_DVDCOPY_BUSKEY
{
BYTE BusKey[5];
BYTE Reserved[1];
}
AM_DVDCOPY_BUSKEY, *PAM_DVDCOPY_BUSKEY;
typedef struct _AM_DVDCOPY_DISCKEY
{
BYTE DiscKey[2048];
}
AM_DVDCOPY_DISCKEY, *PAM_DVDCOPY_DISCKEY;
typedef struct AM_DVDCOPY_TITLEKEY
{
ULONG KeyFlags;
ULONG Reserved1[2];
UCHAR TitleKey[6];
UCHAR Reserved2[2];
}
AM_DVDCOPY_TITLEKEY, *PAM_DVDCOPY_TITLEKEY;
typedef struct _AM_COPY_MACROVISION
{
ULONG MACROVISIONLevel;
}
AM_COPY_MACROVISION, *PAM_COPY_MACROVISION;
typedef struct AM_DVDCOPY_SET_COPY_STATE
{
ULONG DVDCopyState;
}
AM_DVDCOPY_SET_COPY_STATE, *PAM_DVDCOPY_SET_COPY_STATE;
typedef enum {
AM_DVDCOPYSTATE_INITIALIZE = 0,
AM_DVDCOPYSTATE_INITIALIZE_TITLE = 1, // indicates we are starting a title
// key copy protection sequence
AM_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED = 2,
AM_DVDCOPYSTATE_AUTHENTICATION_REQUIRED = 3,
AM_DVDCOPYSTATE_DONE = 4
} AM_DVDCOPYSTATE;
typedef enum {
AM_MACROVISION_DISABLED = 0,
AM_MACROVISION_LEVEL1 = 1,
AM_MACROVISION_LEVEL2 = 2,
AM_MACROVISION_LEVEL3 = 3
} AM_COPY_MACROVISION_LEVEL, *PAM_COPY_MACROVISION_LEVEL;
// CSS region stucture
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -