📄 mpegcmn.h
字号:
/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
mpegcmn.h
Abstract:
These are the definitions which are common to the MPEG API and
Port/Miniport interfaces.
Revision History:
--*/
#ifndef _MPEGCMN_H
#define _MPEGCMN_H
#ifdef __cplusplus
extern "C"
{
#endif
#include "mpegerr.h"
// maximum number of mpeg devices in the computer
#define MAX_MPEG_DEVICES 40 // equivalent for RM_MAXIMUM =40 in fmpdefs.h
#ifndef _NO_64BITS_SUPPORT_
typedef ULONGLONG MPEG_SYSTEM_TIME, *PMPEG_SYSTEM_TIME;
#define MPEG_SYSTEM_TIME_MASK ((MPEG_SYSTEM_TIME)0x00000001FFFFFFFF)
// information flags or-ed with Scr, Pts, Stc ( 64 bits variables )
#define PTS_VALIDITY 0x8000000000000000
#define PTS_WAVIFACE_4000 0x4000000000000000
#define FIRST_AUDIO_PTS 0x0004000000000000
#define PTS_WAVIFACE_0002 0x0002000000000000
#define PTS_DISCONTINUITY 0x0001000000000000
// Information flags to indicate new DATA Format (See RM_DATA_FORMAT_STRUCT)
#define RMFLAG_DATA_FORMAT_CHANGE 0x2000000000000000
#define CTS_VALIDITY 0x1000000000000000
#endif
#ifdef MMOSA
typedef unsigned char BOOLEAN, *PBOOLEAN;
typedef char CHAR, *PCHAR;
#ifndef MIDL_PASS
typedef unsigned char UCHAR, *PUCHAR;
typedef short SHORT, *PSHORT;
typedef unsigned short USHORT, *PUSHORT;
typedef unsigned __int64 ULONGLONG, *PULONGLONG;
#define VOID void
typedef void * PVOID;
#endif
#define IN
#define OUT
#define OPTIONAL
#else
#ifdef MIDL_PASS
typedef char CHAR, *PCHAR;
typedef unsigned char *PUCHAR;
typedef long *PLONG;
#endif
#ifndef _COLORREF_DEFINED
#define _COLORREF_DEFINED
typedef ULONG COLORREF;
#endif
#ifndef _DWORD_
typedef unsigned long DWORD;
#define _DWORD_
#endif
#ifndef _WORD_
typedef unsigned short WORD;
#define _WORD_
#endif
#endif
// MpegAttrForcedProgressive flags
#define BROADCASTED_VIDEO 0x0200
#define DVD_VIDEO 0x0000
#define FORCED_PROGRESSIVE_OFF 0x0100 // display progressive or interlaced like in the video stream
#define FORCED_PROGRESSIVE_ON 0x0000 // display only progressive if the stream switches very fast from interlaced to progressive
#define PROGRESSIVE_ALWAYS 0x0080
#define PROGRESSIVE_MOVIES 0x0000
#define FRAME_DROP 0x0040
#define FIELD_DROP 0x0000
#define VGA_INTERLACED 0x0002
#define VGA_PROGRESSIVE 0x0000
// MpegAttrHardwareInfo1 flags
#define DARK_COLOR_LETTERBOX 0x0001 // hwDecoder is Quasar1 - letterbox bug
#define VGA_CABLE_NOT_CONNECTED 0x0002 // VGA cable is not connected for analog overlay boards
// MpegAttrOverlayFlags
#define OVERLAY_FLAGS_MASK 0x000F
#define VIDEO_ZOOM_ENABLE 0x0001
#define VIDEO_TV_DEST_ENABLE 0x0002
#define VIDEO_HDTV_DEST_ENABLE 0x0004
#define OSD_VIDEO_INDEPENDENT_DEST 0x0008
// MpegAttrPlayOptions
typedef enum
{
VideoHwPlayNormal = 0,
VideoHwPlayToEvent,
VideoHwPlayIFrame,
VideoHwPlaySyncFaster,
VideoHwPlayYUV
}PLAY_OPTIONS;
//****************************************************************************
// Enumerated Constants
//****************************************************************************
typedef enum _MPEG_ATTRIBUTE {
MpegAttrAudioBass = 0,
MpegAttrAudioChannel,
MpegAttrAudioMode,
MpegAttrAudioTreble,
MpegAttrAudioVolumeLeft,
MpegAttrAudioVolumeRight,
MpegAttrAudioPosition,
MpegAttrAudioRate,
MpegAttrAudioLayerIndex,
MpegAttrAudioBitrateIndex,
MpegAttrAudioFormat,
MpegAttrAudioNumChannels,
MpegAttrAudioBlockAlign,
MpegAttrAudioEnableSpdif,
MpegAttrAudioSetPcmOutputSpdif,
MpegAttrAudioVcxo,
MpegAttrAudioOutput,
MpegAttrMaximumAudioAttribute,
MpegAttrVideoBrightness =400,
MpegAttrVideoChannel,
MpegAttrVideoContrast,
MpegAttrVideoHue,
MpegAttrVideoMode,
MpegAttrVideoSaturation,
MpegAttrVideoAGC,
MpegAttrVideoClamp,
MpegAttrVideoCoring,
MpegAttrVideoGain,
MpegAttrVideoGenLock, //410
MpegAttrVideoSharpness,
MpegAttrVideoSignalType,
MpegAttrVideoPosition,
MpegAttrVideoSpeed,
MpegAttrVideoFramePosition,
MpegAttrVideoRate,
MpegAttrVideoAspectRatio,
MpegAttrVideoSpeed2,
MpegAttrVideoCD10Parameter,
MpegAttrVideoGamma, //420
MpegAttrVideoAccessHardware,
MpegAttrVideoTv,
MpegAttrGetSubID,
MpegAttrVideoEnableSync,
MpegAttrVideoOutputMode,
MpegAttrVideoStill,
MpegAttrVideoMacrovisionFlags,
MpegAttrChgKey,
MpegAttrKey,
MpegAttrDiscKey, //430
MpegAttrTitleKey,
MpegAttrVideoForceEos,
MpegAttrAddPerfStat,
MpegAttrRemovePerfStat,
MpegAttrVideoDeviceSize,
MpegAttrVideoModeChange,
MpegAttrVideoKeepAspectRatio,
MpegAttrTvFullScreen,
MpegAttrTvEncoderToleranceNtsc,
MpegAttrTvEncoderTolerancePal, //440
MpegAttrForcedProgressive,
MpegAttrHDTVMode,
MpegAttrVideoFramePts45k,
MpegAttrVideoFrameNumberInGOP,
MpegAttrPlayOptions,
MpegAttrCodeVersion,
MpegAttrMaximumVideoAttribute,
MpegAttrOverlayXOffset = 800,
MpegAttrOverlayYOffset,
MpegAttrOverlayVgaCorrection,
MpegAttrOverlayVgaRUpper,
MpegAttrOverlayVgaRLower,
MpegAttrOverlayVgaGUpper,
MpegAttrOverlayVgaGLower,
MpegAttrOverlayVgaBUpper,
MpegAttrOverlayVgaBLower,
MpegAttrOverlaySourceWidth,
MpegAttrOverlaySourceHeight,
MpegAttrOverlayHFrequency,
MpegAttrOverlayFineAdjustment,
MpegAttrOverlayInDelay,
MpegAttrOverlayOutDelay,
MpegAttrOverlayCropLeft,
MpegAttrOverlayCropRight,
MpegAttrOverlayCropTop,
MpegAttrOverlayCropBottom,
MpegAttrOverlayJitterAdjustment,
MpegAttrOverlayTVXYPos,
MpegAttrOverlayFlags,
MpegAttrOsdDest,
MpegAttrOsdHiLiDest,
MpegAttrOsdON,
MpegAttrOsdOFF,
MpegAttrOsdFLUSH,
MpegAttrOsdBufferSize,
MpegAttrDisplayResolutionEx,
MpegAttrMaximumOverlayAttribute,
// Subpicture & other
MpegAttrWindowHandle = 1000,
MpegAttrSubpicturePalette,
MpegAttrUserPalette,
MpegAttrPaletteHWnd,
MpegAttrSprm8,
MpegAttrCmd,
MpegAttrDisplayState,
MpegAttrDisplayType,
MpegAttrCapabilities,
MpegAttrDisplayResolution,
MpegAttrHighlight,
MpegAttrButtonAvailable,
MpegAttrHardwareInfo1,
MpegAttrPowerState,
MpegAttrDirectShow,
MpegAttrGetFreeInstanceNmb,
MpegAttrGetMaxInstanceNmb,
MpegAttrVgaVendorInfo,
MpegAttrMaximumSubpictureAttribute,
// Values used for debug purposes
MpegAttrOverlayAdjustmentA = 1200,
MpegAttrOverlayAdjustmentB,
MpegAttrOverlayAdjustmentC,
MpegAttrOverlayAdjustmentD,
MpegAttrOverlayAdjustmentE,
MpegAttrOverlayAdjustmentF,
MpegAttrMaximum
} MPEG_ATTRIBUTE, *PMPEG_ATTRIBUTE;
#define MPEG_OEM_ATTRIBUTE(a) ((MPEG_ATTRIBUTE)(((unsigned)(a))+0x00008000))
// MpegAttrAudioMode flags
#define MPEG_ATTRIBUTE_AUDIO_MONO 0
#define MPEG_ATTRIBUTE_AUDIO_STEREO 1
#define MPEG_ATTRIBUTE_AUDIO_SPATIAL_STEREO 2
#define MPEG_ATTRIBUTE_AUDIO_PSEUDO_STEREO 3
// MpegAttrVideoMode flags
#define MPEG_ATTRIBUTE_VIDEO_COMPONENT 0
#define MPEG_ATTRIBUTE_VIDEO_PAL 1
#define MPEG_ATTRIBUTE_VIDEO_NTSC 2
#define MPEG_ATTRIBUTE_VIDEO_SECAM 3
#define MPEG_ATTRIBUTE_VIDEO_MAC 4
#define MPEG_ATTRIBUTE_VIDEO_AUTO 5
// MpegAttrAudioFormat
#define AUDIO_FORMAT_MPEG1 1
#define AUDIO_FORMAT_MPEG2 2
#define AUDIO_FORMAT_AC3 3
#define AUDIO_FORMAT_PCM 4
#define AUDIO_FORMAT_DTS 5
#define AUDIO_FORMAT_DVD_AUDIO 6
#define AUDIO_FORMAT_ADPCM 7 // Use AUDIO_FORMAT_REVERSE_PCM instead
#define AUDIO_FORMAT_REVERSE_PCM 7
#define AUDIO_FORMAT_AAC 8
// MpegAttrAudioOutput
#define AUDIO_OUTPUT_STEREO 0
#define AUDIO_OUTPUT_AC3DTS 1
// flags used to enable/disable the hardware audio outputs
#define AUDIO_DAC_ENABLE 0x0001
#define AUDIO_DAC_DISABLE 0x0000
#define AUDIO_SPDIF_ENABLE 0x0002
#define AUDIO_SPDIF_DISABLE 0x0000
// MpegAttrAudioMode; Audio modes defined also in impeg32, hardware.h
#define AUDIO_MODE_STEREO 0
#define AUDIO_MODE_RIGHT_ONLY 1
#define AUDIO_MODE_LEFT_ONLY 2
#define AUDIO_MODE_MONOMIX 3
// MpegAttrVideoAspectRatio
#define VIDEO_ASPECT_RATIO_16_9 3
#define VIDEO_ASPECT_RATIO_4_3 2
// MpegAttrVideoOutputMode
#define VIDEO_OUTPUT_MODE_NORMAL_OR_WIDE 0
#define VIDEO_OUTPUT_MODE_PAN_SCAN 1
#define VIDEO_OUTPUT_MODE_LETTERBOX 2
#define VIDEO_OUTPUT_MODE_HORZCENTER 3
#define VIDEO_OUTPUT_MODE_VERTCENTER 4
// MpegAttrVideoTv
#define COMPONENT_MASK 0x02C0 // old was 0x00C0
#define COMPOSITE 0x0000
#define COMPONENT_YUV 0x0080
#define COMPONENT_RGB 0x00C0
#define OUTPUT_OFF 0x0040
#define COMPONENT_RGB_SCART 0x0200
#define TV_DACS_ENABLE 0x0000 // default behaviour - disabled after HwReset, enabled when playing
#define TV_DACS_DISABLE 0x0100 // force TvDacs disabled
#define VIDEOOUT_MASK 0x0021
#define SET_VGA 0x0000
#define SET_TV 0x0001
#define SET_HDTV 0x0020
#define STANDARDTV_MASK 0x010A
#define SET_NTSC 0x0000
#define SET_PAL 0x0002
#define SET_PAL60 0x0008
#define SET_PALM 0x000A
#define SET_480P 0x0100 // used only for Vga scan convertion
// The following define prevents the driver from forcing TV output back
// to the VGA when using NetStream 2000 TV (TvOut under "General"),
#define SET_NO_TV_CHANGE 0x8000
#define SET_ONETOONE 0x0000
#define SET_SCALE 0x0004
#define SET_TV_AS_SOURCE 0x0010
#define SET_TV_AS_USER 0x0000
// settings for NetStream2k TV
#define SCART_MASK 0x0003
#define SCART_EX_MASK 0x0004
#define SCART_DISABLE 0x0000
#define SCART_ENABLE_4x3 0x0001
#define SCART_ENABLE_16x9 0x0003
#define SCART_EX_RGB 0x0004
// MpegAttrVideoGenLock type
#define MPEG_ATTRIBUTE_VIDEO_GEN_LOCK_TV 0
#define MPEG_ATTRIBUTE_VIDEO_GEN_LOCK_VTR 1
// MpegAttrVideoSignalType type
#define MPEG_ATTRIBUTE_VIDEO_SIGNAL_COMPOSITE 0
#define MPEG_ATTRIBUTE_VIDEO_SIGNAL_SVHS 1
// MpegAttrAudioChannel Mpeg channel
// auxiliary channels are mini-port specific
#define MPEG_ATTRIBUTE_AUDIO_CHANNEL_MPEG 0
// MpegAttrVideoChannel Mpeg channel
// auxiliary channels are mini-port specific
#define MPEG_ATTRIBUTE_VIDEO_CHANNEL_MPEG 0
// MpegAttrCapabilities
// Values must same as FMP_CAPABILITY_xxx
// An analog overlay is present and a border adjustment utility is needed
// in order to be able to adjust the overlay to the VGA resolution.
#define MPEG_CAPABILITY_BORDER_ADJUST 0x00000001
// Every key color can be independantly ajusted. This is only used when
// an analog overlay is used.
#define MPEG_CAPABILITY_KEYCOLOR_ADJUST 0x00000002
// Brightness, contrast and saturation can be adjusted
#define MPEG_CAPABILITY_BSC_ADJUST 0x00000004
// The analog overlay supports auto-calibration
#define MPEG_CAPABILITY_AUTO_CALIBRATE 0x00000008
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -