Share via


IMediaObjectInPlace interface (mediaobj.h)

[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 IMediaObjectInPlace interface provides methods for processing data in place. A Microsoft DirectX Media Object (DMO) can expose this interface if it meets the following conditions:

  • It has one input stream and one output stream.
  • Both streams use the same media type.
  • The output is produced in place on the buffer; that is, without copying data.
This interface provides an optimized way to process data. The application calls a single IMediaObjectInPlace::Process method instead of the IMediaObject::ProcessInput and IMediaObject::ProcessOutput methods. However, any DMO that implements this interface must also implement the IMediaObject interface. Therefore, an application is never obligated to use this interface, and a DMO is never guaranteed to implement it.

Inheritance

The IMediaObjectInPlace interface inherits from the IUnknown interface. IMediaObjectInPlace also has these types of members:

Methods

The IMediaObjectInPlace interface has these methods.

 
IMediaObjectInPlace::Clone

The Clone method creates a copy of the DMO in its current state.
IMediaObjectInPlace::GetLatency

The GetLatency method retrieves the latency introduced by this DMO.
IMediaObjectInPlace::Process

The Process method processes a block of data. The application supplies a pointer to a block of input data. The DMO processes the data in place.

Requirements

Requirement Value
Target Platform Windows
Header mediaobj.h (include Dmo.h)