class OnFreeInputPacket

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

The server sends this message when the stream processor is done

consuming the data in this packet (but not necessarily done processing

the data) and the packet can be re-filled by the client.

This is not sent for all packets when a new buffer_lifetime_ordinal

starts as in that case all the packets are initially free with the

client.

After receiving the available input buffer via this event, the stream

processor client can call later call QueueInputBuffer with appropriate

offset and length set, with the same packet_index, to re-use the

packet_index.

OnFreeInputPacket() does _not_ imply that the data in the input packet

has been processed successfully, only that the input data is no longer

needed by the StreamProcessor. If a client needs to know which input

data has generated corresponding output, using timestamp_ish values for

that is recommended.

Any reliance on the relative order of OnFreeInputPacket() and

OnStreamFailed() is discouraged and deprecated. Instead, use

timstamp_ish values to establish which input packets generated

corresponding output packets. Note that even using timestamp_ish values

doesn't necessarily imply that the processing of input data with a given

timestamp_ish value is fully complete, as in some StreamProcessor(s) the

data derived from an input packet can be kept for reference purposes for

a long time (in general indefinitely) after the input data has generated

its primary output data (the output data to which the timestamp_ish

value is attached). The StreamProcessor interface currently does not

provide any way to determine when all data derived from an input packet

has been discarded by the StreamProcessor, and if such a mechanism is

ever added to the StreamProcessor protocol, it would be an optional

StreamProcessor capability, since it would be infeasible to implement

for some StreamProcessor implementations that rely on external means to

process data, where the external means won't necessarily provide info

regarding when an input packet's derived data is fully discarded. An

input packet's derived data will never generate or contribute to any

output data for a different stream.

The order of OnFreeInputPacket() is not guaranteed to be the same as the

order of QueueInputPacket(). Any reliance on the order being the same

is strongly discouraged and deprecated. Clients are expected to work

properly even if the order of OnFreeInputPacket() messages is

intentionally scrambled with respect to each other (but not scrambled

across OnStreamFailed(), for now).

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