AMVAUncompBufferInfo structure

The AMVAUncompBufferInfo structure describes the uncompressed surfaces to be allocated by the video renderer.


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



Minimum number of surfaces to allocate.


Maximum number of surfaces to allocate.


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


The VMR-7 and VMR-9 filters allocate at least dwMinNumSurfaces surfaces. For interlaced content, the VMR-7 allocates additional surfaces equal to the number of forward and backward reference frames required by the deinterlacer. The VMR-7 gets these values by calling IVMRDeinterlaceControl::GetDeinterlaceModeCaps. The VMR-9 does not need to allocate additional surfaces for deinterlacing. Thus:

  • For the VMR-7, the number of allocated surfaces is dwMinNumSurfaces + dwNumForwardRefSamples + 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.


Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]


Amva.h (include Videoacc.h)

See also

DirectShow Structures