This section describes the Microsoft® DirectShow data types. Closed captioning, DVD, and VPE data types are grouped by functionality below the primary list.
| Data type | Description |
| AM_ASPECT_RATIO_MODE | Specifies the aspect ratio of a video image in a display window. |
| AM_SAMPLE_PROPERTY_FLAGS | Specifies values for the dwSampleFlags member of the AM_SAMPLE2_PROPERTIES structure. |
| AM_STREAM_INFO_FLAGS | Indicates whether various components of the AM_STREAM_INFO structure have been set. |
| AMTunerModeType | Specifies the frequency of a TV tuner (cable or antenna). |
| AnalogVideoStandard | Specifies the format of the baseband analog video signal. |
| CameraControlProperty | Specifies what part of the camera DirectShow is controlling. |
| CL_ELEM_FLAGS | Specifies cutlist element flags. |
| CL_ELEM_STATUS | Specifies cutlist status flags. |
| CompressionCaps | Indicates video compression capabilities. |
| FILTER_STATE | Specifies a filter's state. |
| InterleavingMode | Specifies how video frames and audio samples will be written to disk. |
| MPEG2Level | Indicates the MPEG2 video level as specified in the MPEG2 video standard. (ISO13818-2) |
| MPEG2Profile | Indicates the MPEG2 video profile as specified in the MPEG2 video standard. (ISO13818-2) |
| PIN_DIRECTION | Indicates a pin's direction. |
| QualityMessageType | Describes a quality message type. |
| REG_PINFLAG | Indicates flags for the dwFlags member in the REGFILTERPINS2 structure. |
| StreamControlState | Specifies the state of the stream. |
| TunerInputType | Specifies the frequency of a TV tuner (cable or antenna). |
| VfwCaptureDialogs | Specifies a dialog box that might exist in a Microsoft Video for Windows® capture driver. |
| VfwCompressDialogs | Specifies a dialog box that might exist in a Video for Windows compression (codec) driver. |
| VideoProcAmpFlags | Specifies how to set video properties. |
| VideoProcAmpProperty | Specifies video properties. |
The following data types are specific to closed captioning:
| Closed captioning data type | Description |
| AM_LINE21_CCLEVEL | Indicates the closed captioning capability level. |
| AM_LINE21_CCSERVICE | Indicates the closed captioning decoder service. |
| AM_LINE21_CCSTATE | Indicates the closed captioning state (on or off). |
| AM_LINE21_DRAWBGMODE | Indicates the closed-captioned text background mode. |
The following data types are specific to DVD:
| DVD data type | Description |
| AM_DVD_GRAPH_FLAGS | Specifies the type of decoder to use in a DVD filter graph. |
| AM_DVD_STREAM_FLAGS | Describes a DVD stream type (video, audio, or subpicture). |
| DVD_DISC_SIDE | Indicates the sides of a DVD disc. |
| DVD_DOMAIN | Indicates the state of a DVD player. |
| DVD_ERROR | Specifies DVD error conditions. |
| DVD_FRAMERATE | Indicates DVD frame rates. |
| DVD_MENU_ID | DVD-Video Title Set (VTS) menu identifiers. |
| DVD_PLAYBACK_LOCATION | Indicates DVD playback location. |
| DVD_PREFERRED_DISPLAY_MODE | Indicates the user's preferred window aspect ratio and conversion method. |
| DVD_WARNING | Specifies DVD warning conditions. |
The following lists data types specific to VPE.
| VPE data type | Description |
| AMVP_MODE | Specifies the various modes for video ports (VP). |
| AMVP_SELECT_FORMAT_BY | Specifies the criteria that the VP mixer should use to select the video format. |
Specifies the aspect ratio of a video image in a display window.
typedef enum _AM_ASPECT_RATIO_MODE
{
AM_ARMODE_NONE,
AM_ARMODE_LETTER_BOX,
AM_ARMODE_CROP
} AM_ASPECT_RATIO_MODE;
If the AM_ARMODE_NONE member is specified in this enumerated type, a video stream will always occupy the entire region of the display window when the window is resized. The AM_ARMODE_LETTER_BOX member eliminates video stretching and distortions by keeping the aspect ratio consistent and painting the excess areas of the window a background color.
Specifies the type of decoder to use in a DVD filter graph.
enum {
AM_DVD_HWDEC_PREFER,
AM_DVD_HWDEC_ONLY,
AM_DVD_SWDEC_PREFER,
AM_DVD_SWDEC_ONLY,
AM_DVD_NOVPE
} AM_DVD_GRAPH_FLAGS;
Do not combine any of the hardware flags (AM_DVD_HWDEC_*) with any of the software flags (AM_DVD_SWDEC_*). However, you can combine AM_DVD_NOVPE with any of the hardware flags.
IDvdGraphBuilder::RenderDvdVideoVolume
Describes a DVD stream type (video, audio, or subpicture).
enum {
AM_DVD_STREAM_VIDEO,
AM_DVD_STREAM_AUDIO,
AM_DVD_STREAM_SUBPIC
} AM_DVD_STREAM_FLAGS;
Indicates the closed captioning capability level.
typedef enum _AM_LINE21_CCLEVEL {
AM_L21_CCLEVEL_TC2
} AM_LINE21_CCLEVEL, *PAM_LINE21_CCLEVEL ;
IAMLine21Decoder::GetDecoderLevel
Indicates the closed captioning decoder service.
typedef enum _AM_LINE21_CCSERVICE {
AM_L21_CCSERVICE_None,
AM_L21_CCSERVICE_Caption1,
AM_L21_CCSERVICE_Caption2,
AM_L21_CCSERVICE_Text1,
AM_L21_CCSERVICE_Text2,
AM_L21_CCSERVICE_XDS,
} AM_LINE21_CCSERVICE, *PAM_LINE21_CCSERVICE ;
IAMLine21Decoder::GetCurrentService, IAMLine21Decoder::SetCurrentService
Indicates the closed captioning state (on or off).
typedef enum _AM_LINE21_CCSTATE {
AM_L21_CCSTATE_Off,
AM_L21_CCSTATE_On
} AM_LINE21_CCSTATE, *PAM_LINE21_CCSTATE ;
IAMLine21Decoder::GetServiceState, IAMLine21Decoder::SetServiceState
Indicates the closed captioning text background mode.
typedef enum _AM_LINE21_DRAWBGMODE {
AM_L21_DRAWBGMODE_Opaque,
AM_L21_DRAWBGMODE_Transparent
} AM_LINE21_DRAWBGMODE, *PAM_LINE21_DRAWBGMODE ;
IAMLine21Decoder::GetDrawBackgroundMode, IAMLine21Decoder::SetDrawBackgroundMode
Specifies values for the dwSampleFlags member of the AM_SAMPLE2_PROPERTIES structure.
enum tagAM_SAMPLE_PROPERTY_FLAGS
{ AM_SAMPLE_SPLICEPOINT = 0x01,
AM_SAMPLE_PREROLL = 0x02,
AM_SAMPLE_DATADISCONTINUITY = 0x04,
AM_SAMPLE_TYPECHANGED = 0x08,
AM_SAMPLE_TIMEVALID = 0x10,
AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
AM_SAMPLE_STOPVALID = 0x100,
AM_SAMPLE_ENDOFSTREAM = 0x200,
AM_STREAM_MEDIA = 0,
AM_STREAM_CONTROL = 1
};
Indicates whether various components of the AM_STREAM_INFO structure have been set.
typedef enum {
AM_STREAM_INFO_START_DEFINED = 0x00000001,
AM_STREAM_INFO_STOP_DEFINED = 0x00000002,
AM_STREAM_INFO_DISCARDING = 0x00000004,
AM_STREAM_INFO_STOP_SEND_EXTRA = 0x00000010
} AM_STREAM_INFO_FLAGS;
Specifies the frequency of a TV tuner (cable or antenna).
typedef enum tagAMTunerModeType
{
AMTUNER_MODE_DEFAULT,
AMTUNER_MODE_TV,
AMTUNER_MODE_FM_RADIO,
AMTUNER_MODE_AM_RADIO,
AMTUNER_MODE_DSS
} AMTunerModeType;
Specifies the various modes for video ports.
typedef enum _AMVP_MODE{
AMVP_MODE_WEAVE,
AMVP_MODE_BOBINTERLEAVED,
AMVP_MODE_BOBNONINTERLEAVED,
AMVP_MODE_SKIPEVEN,
AMVP_MODE_SKIPODD
} AMVP_MODE;
Specifies the criteria that the VP mixer should use to select the video format.
typedef enum _AMVP_SELECT_FORMAT_BY{
AMVP_DO_NOT_CARE,
AMVP_BEST_BANDWIDTH,
AMVP_INPUT_SAME_AS_OUTPUT
} AMVP_SELECT_FORMAT_BY;
Specifies the format of the baseband analog video signal.
typedef enum
{
AnalogVideo_None = 0x00000000
AnalogVideo_NTSC_M = 0x00000001, // 75 IRE Setup
AnalogVideo_NTSC_M_J = 0x00000002, // Japan, 0 IRE Setup
AnalogVideo_NTSC_433 = 0x00000004
AnalogVideo_PAL_B = 0x00000010,
AnalogVideo_PAL_D = 0x00000020,
AnalogVideo_PAL_H = 0x00000080,
AnalogVideo_PAL_I = 0x00000100,
AnalogVideo_PAL_M = 0x00000200,
AnalogVideo_PAL_N = 0x00000400,
AnalogVideo_PAL_60 = 0x00000800,
AnalogVideo_SECAM_B = 0x00001000,
AnalogVideo_SECAM_D = 0x00002000,
AnalogVideo_SECAM_G = 0x00004000,
AnalogVideo_SECAM_H = 0x00008000,
AnalogVideo_SECAM_K = 0x00010000,
AnalogVideo_SECAM_K1 = 0x00020000,
AnalogVideo_SECAM_L = 0x00040000,
AnalogVideo_SECAM_L1 = 0x00080000,
} AnalogVideoStandard;
Specifies what part of the camera DirectShow is controlling.
typedef enum
{
CameraControl_Pan = 1,
CameraControl_Tilt,
CameraControl_Roll,
CameraControl_Zoom,
CameraControl_Exposure,
CameraControl_Iris,
CameraControl_Focus
} CameraControlProperty;
Indicates cutlist element flags.
enum CL_ELEM_FLAGS{
CL_ELEM_FIRST,
CL_ELEM_LAST,
CL_ELEM_NULL,
CL_ELEM_ALL,
CL_ELEM_NONE};
Indicates cutlist status flags.
enum CL_ELEM_STATUS{
CL_NOT_PLAYED,
CL_PLAYING,
CL_FINISHED,
CL_STATE_INVALID,
CL_STATE_MASK,
CL_WAIT_FOR_STATE};
Indicates video compression capabilities.
typedef enum {
CompressionCaps_CanQuality = 0x00000001,
CompressionCaps_CanCrunch = 0x00000002,
CompressionCaps_CanKeyFrame = 0x00000004,
CompressionCaps_CanBFrame = 0x00000008,
CompressionCaps_CanWindow = 0x0000000A
} CompressionCaps;
Indicates the sides of a DVD disc.
typedef enum tagDVD_DISC_SIDE {
DVD_SIDE_A,
DVD_SIDE_B
} DVD_DISC_SIDE;
Indicates the state of a DVD player.
typedef enum tagDVD_DOMAIN {
DVD_DOMAIN_FirstPlay,
DVD_DOMAIN_VideoManagerMenu,
DVD_DOMAIN_VideoTitleSetMenu,
DVD_DOMAIN_Title,
DVD_DOMAIN_Stop
} DVD_DOMAIN;
Specifies DVD error conditions.
typedef enum _tagDVD_ERROR {
DVD_ERROR_Unexpected,
DVD_ERROR_CopyProtectFail,
DVD_ERROR_InvalidDVD1_0Disc,
DVD_ERROR_InvalidDiscRegion,
DVD_ERROR_LowParentalLevel
} DVD_ERROR;
Indicates DVD frame rates.
typedef enum tagDVD_FRAMERATE
{
DVD_FPS_25,
DVD_FPS_30NonDrop
} DVD_FRAMERATE;
You must know the frame rate to interpret the frame count as time.
Specifies DVD Video Title Set (VTS) menu identifiers.
typedef enum tagDVD_MENU_ID {
DVD_MENU_Title,
DVD_MENU_Root,
DVD_MENU_Subpicture,
DVD_MENU_Audio,
DVD_MENU_Angle,
DVD_MENU_Chapter
} DVD_MENU_ID;
The root menu always provides a means of getting to the subpicture, audio, angle and chapter menus if they exist.
Indicates DVD playback location.
typedef struct tagDVD_PLAYBACK_LOCATION
{
ULONG TitleNum;
ULONG ChapterNum;
ULONG TimeCode;
} DVD_PLAYBACK_LOCATION;
TitleNum and ChapterNum or TitleNum and TimeCode are sufficient to save the playback location for simple linear movies.
Indicates the user's preferred window aspect ratio and conversion method.
typedef enum tagDVD_PREFERRED_DISPLAY_MODE
{
DISPLAY_CONTENT_DEFAULT,
DISPLAY_16x9,
DISPLAY_4x3_PANSCAN_PREFERRED,
DISPLAY_4x3_LETTERBOX_PREFERRED
} DVD_PREFERRED_DISPLAY_MODE;
DVD_PREFERRED_DISPLAY_MODE indicates the user's preferred window aspect ratio and preferred method of conversion of 16 × 9 content to a 4 × 3 window aspect ratio. Pan-scan and letterboxing are the two conversion methods. Displaying a video at the largest possible size inside the display window without any cropping or stretching is called displaying in letterbox format. Pan-scan is specifically cropping a 16 × 9 video for display in a 4 × 3 window using parameters defined by the video author.
This enumerated type indicates a preference of conversion mechanisms because some content can only be displayed using one of these methods. Content that is 4 × 3 is always converted to a 16 × 9 window by using "reverse" letterboxing, where black bars are added to the right and left sides of the display instead of the top and bottom of the display as in the 16 × 9 to 4 × 3 conversion using letterboxing.
The following table shows the conversion method used between the actual content type listed in the first column, and the user display preference setting, indicated by one of the other columns.
| Actual content type | Content default | 16 × 9 | 4 × 3 pan-scan | 4 × 3 letterbox |
| 4 × 3 | None | Reverse letterbox | None | None |
| 16 × 9 letterbox only | None | None | Letterbox | Letterbox |
| 16 × 9 pan-scan only | None | None | Pan-scan | Pan-scan |
| 16 × 9 pan-scan or letterbox | None | None | Pan-scan | Letterbox |
The native window size used is always the user's preferred size.
Specifies DVD warning conditions.
typedef enum _tagDVD_WARNING {
DVD_WARNING_InvalidDVD1_0Disc=1,
DVD_WARNING_FormatNotSupported=2
} DVD_WARNING;
Specifies a filter's state.
typedef enum _FilterState
{ State_Stopped = 0,
State_Paused = State_Stopped + 1,
State_Running = State_Paused + 1
} FILTER_STATE;
Specifies how video frames and audio samples will be written to disk.
typedef enum
{
INTERLEAVE_NONE,
INTERLEAVE_CAPTURE,
INTERLEAVE_FULL
} InterleavingMode;
Indicates the MPEG2 video level as specified in the MPEG2 video standard. (ISO13818-2)
enum MPEG2Level {
MPEG2Level_Low = 1,
MPEG2Level_Main,
MPEG2Level_High1440,
MPEG2Level_High
};
DVD MPEG-2 video decoders should support MPEG2Level_Low or MPEG2Level_Main.
Indicates the MPEG2 video profile as specified in the MPEG2 video standard. (ISO13818-2)
enum MPEG2Profile {
MPEG2Profile_Simple = 1,
MPEG2Profile_Main,
MPEG2Profile_SNRScalable,
MPEG2Profile_SpatiallyScalable,
MPEG2Profile_High
};
DVD video decoders should support MPEG2Profile_Simple or MPEG2Profile_Main.
Indicates a pin's direction.
typedef enum _PinDirection {
PINDIR_INPUT,
PINDIR_OUTPUT
} PIN_DIRECTION;
Indicates flags for the dwFlags member in the REGFILTERPINS2 structure.
enum
{
REG_PINFLAG_B_ZERO = 0x1,
REG_PINFLAG_B_RENDERER = 0x2,
REG_PINFLAG_B_MANY = 0x4,
REG_PINFLAG_B_OUTPUT = 0x8
} REG_PINFLAG;
Describes a quality message type.
typedef enum {
Famine,
Flood
} QualityMessageType;
Specifies the state of the stream.
enum StreamControlState {
STREAM_FLOWING,
STREAM_DISCARDING
};
Specifies the frequency of a TV tuner (cable or antenna).
typedef enum
{
TunerInputCable,
TunerInputAntenna
} TunerInputType;
Specifies a dialog box that might exist in a Video for Windows capture driver.
typedef enum {
VfwCaptureDialog_Source = 1,
VfwCaptureDialog_Format = 2,
VfwCaptureDialog_Display = 4
} VfwCaptureDialogs;
The IAMVfwCaptureDialogs interface uses this enumerated data type.
Specifies a dialog box that might exist in a Video for Windows compression (codec) driver.
typedef enum {
VfwCompressDialog_Config = 1,
VfwCompressDialog_About = 2
} VfwCompressDialogs;
The IAMVfwCompressDialogs interface uses this enumerated data type.
Specifies how to set video properties.
typedef enum tagVideoProcAmpFlags
{
VideoProcAmp_Flags_Manual = 0x0000,
VideoProcAmp_Flags_Auto = 0x0001,
} VideoProcAmpFlags;
The IAMVideoProcAmp interface uses this enumerated data type.
Specifies video properties.
typedef enum tagVideoProcAmpProperty
{
VideoProcAmp_Brightness,
VideoProcAmp_Contrast,
VideoProcAmp_Hue,
VideoProcAmp_Saturation,
VideoProcAmp_Sharpness,
VideoProcAmp_Gamma,
VideoProcAmp_ColorEnable,
VideoProcAmp_WhiteBalance,
VideoProcAmp_BacklightCompensation
} VideoProcAmpProperty;
The IAMVideoProcAmp interface uses this enumerated data type.
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.