class FormatDetails
Defined at line 8228 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
FormatDetails
This describes/details the format on input or output of a StreamProcessor
(separate instances for input vs. output).
Public Members
static const fidl_type_t * FidlType
Public Methods
bool IsEmpty ()
Returns whether no field is set.
void FormatDetails (FormatDetails && other)
const uint64_t & format_details_version_ordinal ()
Particular instances of FormatDetails will set this field to make it
easier for a receiver to determine if any part of the format has changed
vs. the last FormatDetails received for the same context.
For StreamProcessor input: At StreamProcessor creation time, initial
input FormatDetails are provided with an initial
format_details_version_ordinal (typically 0, and defaulting to 0 in
CodecImpl if omitted, though clients should set it). Within a given
stream, each QueueInputFormatDetails must have
format_details_version_ordinal >= the previous input
format_details_version_ordinal for that stream, and must strictly
increase format_details_version_ordinal if any part of FormatDetails
changes vs. the previous input FormatDetails for that stream. When
starting a new stream, the stream's initial input FormatDetails (and its
format_details_version_ordinal) defaults back to the initial
FormatDetails specified at StreamProcessor creation time, so the ordinal
can drop to a lower number across a stream switch.
For StreamProcessor output: Within a given stream, OnOutputFormat's
format_details_version_ordinal increases whenever the output
FormatDetails changes. Across a stream switch, a server (such as
CodecImpl) may continue increasing output format_details_version_ordinal
rather than resetting it per stream, which is a permitted sequence, or
may drop to a lower number across a stream switch (an OnOutputFormat is
always sent before the first output packet of a new stream).
Defined at line 8259 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
bool has_format_details_version_ordinal ()
Defined at line 8263 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
uint64_t * mutable_format_details_version_ordinal ()
Particular instances of FormatDetails will set this field to make it
easier for a receiver to determine if any part of the format has changed
vs. the last FormatDetails received for the same context.
For StreamProcessor input: At StreamProcessor creation time, initial
input FormatDetails are provided with an initial
format_details_version_ordinal (typically 0, and defaulting to 0 in
CodecImpl if omitted, though clients should set it). Within a given
stream, each QueueInputFormatDetails must have
format_details_version_ordinal >= the previous input
format_details_version_ordinal for that stream, and must strictly
increase format_details_version_ordinal if any part of FormatDetails
changes vs. the previous input FormatDetails for that stream. When
starting a new stream, the stream's initial input FormatDetails (and its
format_details_version_ordinal) defaults back to the initial
FormatDetails specified at StreamProcessor creation time, so the ordinal
can drop to a lower number across a stream switch.
For StreamProcessor output: Within a given stream, OnOutputFormat's
format_details_version_ordinal increases whenever the output
FormatDetails changes. Across a stream switch, a server (such as
CodecImpl) may continue increasing output format_details_version_ordinal
rather than resetting it per stream, which is a permitted sequence, or
may drop to a lower number across a stream switch (an OnOutputFormat is
always sent before the first output packet of a new stream).
Defined at line 8292 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
void clear_format_details_version_ordinal ()
Defined at line 8300 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
const ::std::string & mime_type ()
Defined at line 8308 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
bool has_mime_type ()
Defined at line 8312 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
::std::string * mutable_mime_type ()
Defined at line 8316 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
void clear_mime_type ()
Defined at line 8324 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
const ::std::vector<uint8_t> & oob_bytes ()
Defined at line 8332 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
bool has_oob_bytes ()
Defined at line 8336 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
::std::vector<uint8_t> * mutable_oob_bytes ()
Defined at line 8340 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
void clear_oob_bytes ()
Defined at line 8348 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
const ::fuchsia::media::DomainFormat & domain ()
Defined at line 8356 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
bool has_domain ()
Defined at line 8360 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
::fuchsia::media::DomainFormat * mutable_domain ()
Defined at line 8364 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
void clear_domain ()
Defined at line 8372 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
const ::std::vector< ::fuchsia::media::Parameter> & pass_through_parameters ()
Defined at line 8380 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
bool has_pass_through_parameters ()
Defined at line 8384 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
::std::vector< ::fuchsia::media::Parameter> * mutable_pass_through_parameters ()
Defined at line 8388 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
void clear_pass_through_parameters ()
Defined at line 8396 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
const ::fuchsia::media::EncoderSettings & encoder_settings ()
Instructs an encoder on how to encode raw data.
Decoders may ignore this field but are entitled to rejected requests with
this field set because it doesn't make sense.
Defined at line 8408 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
bool has_encoder_settings ()
Defined at line 8412 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
::fuchsia::media::EncoderSettings * mutable_encoder_settings ()
Instructs an encoder on how to encode raw data.
Decoders may ignore this field but are entitled to rejected requests with
this field set because it doesn't make sense.
Defined at line 8420 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
void clear_encoder_settings ()
Defined at line 8428 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
const ::fuchsia::media::CodecProfile & profile ()
The codec profile for the given encoder or decoder.
For encoders: This value is completely optional. A client may want to specify the codec
profile used for protocol compatibility reasons (i.e. WebRTC). However if the value is not
set then the the encoder is free to choose any supported codec profile.
For decoders: This value is optional but providing it is best practice (at least of
unencrypted streams). Container formats include the encoded profile and this should be
provided to the decoder. Certain formats like VP9 and AV1 include the encoded profile in
their elementary bitstream so it is possible for those decoders to figure out the profile
the stream is encoded in. Regardless, clients should provide the encoded profile if
possible.
Defined at line 8498 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
bool has_profile ()
Defined at line 8502 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
::fuchsia::media::CodecProfile * mutable_profile ()
The codec profile for the given encoder or decoder.
For encoders: This value is completely optional. A client may want to specify the codec
profile used for protocol compatibility reasons (i.e. WebRTC). However if the value is not
set then the the encoder is free to choose any supported codec profile.
For decoders: This value is optional but providing it is best practice (at least of
unencrypted streams). Container formats include the encoded profile and this should be
provided to the decoder. Certain formats like VP9 and AV1 include the encoded profile in
their elementary bitstream so it is possible for those decoders to figure out the profile
the stream is encoded in. Regardless, clients should provide the encoded profile if
possible.
Defined at line 8518 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
FormatDetails & set_format_details_version_ordinal (uint64_t _value)
FormatDetails & set_mime_type (::std::string _value)
FormatDetails & set_oob_bytes (::std::vector<uint8_t> _value)
FormatDetails & set_domain (::fuchsia::media::DomainFormat _value)
FormatDetails & set_pass_through_parameters (::std::vector< ::fuchsia::media::Parameter> _value)
FormatDetails & set_encoder_settings (::fuchsia::media::EncoderSettings _value)
FormatDetails & set_profile (::fuchsia::media::CodecProfile _value)
void FormatDetails ()
const uint64_t & timebase ()
The number of ticks of the timebase of input packet timestamp_ish values
per second.
The timebase is only used used for optional extrapolation of timestamp_ish
values when an input timestamp which applies to byte 0 of the valid portion
of the input packet does not correspond directly to byte 0 of the valid
portion of any output packet.
Leave unset if timestamp extrapolation is not needed, either due to lack of
timestamps on input, or due to input being provided in increments of the
encoder's input chunk size (based on the encoder settings and calculated
independently by the client). Set if timestamp extrapolation is known to be
needed or known to be acceptable to the client.
Defined at line 8449 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
bool has_timebase ()
Defined at line 8453 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
uint64_t * mutable_timebase ()
The number of ticks of the timebase of input packet timestamp_ish values
per second.
The timebase is only used used for optional extrapolation of timestamp_ish
values when an input timestamp which applies to byte 0 of the valid portion
of the input packet does not correspond directly to byte 0 of the valid
portion of any output packet.
Leave unset if timestamp extrapolation is not needed, either due to lack of
timestamps on input, or due to input being provided in increments of the
encoder's input chunk size (based on the encoder settings and calculated
independently by the client). Set if timestamp extrapolation is known to be
needed or known to be acceptable to the client.
Defined at line 8470 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
void clear_timebase ()
Defined at line 8478 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
void clear_profile ()
Defined at line 8526 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/hlcpp/fuchsia/media/cpp/fidl.h
FormatDetails & set_timebase (uint64_t _value)
void ~FormatDetails ()
FormatDetails & operator= (FormatDetails && other)
::std::unique_ptr<FormatDetails> New ()
void Encode (::fidl::Encoder *_encoder,size_t_offset,std::optional< ::fidl::HandleInformation>maybe_handle_info)
void Decode (::fidl::Decoder *_decoder,FormatDetails *_value,size_t_offset)
zx_status_t Clone (FormatDetails * _result)