Microsoft DirectX 8.1 (C++) |
The GetFormat method retrieves the current or preferred output format.
Syntax
HRESULT GetFormat(
AM_MEDIA_TYPE **pmt
);
Parameters
pmt
[out] Address of a pointer to an AM_MEDIA_TYPE structure.
Return Values
Returns an HRESULT value. Possible values include the following.
Return code | Description |
S_OK | Success. |
E_OUTOFMEMORY | Insufficient memory. |
E_POINTER | NULL pointer value. |
VFW_E_NOT_CONNECTED | The input pin is not connected. |
Remarks
If the pin is connected, this method returns the format that the pin is currently using. Otherwise, the method returns the pin's preferred format for the next pin connection. If you have already called the IAMStreamConfig::SetFormat method to set the format, GetFormat returns the same format. If not, it returns the first format in the pin's list of preferred formats, as determined by the IPin::EnumMediaTypes method.
The method allocates the memory for the AM_MEDIA_TYPE structure, fills in the structure, and returns it in the pmt parameter. The caller must release the memory, including the format block. You can use the DeleteMediaType helper function in the base class library.
On some compression filters, the method fails if the filter's input pin is not connected.
Example Code
IAMStreamConfig *pConfig = NULL;
// Query the output pin for IAMStreamConfig (not shown).
AM_MEDIA_TYPE *pmt = NULL;
hr = pConfig->GetFormat(&pmt);
if (SUCCEEDED(hr))
{
/* Examine the media type for any information you need. */
DeleteMediaType(pmt);
}
pConfig->Release();
See Also