pub struct CodecDescription {
pub codec_type: CodecType,
pub mime_type: String,
pub can_stream_bytes_input: bool,
pub can_find_start: bool,
pub can_re_sync: bool,
pub will_report_all_detected_errors: bool,
pub is_hw: bool,
pub split_header_handling: bool,
}
Expand description
Deprecated.
Rather than listening for OnCodecList, clients needing codec information prior to just requesting a codec with CodecFactory.CreateDecoder or CodecFactory.CreateEncoder should instead use GetDetailedCodecDescriptions to get the DetailedCodecDescription table instead, which has per-profile-entry equivalents of all these fields. Clients with no real need for codec information prior to requesting a codec can call CodecFactory.CreateDecoder or CodecFactory.CreateEncoder with relevant requirements set in that request, and then StreamProcessor.Sync to see if a codec was actually created successfully.
In contrast to OnCodecList which uses FIDL structs (due to ordering of historical events), GetDetailedCodecDescriptions uses FIDL tables so is not expected to need to be deprecated, since we can add new table fields as needed, and gradually deprecate old table fields if appropriate, without deprecating the whole thing.
Per-codec servers do not need to fill out this struct or send OnCodecList, as the main CodecFactory will construct the OnCodecList info from the GetDetailedCodecDescriptions info, so that each codec can (optionally) stop sending OnCodecList immediately, rather than having to wait for all clients to stop listening to OnCodecList, which may take a while. All codecs do need to implement GetDetailedCodecDescriptions however.
Fields§
§codec_type: CodecType
Decoder or encoder.
mime_type: String
The mime type of the compressed format. For decoders this is the mime type of the input. For encoders, this is the mime type of the output.
can_stream_bytes_input: bool
For each of these fields, the default is the most-capable setting, but if a codec doesn’t support the most-capable behavior, then the codec must override the default.
can_find_start: bool
§can_re_sync: bool
§will_report_all_detected_errors: bool
§is_hw: bool
§split_header_handling: bool
Trait Implementations§
Source§impl Clone for CodecDescription
impl Clone for CodecDescription
Source§fn clone(&self) -> CodecDescription
fn clone(&self) -> CodecDescription
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for CodecDescription
impl Debug for CodecDescription
Source§impl<D: ResourceDialect> Decode<CodecDescription, D> for CodecDescription
impl<D: ResourceDialect> Decode<CodecDescription, D> for CodecDescription
Source§impl<D: ResourceDialect> Encode<CodecDescription, D> for &CodecDescription
impl<D: ResourceDialect> Encode<CodecDescription, D> for &CodecDescription
Source§impl<D: ResourceDialect, T0: Encode<CodecType, D>, T1: Encode<BoundedString<256>, D>, T2: Encode<bool, D>, T3: Encode<bool, D>, T4: Encode<bool, D>, T5: Encode<bool, D>, T6: Encode<bool, D>, T7: Encode<bool, D>> Encode<CodecDescription, D> for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<D: ResourceDialect, T0: Encode<CodecType, D>, T1: Encode<BoundedString<256>, D>, T2: Encode<bool, D>, T3: Encode<bool, D>, T4: Encode<bool, D>, T5: Encode<bool, D>, T6: Encode<bool, D>, T7: Encode<bool, D>> Encode<CodecDescription, D> for (T0, T1, T2, T3, T4, T5, T6, T7)
Source§impl Hash for CodecDescription
impl Hash for CodecDescription
Source§impl Ord for CodecDescription
impl Ord for CodecDescription
Source§fn cmp(&self, other: &CodecDescription) -> Ordering
fn cmp(&self, other: &CodecDescription) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for CodecDescription
impl PartialEq for CodecDescription
Source§impl PartialOrd for CodecDescription
impl PartialOrd for CodecDescription
Source§impl TypeMarker for CodecDescription
impl TypeMarker for CodecDescription
Source§type Owned = CodecDescription
type Owned = CodecDescription
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
.§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 more§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 CodecDescription
impl ValueTypeMarker for CodecDescription
Source§type Borrowed<'a> = &'a CodecDescription
type Borrowed<'a> = &'a CodecDescription
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read moreimpl Eq for CodecDescription
impl Persistable for CodecDescription
impl StructuralPartialEq for CodecDescription
Auto Trait Implementations§
impl Freeze for CodecDescription
impl RefUnwindSafe for CodecDescription
impl Send for CodecDescription
impl Sync for CodecDescription
impl Unpin for CodecDescription
impl UnwindSafe for CodecDescription
Blanket Implementations§
§impl<T> Body for Twhere
T: Persistable,
impl<T> Body for Twhere
T: Persistable,
§type MarkerAtTopLevel = T
type MarkerAtTopLevel = T
§type MarkerInResultUnion = T
type MarkerInResultUnion = T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)