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