pub struct StreamBufferConstraints {Show 13 fields
    pub buffer_constraints_version_ordinal: Option<u64>,
    pub default_settings: Option<StreamBufferSettings>,
    pub per_packet_buffer_bytes_min: Option<u32>,
    pub per_packet_buffer_bytes_recommended: Option<u32>,
    pub per_packet_buffer_bytes_max: Option<u32>,
    pub packet_count_for_server_min: Option<u32>,
    pub packet_count_for_server_recommended: Option<u32>,
    pub packet_count_for_server_recommended_max: Option<u32>,
    pub packet_count_for_server_max: Option<u32>,
    pub packet_count_for_client_min: Option<u32>,
    pub packet_count_for_client_max: Option<u32>,
    pub single_buffer_mode_allowed: Option<bool>,
    pub is_physically_contiguous_required: Option<bool>,
    /* private fields */
}Expand description
This struct conveys the buffer_constraints_version_ordinal.
Historically this table conveyed more fields than it currently does, but those fields are all deprecated in favor of using sysmem instead.
There are separate instances of this struct for stream input and stream output.
Notes about fields:
For uncompressed video, separate and complete frames in their separate buffers (buffer-per-packet mode) are always a requirement.
Fields§
§buffer_constraints_version_ordinal: Option<u64>This is a version number the server sets on the constraints to allow the server to determine when the client has caught up with the latest constraints sent by the server. The server won’t emit output data until the client has configured output settings and buffers with a buffer_constraints_version_ordinal >= the latest buffer_constraints_version_ordinal that had buffer_constraints_action_required true. See buffer_constraints_action_required comments for more.
A buffer_constraints_version_ordinal of 0 is not permitted, to simplify initial state handling. Other than 0, both odd and even version ordinals are allowed (in contrast to the stream_lifetime_ordinal, neither the client nor server ever has a reason to consider the latest version to be stale, so there would be no benefit to disallowing even values).
default_settings: Option<StreamBufferSettings>§per_packet_buffer_bytes_min: Option<u32>§per_packet_buffer_bytes_recommended: Option<u32>§per_packet_buffer_bytes_max: Option<u32>§packet_count_for_server_min: Option<u32>§packet_count_for_server_recommended: Option<u32>§packet_count_for_server_recommended_max: Option<u32>§packet_count_for_server_max: Option<u32>§packet_count_for_client_min: Option<u32>§packet_count_for_client_max: Option<u32>§single_buffer_mode_allowed: Option<bool>§is_physically_contiguous_required: Option<bool>Trait Implementations§
Source§impl Clone for StreamBufferConstraints
 
impl Clone for StreamBufferConstraints
Source§fn clone(&self) -> StreamBufferConstraints
 
fn clone(&self) -> StreamBufferConstraints
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StreamBufferConstraints
 
impl Debug for StreamBufferConstraints
Source§impl<D> Decode<StreamBufferConstraints, D> for StreamBufferConstraintswhere
    D: ResourceDialect,
 
impl<D> Decode<StreamBufferConstraints, D> for StreamBufferConstraintswhere
    D: ResourceDialect,
Source§fn new_empty() -> StreamBufferConstraints
 
fn new_empty() -> StreamBufferConstraints
Self. The specific value does not matter,
since it will be overwritten by decode.Source§impl Default for StreamBufferConstraints
 
impl Default for StreamBufferConstraints
Source§fn default() -> StreamBufferConstraints
 
fn default() -> StreamBufferConstraints
Source§impl<D> Encode<StreamBufferConstraints, D> for &StreamBufferConstraintswhere
    D: ResourceDialect,
 
impl<D> Encode<StreamBufferConstraints, D> for &StreamBufferConstraintswhere
    D: ResourceDialect,
Source§impl PartialEq for StreamBufferConstraints
 
impl PartialEq for StreamBufferConstraints
Source§impl TypeMarker for StreamBufferConstraints
 
impl TypeMarker for StreamBufferConstraints
Source§type Owned = StreamBufferConstraints
 
type Owned = StreamBufferConstraints
Source§fn inline_align(_context: Context) -> usize
 
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
 
fn inline_size(_context: Context) -> usize
inline_align.Source§fn encode_is_copy() -> bool
 
fn encode_is_copy() -> bool
Self::Owned matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned to a single memcpy. Read moreSource§fn decode_is_copy() -> bool
 
fn decode_is_copy() -> bool
Self::Owned matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned to a single memcpy.Source§impl ValueTypeMarker for StreamBufferConstraints
 
impl ValueTypeMarker for StreamBufferConstraints
Source§type Borrowed<'a> = &'a StreamBufferConstraints
 
type Borrowed<'a> = &'a StreamBufferConstraints
Encode<Self>
type cheaply obtainable from &Self::Owned. There are three cases: Read moreSource§fn borrow(
    value: &<StreamBufferConstraints as TypeMarker>::Owned,
) -> <StreamBufferConstraints as ValueTypeMarker>::Borrowed<'_>
 
fn borrow( value: &<StreamBufferConstraints as TypeMarker>::Owned, ) -> <StreamBufferConstraints as ValueTypeMarker>::Borrowed<'_>
&Self::Owned to Self::Borrowed.