CBaseOutputPin.DecideBufferSize method

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

The DecideBufferSize method sets the buffer requirements.

Syntax

virtual HRESULT DecideBufferSize(
   IMemAllocator        *pAlloc,
   ALLOCATOR_PROPERTIES *ppropInputRequest
) = 0;

Parameters

pAlloc

Pointer to the allocator's IMemAllocator interface.

ppropInputRequest

Pointer to an ALLOCATOR_PROPERTIES structure that contains the input pin's buffer requirements. If the input pin does not have any requirements, the caller should zero out the members of this structure before calling the method.

Return value

Returns S_OK if successful, or an HRESULT value indicating the cause of the error.

Remarks

Override this method in your derived class. Call the IMemAllocator::SetProperties method to specify your buffer requirements. Typically, the derived class will honor the input pin's buffer requirements, but it is not required to.

Requirements

Requirement Value
Header
Amfilter.h (include Streams.h)
Library
Strmbase.lib (retail builds);
Strmbasd.lib (debug builds)

See also

CBaseOutputPin Class