#[non_exhaustive]pub struct NonCodecPayload {
pub kind: NonCodecKind,
pub payload_type: u8,
pub media_type: SdpMediaType,
pub clock_rate: u32,
pub fmtp: Option<String>,
pub has_rtpmap: bool,
}Expand description
A payload offered in an m= section that is negotiated outside the codec string.
This is the offer’s inventory in m= order, undeduplicated — not a negotiation
outcome. FreeSWITCH keeps only one of each per session, picking the entry whose
clock rate matches the negotiated codec’s advertised rate
(switch_core_media.c:5805, :5816) and forcing the retained rate to 8000 Hz
when it does not match (:5829-5834). That comparison needs a negotiated codec,
which does not exist at this layer, so a caller holding one applies the rule itself.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.kind: NonCodecKindWhich payload this is, resolved from the canonical encoding name.
payload_type: u8Session-local payload type from the m= format list.
media_type: SdpMediaTypeThe media type of the section where this payload appeared.
clock_rate: u32Clock rate in Hz, from a=rtpmap or the RFC 3551 static table.
fmtp: Option<String>Format parameters from a=fmtp, verbatim.
FreeSWITCH never reads this from a received offer: both kinds leave the rtpmap
walk (switch_core_media.c:5447, :5456) before switch_core_codec_parse_fmtp
at :5493, and the DTMF digit range in a generated offer is synthesized from
NDLB_line_flash_16 instead (:10653-10659). A disagreement between two offers
is therefore real but is not something the switch acted on.
has_rtpmap: boolfalse when the payload type was resolved from the RFC 3551 static table
rather than declared by the peer with an a=rtpmap line.
Trait Implementations§
Source§impl Clone for NonCodecPayload
impl Clone for NonCodecPayload
Source§impl Debug for NonCodecPayload
impl Debug for NonCodecPayload
Source§impl Display for NonCodecPayload
impl Display for NonCodecPayload
impl Eq for NonCodecPayload
Source§impl PartialEq for NonCodecPayload
impl PartialEq for NonCodecPayload
impl StructuralPartialEq for NonCodecPayload
Auto Trait Implementations§
impl Freeze for NonCodecPayload
impl RefUnwindSafe for NonCodecPayload
impl Send for NonCodecPayload
impl Sync for NonCodecPayload
impl Unpin for NonCodecPayload
impl UnsafeUnpin for NonCodecPayload
impl UnwindSafe for NonCodecPayload
Blanket Implementations§
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§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.