Compartir a través de


AM_SAMPLE2_PROPERTIES (Compact 2013)

3/26/2014

This structure describes the properties of a generic media sample.

Syntax

typedef struct tagAM_SAMPLE2_PROPERTIES {
  DWORD cbData;
  DWORD dwTypeSpecificFlags;
  DWORD dwSampleFlags;
  LONG lActual;
  REFERENCE_TIME tStart;
  REFERENCE_TIME tStop;
  DWORD dwStreamId;
  AM_MEDIA_TYPE* pMediaType;
  BYTE* pbBuffer;
  LONG cbBuffer;
} AM_SAMPLE2_PROPERTIES;

Members

  • cbData
    Length of property data for extensibility; number of bytes including this field.
  • dwTypeSpecificFlags
    Type-specific flag data. These flags are defined separately for each media type. Default is zero.
  • dwSampleFlags
    Flags bits defined by the AM_SAMPLE_PROPERTY_FLAGS enumerated data type or by the defined constants described in Remarks.

    All undefined bits are reserved. Set them to zero, and do not copy them.

  • lActual
    Length of data in the buffer pointed to by the pbBuffer member.
  • tStart
    Start time if valid.
  • tStop
    Stop time if valid.
  • dwStreamId
    Stream identifier. Stream 0 is the normal media transport. Stream 1 is control. Currently, only Stream 0 is used. Filters should pass any other stream ID directly to their output pins without processing.
  • pMediaType
    Copy of the media type. It becomes invalid after the sample has been released.
  • pbBuffer
    Pointer to the buffer. The pointer becomes invalid after the sample is released.
  • cbBuffer
    Total length of the buffer pointed to by pbBuffer, in bytes.

Remarks

The IMediaSample2 interface uses this structure.

The dwSampleFlags parameter can take values from the AM_SAMPLE_PROPERTY_FLAGS enumerated data type or one or more of the following defined constants.

High-end video is typically formatted as alternate scan lines rather than as whole frames. Thus, the first field of a high-end video sample often contains odd lines of the video (lines 1, 3, 5, and so on) while the second field of the sample often contains the even lines of the video (lines 2, 4, 6, and so on).

Many of the following constants describe the samples of high-end video: whether the sample is a field1, field2, or frame, and how the sample should be displayed.

Flag

Description

AM_VIDEO_FLAG_FIELD_MASK

Used to check whether the sample is a field1, field2, or frame.

AM_VIDEO_FLAG_INTERLEAVED_FRAME

Specifies this sample is a frame (use AM_VIDEO_FLAG_FIELD_MASK when using this).

AM_VIDEO_FLAG_FIELD1

Specifies this sample is the field1 (use AM_VIDEO_FLAG_FIELD_MASK when using this).

AM_VIDEO_FLAG_FIELD2

Specifies this sample is the field2 (use AM_VIDEO_FLAG_FIELD_MASK when using this).

AM_VIDEO_FLAG_FIELD1FIRST

Specifies display field1 first, else display field2 first. This bit is ignored for 1FieldPerSample mode.

AM_VIDEO_FLAG_WEAVE

If set, use weave display mode, otherwise use the bob display mode.

AM_VIDEO_FLAG_IPB_MASK

Use this sample to set whether the sample is I, P, or B (see next 3 flags).

AM_VIDEO_FLAG_I_SAMPLE

Specifies to use the Intra encoded method of MPEG frame compression. Use AM_VIDEO_FLAG_IPB_MASK when using this.

AM_VIDEO_FLAG_P_SAMPLE

Specifies to use the Predicted encoded method of MPEG frame compression. Use AM_VIDEO_FLAG_IPB_MASK when using this.

AM_VIDEO_FLAG_B_SAMPLE

Specifies to use the Bidirectional encoded method of MPEG frame compression. Use AM_VIDEO_FLAG_IPB_MASK when using this.

AM_VIDEO_FLAG_REPEAT_FIELD

Specifies to display the first image displayed, after displaying both of the images. This bit is ignored for 1FieldPerSample mode.

Requirements

Header

dshow.h

Library

Strmiids.lib

See Also

Reference

DirectShow Structures