Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
Certain data transformations can be accomplished by directly modifying the data. This is known as in-placeprocessing. Many audio and video effects can be done in place.
In-place processing is more efficient than copying data to another buffer.
To process data in-place, make a single call to the IMediaObjectInPlace::Processmethod, rather than separate calls to ProcessInputand ProcessOutput. Pass an array of bytes that contains the input data. When the method returns, the byte array contains the output data.
A DMO that supports IMediaObjectInPlacemust still support all of the IMediaObjectmethods. You can choose whether to use in-place processing or create separate input and output buffers. However, do not mix the two types of processing. If you call Process, do not call ProcessInputor ProcessOutput, and vice-versa.
An in-place DMO might create some additional output after the input stops. This is known as an effect tail. For example, a reverb effect continues after the input reaches silence. If the DMO produces an effect tail, the application must call the Processmethod with zeroed input buffers until the tail is completely processed.
For more information, see IMediaObjectInPlace::Process.