AMVAUncompBufferInfo Structure

 
Microsoft DirectShow 9.0

AMVAUncompBufferInfo Structure

The AMVAUncompBufferInfo structure describes the surfaces to be allocated.

  • Note   This structure is available in Microsoft® Windows® 98 Second Edition and Windows 2000.

Syntax

typedef struct _tag_AMVAUncompBufferInfo{
    DWORD dwMinNumSurfaces;
    DWORD dwMaxNumSurfaces;
    DDPIXELFORMAT ddUncompPixelFormat;
 } AMVAUncompBufferInfo, *LPAMVAUncompBufferInfo;

Members

dwMinNumSurfaces

Minimum number of surfaces to be allocated.

dwMaxNumSurfaces

Maximum number of surfaces to be allocated.

ddUncompPixelFormat

DDPIXELFORMAT structure, describing the pixel format of surfaces to be allocated.

Remarks

The VMR-7 and the VMR-9 filters always allocate the number of surfaces specified in the dwMinNumSurfaces member. For interlaced content, the VMR-7 allocates additional surfaces equal to the number of forward and backward reference frames required by the deinterlacer. These numbers are obtained by calling IVMRDeinterlaceControl::GetDeinterlaceModeCaps. The VMR-9 does not need to allocate additonal surfaces for deinterlacing. In other words:

  • For the VMR-7, the number of allocated surfaces is dwMinNumSurfaces + VMRDeinterlaceCaps::dwNumForwardRefSamples + VMRDeinterlaceCaps::dwNumBackwardRefSamples. (For progressive content, the last two values will be zero.)
  • For the VMR-9, the number of allocated surfaces is dwMinNumSurfaces.

Initially, the decoder should set dwMinNumSurfaces equal to the optimal number of surfaces needed to decode smoothly. If the renderer cannot allocate that many surfaces, the connection will fail with the error code E_OUTOFMEMORY. The decoder should reconnect with the same media type but set dwMinNumSurfaces equal to the minimum number of surfaces required for decoding. (For example, the optimal number of surfaces might be 8, while the minimum is 4.)

Requirements

  Header: Dshow.h.

See Also