## Data Types

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.

###

AM_ASPECT_RATIO_MODE

Data Types

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;

##### Values

AM_ARMODE_NONE
  No aspect ratio correction.
AM_ARMODE_LETTER_BOX
  Put the video in letterbox format. Paint background color in the excess region so the video is not distorted.
AM_ARMODE_CROP
  Crop the video to the correct aspect ratio.

##### Remarks

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.

###

AM_DVD_GRAPH_FLAGS

Data Types

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;

##### Values

AM_DVD_HWDEC_PREFER
  Maximum hardware decoding. Default.
AM_DVD_HWDEC_ONLY
  Hardware decoding only.
AM_DVD_SWDEC_PREFER
  Maximum software decoding.
AM_DVD_SWDEC_ONLY
  Software decoding only
AM_DVD_NOVPE
  Do not use video port extensions (VPE).

##### Remarks

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.

##### See Also

IDvdGraphBuilder::RenderDvdVideoVolume

###

AM_DVD_STREAM_FLAGS

Data Types

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;

##### Values

AM_DVD_STREAM_VIDEO
  DVD video stream.
AM_DVD_STREAM_AUDIO
  DVD audio stream.
AM_DVD_STREAM_SUBPIC
  DVD subpicture stream.

##### See Also

AM_DVD_RENDERSTATUS

###

AM_LINE21_CCLEVEL

Data Types

Indicates the closed captioning capability level.

     typedef enum _AM_LINE21_CCLEVEL {
        AM_L21_CCLEVEL_TC2
    } AM_LINE21_CCLEVEL, *PAM_LINE21_CCLEVEL ;

##### Values

AM_L21_CCLEVEL_TC2
  Capability level 2.

##### See Also

IAMLine21Decoder::GetDecoderLevel

###

AM_LINE21_CCSERVICE

Data Types

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 ;

##### Values

AM_L21_CCSERVICE_None
  No current service.
AM_L21_CCSERVICE_Caption1
  True captioning, first field. Default service.
AM_L21_CCSERVICE_Caption2
  Captioning for secondary language, second field. Generally not used.
AM_L21_CCSERVICE_Text1
  First text field. Not currently implemented; provided for future compatibility.
AM_L21_CCSERVICE_Text2
  Second text field. Not currently implemented; provided for future compatibility.
AM_L21_CCSERVICE_XDS
  Extended Data Services (XDS or EDS). Not currently implemented; provided for future compatibility.

##### See Also

IAMLine21Decoder::GetCurrentService, IAMLine21Decoder::SetCurrentService

###

AM_LINE21_CCSTATE

Data Types

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 ;

##### Values

AM_L21_CCSTATE_Off
  Closed captioning off.
AM_L21_CCSTATE_On
  Closed captioning on.

##### See Also

IAMLine21Decoder::GetServiceState, IAMLine21Decoder::SetServiceState

###

AM_LINE21_DRAWBGMODE

Data Types

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 ;

##### Values

AM_L21_DRAWBGMODE_Opaque
  Opaque background.
AM_L21_DRAWBGMODE_Transparent
  Transparent background.

##### See Also

IAMLine21Decoder::GetDrawBackgroundMode, IAMLine21Decoder::SetDrawBackgroundMode

###

AM_SAMPLE_PROPERTY_FLAGS

Data Types

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
         };

##### Values

AM_SAMPLE_SPLICEPOINT
  Sample is a splice point (it can be decoded without reference to previous data).
AM_SAMPLE_PREROLL
  Sample is a preroll sample.
AM_SAMPLE_DATADISCONTINUITY
  Indicates the start of a new segment.
AM_SAMPLE_TYPECHANGED
  Sample type changed.
AM_SAMPLE_TIMEVALID
  Time is valid.
AM_SAMPLE_TIMEDISCONTINUITY
  A time gap in the data starts after this sample. The pbBuffer member of the AM_SAMPLE2_PROPERTIES structure can be NULL in this case.
AM_SAMPLE_FLUSH_ON_PAUSE
  For live data only; indicates discard in the paused state.
AM_SAMPLE_STOPVALID
  Stop time is valid.
AM_SAMPLE_ENDOFSTREAM
  End of stream occurs after this sample. This is reserved for kernel streaming and DirectShow currently doesn't use it.
AM_STREAM_MEDIA
  Normal data stream identifier.
AM_STREAM_CONTROL
  Control stream identifier. A value greater than 0x7FFFFFFF indicates an application-defined stream.

###

AM_STREAM_INFO_FLAGS

Data Types

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;

##### Values

AM_STREAM_INFO_START_DEFINED
  Indicates a valid stream start time has been set.
AM_STREAM_INFO_STOP_DEFINED
  Indicates a valid stream stop time has been set.
AM_STREAM_INFO_DISCARDING
  Indicates that stream discarding is currently active.
AM_STREAM_INFO_STOP_SEND_EXTRA
  Indicates that the pin will send an extra stream sample upon completion.

###

AMTunerModeType

Data Types

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;

##### Values

AMTUNER_MODE_DEFAULT
  Indicates default tuner mode.
AMTUNER_MODE_TV
  Indicates TV tuner mode.
AMTUNER_MODE_FM_RADIO
  Indicates FM radio tuner mode.
AMTUNER_MODE_AM_RADIO
  Indicates AM radio tuner mode.
AMTUNER_MODE_DSS
  Indicates Digital Satellite Service (DSS) tuner mode.

###

AMVP_MODE

Data Types

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;

##### Values

AMVP_MODE_WEAVE
  Weave.
AMVP_MODE_BOBINTERLEAVED
  Interleaved bob. Bob mode in which resources are allocated to switch to weave mode, for example, on the next frame.
MODE_BOBNONINTERLEAVED
  Noninterleaved bob. Bob mode in which resources are not allocated to switch to weave mode.
AMVP_MODE_SKIPEVEN
  Skip even fields.
AMVP_MODE_SKIPODD
  Skip odd fields.

###

AMVP_SELECT_FORMAT_BY

Data Types

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;

##### Values

AMVP_DO_NOT_CARE
  Format doesn't matter.
AMVP_BEST_BANDWIDTH
  Use the best bandwidth.
AMVP_INPUT_SAME_AS_OUTPUT
  Use the same input format as output format.

###

AnalogVideoStandard

Data Types

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;

##### Values

AnalogVideo_None
  Digital sensor
AnalogVideo_NTSC_M
  NTSC_M
AnalogVideo_NTSC_M_J
  NTSC_M_J
AnalogVideo_PAL_B
  PAL_B
AnalogVideo_PAL_D
  PAL_D
AnalogVideo_PAL_H
  PAL_H
AnalogVideo_PAL_I
  PAL_I
AnalogVideo_PAL_M
  PAL_M
AnalogVideo_PAL_N
  PAL_N
AnalogVideo_SECAM_B
  SECAM_B
AnalogVideo_SECAM_D
  SECAM_D
AnalogVideo_SECAM_G
  SECAM_G
AnalogVideo_SECAM_H
  SECAM_H
AnalogVideo_SECAM_K
  SECAM_K
AnalogVideo_SECAM_K1
  SECAM_K1
AnalogVideo_SECAM_L
  SECAM_L

###

CameraControlProperty

Data Types

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;

##### Values

CameraControl_Pan
  Control the camera's pan.
CameraControl_Tilt
  Control the camera's tilt.
CameraControl_Roll
  Control the camera's roll.
CameraControl_Zoom
  Control the camera's zoom.
CameraControl_Exposure
  Control the camera's exposure.
CameraControl_Iris
  Control the camera's iris.
CameraControl_Focus
  Control the camera's focus.

###

CL_ELEM_FLAGS

Data Types

Indicates cutlist element flags.

    enum CL_ELEM_FLAGS{
        CL_ELEM_FIRST,
        CL_ELEM_LAST,
        CL_ELEM_NULL,
        CL_ELEM_ALL,
        CL_ELEM_NONE};

##### Values

CL_ELEM_FIRST
  First element.
CL_ELEM_LAST
  Last element.
CL_ELEM_NULL
  Null element.
CL_ELEM_ALL
  All elements.
CL_ELEM_NONE
  No elements.

###

CL_ELEM_STATUS

Data Types

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};

##### Values

CL_NOT_PLAYED
  Element has not played.
CL_PLAYING
  Element is playing.
CL_FINISHED
  Element finished playing.
CL_STATE_INVALID
  Invalid state.
CL_STATE_MASK
  Mask for invalid states (equals CL_STATE_INVALID).
CL_WAIT_FOR_STATE
  Wait flag. For input parameter only.

###

CompressionCaps

Data Types

Indicates video compression capabilities.

    typedef enum {
        CompressionCaps_CanQuality = 0x00000001,
        CompressionCaps_CanCrunch = 0x00000002,
        CompressionCaps_CanKeyFrame = 0x00000004,
        CompressionCaps_CanBFrame = 0x00000008,
        CompressionCaps_CanWindow = 0x0000000A
    } CompressionCaps;

##### Values

CompressionCaps_CanQuality
  Video compressor supports the IAMVideoCompression::put_Quality and IAMVideoCompression::get_Quality methods.
CompressionCaps_CanCrunch
  Video compressor can compress video to a specified data rate. If the compressor has this capability then the output pin's media type will contain the data rate in the VIDEOINFOHEADER structure's dwBitRate member. The only way to set the data rate is to set dwBitRate.
CompressionCaps_CanKeyFrame
  Video compressor supports the IAMVideoCompression::put_KeyFrameRate and IAMVideoCompression::get_KeyFrameRate methods.
CompressionCaps_CanBFrame
  Video compressor supports the IAMVideoCompression::put_PFramesPerKeyFrame and IAMVideoCompression::get_PFramesPerKeyFrame methods.
CompressionCaps_CanWindow
  Video compressor supports the IAMVideoCompression::put_WindowSize and IAMVideoCompression::get_WindowSize methods.

##### See Also

IAMVideoCompression

###

DVD_DISC_SIDE

Data Types

Indicates the sides of a DVD disc.

    typedef enum tagDVD_DISC_SIDE {
        DVD_SIDE_A,
        DVD_SIDE_B
    } DVD_DISC_SIDE;

##### Values

DVD_SIDE_A
  Side A.
DVD_SIDE_B
  Side B.

###

DVD_DOMAIN

Data Types

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;

##### Values

DVD_DOMAIN_FirstPlay
  Performing default initialization of a DVD disc.
DVD_DOMAIN_VideoManagerMenu
  Displaying menus for whole disc.
DVD_DOMAIN_VideoTitleSetMenu
  Displaying menus for current title set.
DVD_DOMAIN_Title
  Displaying the current title.
DVD_DOMAIN_Stop
  Player is in stopped state.

###

DVD_ERROR

Data Types

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;

##### Values

DVD_ERROR_Unexpected
  Something unexpected happened; perhaps content is authored incorrectly. Playback is stopped.
DVD_ERROR_CopyProtectFail
  Key exchange for DVD copy protection failed. Playback is stopped.
DVD_ERROR_InvalidDVD1_0Disc
  DVD-Video disc is authored incorrectly for specification version 1.x. Playback is stopped.
DVD_ERROR_InvalidDiscRegion
  DVD-Video disc is not approved for playback by decoders from this DVD region.
DVD_ERROR_LowParentalLevel
  Player parental level is lower than the lowest parental level available in the DVD content. Playback is stopped.

##### See Also

EC_DVD_ERROR

###

DVD_FRAMERATE

Data Types

Indicates DVD frame rates.

    typedef enum tagDVD_FRAMERATE
    {
        DVD_FPS_25,
        DVD_FPS_30NonDrop
    } DVD_FRAMERATE;

##### Values

DVD_FPS_25
  25 frames per second.
DVD_FPS_30NonDrop
  Exactly 30 frames per second.

##### Remarks

You must know the frame rate to interpret the frame count as time.

###

DVD_MENU_ID

Data Types

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;

##### Values

DVD_MENU_Title
  Choose a title from any VTS in a DVD-Video volume.
DVD_MENU_Root
  Choose the main menu for a specific VTS.
DVD_MENU_Subpicture
  Choose a subpicture stream in a VTS.
DVD_MENU_Audio
  Choose an audio stream in a VTS.
DVD_MENU_Angle
  Choose the angle number in a VTS.
DVD_MENU_Chapter
  Choose a chapter in a VTS.

##### Remarks

The root menu always provides a means of getting to the subpicture, audio, angle and chapter menus if they exist.

###

DVD_PLAYBACK_LOCATION

Data Types

Indicates DVD playback location.

    typedef struct tagDVD_PLAYBACK_LOCATION
    {
    ULONG   TitleNum;
        ULONG   ChapterNum;
        ULONG   TimeCode;
    } DVD_PLAYBACK_LOCATION;

##### Members

TitleNum
  Title number for the whole disc; Title Track Number (TTN) not Video Title Set_Title Track Number (VTS_TTN).
ChapterNum
  Part-of-title number with title. 0xffffffff if not a simple linear movie.
TimeCode
  Timecode. Use DVD_TIMECODE for current playback time. 0xffffffff if not a simple linear movie.

##### Remarks

TitleNum and ChapterNum or TitleNum and TimeCode are sufficient to save the playback location for simple linear movies.

###

DVD_PREFERRED_DISPLAY_MODE

Data Types

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;

##### Values

DISPLAY_CONTENT_DEFAULT
  Use the default window size and content type.
DISPLAY_16x9
  Use a 16 × 9 window.
DISPLAY_4x3_PANSCAN_PREFERRED
  Use a 4 × 3 window and convert to pan-scan, if possible.
DISPLAY_4x3_LETTERBOX_PREFERRED
  Use a 4 × 3 window and convert to letterbox, if possible.

##### Remarks

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.

###

DVD_WARNING

Data Types

Specifies DVD warning conditions.

    typedef enum _tagDVD_WARNING {
        DVD_WARNING_InvalidDVD1_0Disc=1,
        DVD_WARNING_FormatNotSupported=2
    } DVD_WARNING;

##### Values

DVD_WARNING_InvalidDVD1_0Disc
  DVD-Video disc is authored incorrectly. Playback can continue, but unexpected behavior might occur.
DVD_WARNING_FormatNotSupported
  A decoder would not support the current format. Playback of a stream might not function.

##### See Also

EC_DVD_WARNING

###

FILTER_STATE

Data Types

Specifies a filter's state.

    typedef enum _FilterState
       {   State_Stopped   = 0,
           State_Paused    = State_Stopped + 1,
           State_Running   = State_Paused + 1
        }  FILTER_STATE;

##### Values

State_Stopped
  Equal to 0. The filter is not processing data.
State_Paused
  Equal to 1. The filter is processing but not rendering data.
State_Running
  Equal to 2. The filter is processing and rendering data.

###

InterleavingMode

Data Types

Specifies how video frames and audio samples will be written to disk.

      typedef enum
        {
            INTERLEAVE_NONE,
            INTERLEAVE_CAPTURE,
            INTERLEAVE_FULL
        } InterleavingMode;

##### Values

INTERLEAVE_NONE
  Write out frames in the order they arrive (noninterleaved). Files must be turned into playback at a later time.
INTERLEAVE_CAPTURE
  Approximate interleaving with less overhead than INTERLEAVE_FULL. Geared to video capture.
INTERLEAVE_FULL
  Full, precise interleaving of audio samples and video frames. Geared to authoring and playback.

###

MPEG2Level

Data Types

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
    };

##### Values

MPEG2Level_Low
  Low level.
MPEG2Level_Main
  Main level.
MPEG2Level_High1440
  High level.
MPEG2Level_High
  Highest level.

##### Remarks

DVD MPEG-2 video decoders should support MPEG2Level_Low or MPEG2Level_Main.

###

MPEG2Profile

Data Types

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
    };

##### Values

MPEG2Profile_Simple
  Simple.
MPEG2Profile_Main
  Main.
MPEG2Profile_SNRScalable
  Signal to Noise Ratio (SNR) scalable.
MPEG2Profile_SpatiallyScalable
  Spatially scalable.
MPEG2Profile_High
  High.

##### Remarks

DVD video decoders should support MPEG2Profile_Simple or MPEG2Profile_Main.

###

PIN_DIRECTION

Data Types

Indicates a pin's direction.

    typedef enum _PinDirection {
        PINDIR_INPUT,
        PINDIR_OUTPUT
    } PIN_DIRECTION;

##### Values

PINDIR_INPUT
  Input pin.
PINDIR_OUTPUT
  Output pin.

###

REG_PINFLAG

Data Types

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;

##### Values

REG_PINFLAG_B_ZERO
  Flag indicating that the filter has zero instances of this pin.
REG_PINFLAG_B_RENDERER
  Flag indicating that the filter renders this input.
REG_PINFLAG_B_MANY
  Flag indicating that the filter has more than one instance of this pin.
REG_PINFLAG_B_OUTPUT
  Flag indicating that this pin is an output pin.

###

QualityMessageType

Data Types

Describes a quality message type.

    typedef enum {
        Famine,
        Flood
    } QualityMessageType;

##### Values

Famine
  Downstream filter needs more data.
Flood
  Downstream filter needs less data.

###

StreamControlState

Data Types

Specifies the state of the stream.

    enum StreamControlState {
          STREAM_FLOWING,
          STREAM_DISCARDING
        };

##### Values

STREAM_FLOWING
  Indicates the stream is currently transmitting data.
STREAM_DISCARDING
  Discards the samples as they are received.

###

TunerInputType

Data Types

Specifies the frequency of a TV tuner (cable or antenna).

    typedef enum
        {
            TunerInputCable,
            TunerInputAntenna
        } TunerInputType;

##### Values

TunerInputCable
  Indicates cable frequency.
TunerInputAntenna
  Indicates broadcast antenna frequency.

###

VfwCaptureDialogs

Data Types

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;

##### Values

VfwCaptureDialog_Source
  Video source dialog box.
VfwCaptureDialog_Format
  Video format dialog box.
VfwCaptureDialog_Display
  Video display dialog box.

##### Remarks

The IAMVfwCaptureDialogs interface uses this enumerated data type.

###

VfwCompressDialogs

Data Types

Specifies a dialog box that might exist in a Video for Windows compression (codec) driver.

    typedef enum {
        VfwCompressDialog_Config = 1,
        VfwCompressDialog_About = 2
    } VfwCompressDialogs;

##### Values

VfwCompressDialog_Config
  Configure dialog box.
VfwCompressDialog_About
  About dialog box.

##### Remarks

The IAMVfwCompressDialogs interface uses this enumerated data type.

###

VideoProcAmpFlags

Data Types

Specifies how to set video properties.

    typedef enum tagVideoProcAmpFlags
        {
            VideoProcAmp_Flags_Manual = 0x0000,
            VideoProcAmp_Flags_Auto   = 0x0001,
        } VideoProcAmpFlags;

##### Values

VideoProcAmp_Flags_Manual
  Set properties manually.
VideoProcAmp_Flags_Auto
  Use auto setting.

##### Remarks

The IAMVideoProcAmp interface uses this enumerated data type.

###

VideoProcAmpProperty

Data Types

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;

##### Values

VideoProcAmp_Brightness
  Enables brightness.
VideoProcAmp_Contrast
  Enables contrast.
VideoProcAmp_Hue
  Enables hue.
VideoProcAmp_Saturation
  Enables saturation.
VideoProcAmp_Sharpness
  Enables sharpness.
VideoProcAmp_Gamma
  Enables gamma.
VideoProcAmp_ColorEnable
  Enables color.
VideoProcAmp_WhiteBalance
  Enables white balance.
VideoProcAmp_BacklightCompensation
  Enables backlight compensation.

##### Remarks

The IAMVideoProcAmp interface uses this enumerated data type.

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.