class SetOutputBufferPartialSettings

Defined at line 1256 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/markers.h

This is the replacement for SetOutputBufferSettings().

When the client is using sysmem to allocate buffers, this message is

used instead of SetOutputBufferSettings()+AddOutputBuffer(). Instead, a

single SetOutputBufferPartialSettings() provides the StreamProcessor

with the client-specified output settings and a BufferCollectionToken

which the StreamProcessor will use to convey constraints to sysmem. Both

the client and the StreamProcessor will be informed of the allocated

buffers directly by sysmem via their BufferCollection channel (not via

the StreamProcessor channel).

Configuring output buffers is _required_ after OnOutputConstraints() is

received by the client with buffer_constraints_action_required true and

stream_lifetime_ordinal equal to the client's current

stream_lifetime_ordinal (even if there is an active stream), and is

_permitted_ any time there is no current stream.

Closing the current stream occurs on the StreamControl ordering domain,

so after a CloseCurrentStream() or FlushEndOfStreamAndCloseStream(), a

subsequent Sync() completion must be received by the client before the

client knows that there's no longer a current stream.

Mixing of AddBuffer and SetOutputBufferPartialSettings is not allowed

while there are any buffers still active on the port. To successfully

switch modes for a port, most clients will want to just start over with

a new StreamProcessor instance. This can also be done reliably by first

ensuring that every added buffer under the port up to "now" (including

those with older buffer_lifetime_ordinal) has completed a RemoveBuffer

request. Only then is it known ok to switch modes for that port under

the same StreamProcessor. Most clients will just use one way or the

other to add buffers and never need to switch to the other way,

especially not within the same StreamProcessor instance.

See also CompleteOutputBufferPartialSettings().

Public Members

static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal