Export (0) Print
Expand All
Expand Minimize
This topic has not yet been rated - Rate this topic

_MFT_OUTPUT_DATA_BUFFER_FLAGS enumeration

Defines flags for the IMFTransform::ProcessOutput method.

Syntax


enum _MFT_OUTPUT_DATA_BUFFER_FLAGS {  MFT_OUTPUT_DATA_BUFFER_INCOMPLETE     = 0x01000000, 
  MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE  = 0x00000100, 
  MFT_OUTPUT_DATA_BUFFER_STREAM_END     = 0x00000200, 
  MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE      = 0x00000300 

};

Constants

MFT_OUTPUT_DATA_BUFFER_INCOMPLETE

The MFT can still generate output from this stream without receiving any more input. Call ProcessOutput again to process the next batch of input data.

MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE

The format has changed on this output stream, or there is a new preferred format for this stream. When this flag is set, the MFT clears the media type for the stream. The ProcessOutput method returns MF_E_TRANSFORM_STREAM_CHANGE and generates no output for any stream. Further calls to IMFTransform::ProcessInput or ProcessOutput will fail until the client sets a new media type.

MFT_OUTPUT_DATA_BUFFER_STREAM_END

The MFT has removed this output stream. The output stream must have the MFT_OUTPUT_STREAM_REMOVABLE flag. (See IMFTransform::GetOutputStreamInfo.)

When the MFT removes an output stream, the MFT returns this status code on the next call to ProcessOutput after the last output sample has been produced. When the MFT returns this status code, it does not modify any sample contained in the pSample member of the MFT_OUTPUT_DATA_BUFFER structure, nor does it allocate a new sample if pSample is NULL.

After this status code is returned, the stream identifier for this output stream is no longer valid. The client should no longer provide an MFT_OUTPUT_DATA_BUFFER structure for that stream when it calls ProcessOutput.

The ProcessOutput method does not return MF_E_TRANSFORM_STREAM_CHANGE when a stream ends, unless there is a change in another stream that requires this return code.

MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE

There is no sample ready for this stream. This flag might be set if the MFT has multiple output streams that produce data at different times. It sets this flag for each stream that is not ready to produce data. It does not modify the output sample contained in the pSample member of the MFT_OUTPUT_DATA_BUFFER structure, nor does it allocate a new sample is pSample is NULL.

If no streams are ready to produce output, the MFT does not set this flag. Instead, the ProcessOutput method returns MF_E_TRANSFORM_NEED_MORE_INPUT.

Remarks

The values in this enumeration are not bit flags, so they should not be combined with a bitwise OR. Also, the caller should test for these flags with the equality operator, not a bitwise AND:

// Correct.
if (Buffer.dwStatus == MFT_OUTPUT_DATA_BUFFER_STREAM_END)
{
    ...
}

// Incorrect.
if ((Buffer.dwStatus & MFT_OUTPUT_DATA_BUFFER_STREAM_END) != 0)
{
    ...
}

Requirements

Minimum supported client

Windows Vista [desktop apps | Windows Store apps]

Minimum supported server

Windows Server 2008 [desktop apps | Windows Store apps]

Header

Mftransform.h

See also

Media Foundation Enumerations
Media Foundation Transforms

 

 

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.