IAudioOutputEndpointRT::ReleaseOutputDataPointer method (audioengineendpoint.h)

The ReleaseOutputDataPointer method releases the pointer to the output buffer.

Syntax

void ReleaseOutputDataPointer(
  [in] const APO_CONNECTION_PROPERTY *pConnectionProperty
);

Parameters

[in] pConnectionProperty

A pointer to an APO_CONNECTION_PROPERTY structure. The values in the structure must not be changed. The caller sets the members as follows:

  • pBuffer is set to the pointer to the output data buffer returned by the IAudioOutputEndpointRT::GetOutputDataPointer method.
  • u32ValidFrameCount is set to the actual number of frames that have been generated by the audio engine. The value might not be the same as the frame count passed in the u32FrameCount parameter of the GetOutputDataPointer method.
  • u32BufferFlags is set to BUFFER_VALID if the output buffer pointed to by the pBuffer member contains valid data. u32BufferFlags is set to BUFFER_SILENT if the output buffer contains only silent data. The data in the buffer does not actually need to be silence, but the buffer specified in the pBuffer member must be capable of holding all the frames of silence contained in the u32ValidFrameCount member. Therefore, if BUFFER_SILENT is specified, the endpoint should write silence in the output buffer.

Return value

None

Remarks

ReleaseOutputDataPointer notifies the endpoint that the audio engine has completed the task of writing data in the output buffer and no longer requires the data pointer. This method also relays information such as the time that corresponds to the audio samples in the output buffer, the number of frames generated by the audio engine, and whether the buffer is full of valid data or silence data. Based on this information, an endpoint that represents a looped buffer and is attached to the output of the audio engine can advance its write position in the buffer. A value of zero in the u32FrameCount parameter of the GetOutputDataPointer method indicates that the audio engine did not write any valid data in the output buffer. The u32FrameCount parameter value must be less than or equal to the frame count specified in GetOutputDataPointer. The endpoint must not assume that all data requested by GetOutputDataPointer was actually generated.

This method can be called from a real-time processing thread. The implementation of this method must not block, access paged memory, or call any blocking system routines.

The Remote Desktop Services AudioEndpoint API is for use in Remote Desktop scenarios; it is not for client applications.

Requirements

Requirement Value
Minimum supported client Windows 7
Minimum supported server Windows Server 2008 R2
Target Platform Windows
Header audioengineendpoint.h

See also

IAudioOutputEndpointRT