1use crate::RtpPacket;
2use ezk::{ConfigRange, MediaType, ValueRange};
3
4#[derive(Debug)]
6pub enum Rtp {}
7
8impl MediaType for Rtp {
9 type ConfigRange = RtpConfigRange;
10 type Config = RtpConfig;
11 type FrameData = RtpPacket;
12}
13
14#[derive(Debug, Clone)]
15pub struct RtpConfigRange {
16 pub pt: ValueRange<u8>,
17}
18
19#[derive(Debug, Clone, Copy)]
20pub struct RtpConfig {
21 pub pt: u8,
22}
23
24impl ConfigRange for RtpConfigRange {
25 type Config = RtpConfig;
26
27 fn any() -> Self {
28 RtpConfigRange {
29 pt: ValueRange::range(0, 127),
30 }
31 }
32
33 fn intersect(&self, other: &Self) -> Option<Self> {
34 Some(Self {
35 pt: self.pt.intersect(&other.pt)?,
36 })
37 }
38
39 fn contains(&self, config: &Self::Config) -> bool {
40 let Self { pt } = self;
41 pt.contains(&config.pt)
42 }
43}