IMediaObject::ProcessInput method

The ProcessInput method delivers a buffer to the specified input stream.


HRESULT ProcessInput(
  DWORD          dwInputStreamIndex,
  IMediaBuffer   *pBuffer,
  DWORD          dwFlags,
  REFERENCE_TIME rtTimestamp,
  REFERENCE_TIME rtTimelength



Zero-based index of an input stream on the DMO.


Pointer to the buffer's IMediaBuffer interface.


Bitwise combination of zero or more flags from the DMO_INPUT_DATA_BUFFER_FLAGS enumeration.


Time stamp that specifies the start time of the data in the buffer. If the buffer has a valid time stamp, set the DMO_INPUT_DATA_BUFFERF_TIME flag in the dwFlags parameter. Otherwise, the DMO ignores this value.


Reference time specifying the duration of the data in the buffer. If this value is valid, set the DMO_INPUT_DATA_BUFFERF_TIMELENGTH flag in the dwFlags parameter. Otherwise, the DMO ignores this value.

Return value

Returns an HRESULT value. Possible values include those in the following table.

Return code Description
Invalid stream index.
Data cannot be accepted.
No output to process.


The input buffer specified in the pBuffer parameter is read-only. The DMO will not modify the data in this buffer. All write operations occur on the output buffers, which are given in a separate call to the IMediaObject::ProcessOutput method.

If the DMO does not process all the data in the buffer, it keeps a reference count on the buffer. It releases the buffer once it has generated all the output, unless it needs to perform lookahead on the data. (To determine whether a DMO performs lookahead, call the IMediaObject::GetInputStreamInfo method.)

If this method returns DMO_E_NOTACCEPTING, call ProcessOutput until the input stream can accept more data. To determine whether the stream can accept more data, call the IMediaObject::GetInputStatus method.

If the method returns S_FALSE, no output was generated from this input and the application does not need to call ProcessOutput. However, a DMO is not required to return S_FALSE in this situation; it might return S_OK.


Target Platform Windows
Header mediaobj.h (include Dmo.h)
Library Dmoguids.lib

See also

IMediaObject Interface