📄 mpegcmn.pas
字号:
unit mpegcmn;
interface
{/*++
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"
}
uses mpegerr;
// maximum number of mpeg devices in the computer
const 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
BROADCASTED_VIDEO= $0200;
DVD_VIDEO = $0000;
FORCED_PROGRESSIVE_OFF= $0100; // display progressive or interlaced like in the video stream
FORCED_PROGRESSIVE_ON= $0000; // display only progressive if the stream switches very fast from interlaced to progressive
PROGRESSIVE_ALWAYS= $0080;
PROGRESSIVE_MOVIES= $0000;
FRAME_DROP= $0040;
FIELD_DROP= $0000;
VGA_INTERLACED= $0002;
VGA_PROGRESSIVE= $0000;
// MpegAttrHardwareInfo1 flags
DARK_COLOR_LETTERBOX= $0001; // hwDecoder is Quasar1 - letterbox bug
VGA_CABLE_NOT_CONNECTED= $0002; // VGA cable is not connected for analog overlay boards
// MpegAttrOverlayFlags
OVERLAY_FLAGS_MASK= $000F;
VIDEO_ZOOM_ENABLE= $0001;
VIDEO_TV_DEST_ENABLE= $0002;
VIDEO_HDTV_DEST_ENABLE= $0004;
OSD_VIDEO_INDEPENDENT_DEST= $0008;
// MpegAttrPlayOptions
type PLAY_OPTIONS(
VideoHwPlayNormal = 0,
VideoHwPlayToEvent,
VideoHwPlayIFrame,
VideoHwPlaySyncFaster,
VideoHwPlayYUV
);
//****************************************************************************
// Enumerated Constants
//****************************************************************************
type PMPEG_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;
type MPEG_ATTRIBUTE=^PMPEG_ATTRIBUTE;
const
//#define MPEG_OEM_ATTRIBUTE(a) ((MPEG_ATTRIBUTE)(((unsigned)(a))+0x00008000))
// MpegAttrAudioMode flags
MPEG_ATTRIBUTE_AUDIO_MONO= 0;
MPEG_ATTRIBUTE_AUDIO_STEREO= 1;
MPEG_ATTRIBUTE_AUDIO_SPATIAL_STEREO= 2;
MPEG_ATTRIBUTE_AUDIO_PSEUDO_STEREO = 3;
// MpegAttrVideoMode flags
MPEG_ATTRIBUTE_VIDEO_COMPONENT= 0;
MPEG_ATTRIBUTE_VIDEO_PAL= 1;
MPEG_ATTRIBUTE_VIDEO_NTSC = 2;
MPEG_ATTRIBUTE_VIDEO_SECAM= 3;
MPEG_ATTRIBUTE_VIDEO_MAC= 4;
MPEG_ATTRIBUTE_VIDEO_AUTO = 5 ;
// MpegAttrAudioFormat
AUDIO_FORMAT_MPEG1= 1;
AUDIO_FORMAT_MPEG2= 2;
AUDIO_FORMAT_AC3= 3;
AUDIO_FORMAT_PCM= 4;
AUDIO_FORMAT_DTS= 5;
AUDIO_FORMAT_DVD_AUDIO= 6;
AUDIO_FORMAT_ADPCM= 7 ;// Use AUDIO_FORMAT_REVERSE_PCM instead
AUDIO_FORMAT_REVERSE_PCM= 7 ;
AUDIO_FORMAT_AAC= 8 ;
// MpegAttrAudioOutput
AUDIO_OUTPUT_STEREO= 0;
AUDIO_OUTPUT_AC3DTS= 1;
// flags used to enable/disable the hardware audio outputs
AUDIO_DAC_ENABLE= $0001;
AUDIO_DAC_DISABLE= $0000;
AUDIO_SPDIF_ENABLE= $0002;
AUDIO_SPDIF_DISABLE= $0000;
// MpegAttrAudioMode; Audio modes defined also in impeg32, hardware.h
AUDIO_MODE_STEREO= 0;
AUDIO_MODE_RIGHT_ONLY= 1;
AUDIO_MODE_LEFT_ONLY= 2;
AUDIO_MODE_MONOMIX= 3;
// MpegAttrVideoAspectRatio
VIDEO_ASPECT_RATIO_16_9= 3;
VIDEO_ASPECT_RATIO_4_3= 2;
// MpegAttrVideoOutputMode
VIDEO_OUTPUT_MODE_NORMAL_OR_WIDE= 0;
VIDEO_OUTPUT_MODE_PAN_SCAN= 1;
VIDEO_OUTPUT_MODE_LETTERBOX= 2;
VIDEO_OUTPUT_MODE_HORZCENTER= 3;
VIDEO_OUTPUT_MODE_VERTCENTER= 4 ;
// MpegAttrVideoTv
COMPONENT_MASK= $02C0; // old was 0x00C0
COMPOSITE= $0000;
COMPONENT_YUV= $0080;
COMPONENT_RGB= $00C0;
OUTPUT_OFF= $0040;
COMPONENT_RGB_SCART= $0200;
TV_DACS_ENABLE= $0000; // default behaviour - disabled after HwReset, enabled when playing
TV_DACS_DISABLE= $0100; // force TvDacs disabled
VIDEOOUT_MASK= $0021;
SET_VGA= $0000;
SET_TV= $0001;
SET_HDTV= $0020 ;
STANDARDTV_MASK= $010A ;
SET_NTSC= $0000;
SET_PAL= $0002;
SET_PAL60= $0008;
SET_PALM= $000A;
SET_480P= $0100; // 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"),
SET_NO_TV_CHANGE= $8000;
SET_ONETOONE= $0000;
SET_SCALE= $0004;
SET_TV_AS_SOURCE= $0010;
SET_TV_AS_USER= $0000;
// settings for NetStream2k TV
SCART_MASK= $0003;
SCART_EX_MASK= $0004;
SCART_DISABLE= $0000;
SCART_ENABLE_4x3= $0001;
SCART_ENABLE_16x9= $0003;
SCART_EX_RGB= $0004;
// MpegAttrVideoGenLock type
MPEG_ATTRIBUTE_VIDEO_GEN_LOCK_TV= 0;
MPEG_ATTRIBUTE_VIDEO_GEN_LOCK_VTR= 1 ;
// MpegAttrVideoSignalType type
MPEG_ATTRIBUTE_VIDEO_SIGNAL_COMPOSITE= 0;
MPEG_ATTRIBUTE_VIDEO_SIGNAL_SVHS= 1 ;
// MpegAttrAudioChannel Mpeg channel
// auxiliary channels are mini-port specific
MPEG_ATTRIBUTE_AUDIO_CHANNEL_MPEG= 0;
// MpegAttrVideoChannel Mpeg channel
// auxiliary channels are mini-port specific
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.
MPEG_CAPABILITY_BORDER_ADJUST =$00000001 ;
// Every key color can be independantly ajusted. This is only used when
// an analog overlay is used.
MPEG_CAPABILITY_KEYCOLOR_ADJUST =$00000002;
// Brightness, contrast and saturation can be adjusted
MPEG_CAPABILITY_BSC_ADJUST =$00000004;
// The analog overlay supports auto-calibration
MPEG_CAPABILITY_AUTO_CALIBRATE =$00000008 ;
// Mpeg4 capability
MPEG_CAPABILITY_MPEG4_DECODE =$00000010;
// Gamma correction can be adjusted
MPEG_CAPABILITY_GAMMA_ADJUST =$00000020;
// ????????
MPEG_CAPABILITY_HIRES =$00000040 ;
// ????????
MPEG_CAPABILITY_USES_VPM =$00000080;
// The hardware can play DVD titles
MPEG_CAPABILITY_DVD_CAN_PLAY =$00000100 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -