class StreamOutputFormat
Defined at line 3721 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_types.h
Public Methods
bool IsEmpty ()
Returns whether no field is set.
bool HasUnknownData ()
Returns whether the table references unknown fields.
::fidl::WireTableBuilder< ::fuchsia_media::wire::StreamOutputFormat> Builder (::fidl::AnyArena & arena)
Return a builder that by defaults allocates of an arena.
::fidl::WireTableExternalBuilder< ::fuchsia_media::wire::StreamOutputFormat> ExternalBuilder (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_media::wire::StreamOutputFormat>> frame)
Return a builder that relies on explicitly allocating |fidl::ObjectView|s.
void StreamOutputFormat ()
Defined at line 3723 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_types.h
void StreamOutputFormat (const StreamOutputFormat & other)
Defined at line 3724 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_types.h
StreamOutputFormat & operator= (const StreamOutputFormat & other)
Defined at line 3725 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_types.h
void StreamOutputFormat (StreamOutputFormat && other)
Defined at line 3726 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_types.h
StreamOutputFormat & operator= (StreamOutputFormat && other)
Defined at line 3727 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_types.h
uint64_t & stream_lifetime_ordinal ()
A client is permitted to ignore an OnOutputFormat() message even with
buffer_constraints_action_required true if the client knows the server
has already been told to discard the remainder of the stream with the
same stream_lifetime_ordinal or if this stream_lifetime_ordinal field is
set to 0. The server is required to re-send needed output config via
OnOutputConstraints() with new stream_lifetime_ordinal and
buffer_constraints_action_required true, if the most recent completed
server-side output config isn't what the server wants/needs yet for the
new stream.
The server is required to send an OnOutputFormat() before the first
output packet of a stream.
bool has_stream_lifetime_ordinal ()
::fuchsia_media::wire::FormatDetails & format_details ()
If format_details.format_details_version_ordinal changes, the client
should inspect the new format details and determine if it must adjust to
the new format. The server guarantees that if the format has changed, then
format_details.format_details_version_ordinal will change, but a change
to format_details.format_details_version_ordinal does not guarantee that
the format details actually changed. Servers are strongly encouraged to
not change format_details.format_details_version_ordinal other than
before the first output data of a stream unless there is a real
mid-stream format change in the stream. Unnecessary mid-stream format
changes can cause simpler clients that have no need to handle mid-stream
format changes to just close the channel. Format changes before the
first output data of a stream are not "mid-stream" in this context -
those can be useful for stream format detection / setup reasons.
Note that in case output buffers don't really need to be re-configured
despite a format change, a server is encouraged, but not required, to
set buffer_constraints_action_required false on the message that conveys
the new format details. Simpler servers may just treat the whole output
situation as one big thing and demand output buffer reconfiguration on
any change in the output situation.
A client may or may not actually handle a new buffer_constraints with
buffer_constraints_action_required false, but the client should always
track the latest format_details.
An updated format_details is ordered with respect to emitted output
packets, and applies to all subsequent packets until the next
format_details with larger version_ordinal. A simple client that does
not intend to handle mid-stream format changes should still keep track
of the most recently received format_details until the first output
packet arrives, then lock down the format details, handle those format
details, and verify that any
format_details.format_details_version_ordinal received from the server
is the same as the locked-down format_details, until the client is done
with the stream. Even such a simple client must tolerate
format_details.format_details_version_ordinal changing multiple times
before the start of data output from a stream (any stream - the first
stream or a subsequent stream). This allows a stream processor to
request that output buffers and output format be configured
speculatively, and for the output config to be optionally adjusted by
the server before the first data output from a stream after the server
knows everything it needs to know to fully establish the initial output
format details. This simplifies stream processor server implementation,
and allows a clever stream processor server to guess it's output config
for lower latency before any input data, while still being able to fix
the output config (including format details) if the guess turns out to
be wrong.
Whether the format_details.format_details_version_ordinal will actually
change mid-stream is a per-stream-processor and per-stream detail that
is not specified in comments here, and in most cases also depends on
whether the format changes on the input to the stream processor.
Probably it'll be fairly common for a client to use a format which
technically supports mid-stream format change, but the client happens to
know that none of the streams the client intends to process will ever
have a mid-stream format change.
bool has_format_details ()
void ~StreamOutputFormat ()
Defined at line 3729 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_types.h
Friends
class WireTableBaseBuilder
class WireTableBaseBuilder