live_provenance: name the track's media kind TrackKind #397
1 changed files with 10 additions and 10 deletions
|
|
@ -376,9 +376,9 @@ fn manifest_uuid(s: &str) -> Option<&str> {
|
|||
ok.then_some(u)
|
||||
}
|
||||
|
||||
/// A media kind of live-rooms §6.1.
|
||||
/// A track's media kind, live-rooms §6.1.
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
pub enum MediaKind {
|
||||
pub enum TrackKind {
|
||||
Audio,
|
||||
Video,
|
||||
Screen,
|
||||
|
|
@ -386,7 +386,7 @@ pub enum MediaKind {
|
|||
|
||||
/// The media kind of a track's rendering `<room>-<owner>-<kind>--<layer>` (§5.1), whose
|
||||
/// room field is `room`.
|
||||
pub fn track_kind(track: &str, room: &[u8; 32]) -> Option<MediaKind> {
|
||||
pub fn track_kind(track: &str, room: &[u8; 32]) -> Option<TrackKind> {
|
||||
let (ns, layer) = track.split_once("--")?;
|
||||
let layer_ok = !layer.is_empty() && layer.bytes().all(|c| c.is_ascii_digit()) && (layer == "0" || !layer.starts_with('0'));
|
||||
let f: Vec<&str> = ns.split('-').collect();
|
||||
|
|
@ -397,9 +397,9 @@ pub fn track_kind(track: &str, room: &[u8; 32]) -> Option<MediaKind> {
|
|||
return None;
|
||||
}
|
||||
match *kind {
|
||||
"audio" => Some(MediaKind::Audio),
|
||||
"video" => Some(MediaKind::Video),
|
||||
"screen" => Some(MediaKind::Screen),
|
||||
"audio" => Some(TrackKind::Audio),
|
||||
"video" => Some(TrackKind::Video),
|
||||
"screen" => Some(TrackKind::Screen),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
|
@ -645,7 +645,7 @@ pub fn disclosure(id: &Identity) -> (&'static str, Vec<([u8; 32], bool)>) {
|
|||
Identity::Track(s) => match &s.label {
|
||||
Label::Own { origin: o, model } => {
|
||||
let term = match (*o, track_kind(&s.track, &s.room)) {
|
||||
(origin::HUMAN, Some(MediaKind::Screen)) => "screenCapture",
|
||||
(origin::HUMAN, Some(TrackKind::Screen)) => "screenCapture",
|
||||
(origin::HUMAN, _) => "digitalCapture",
|
||||
(origin::MACHINE, _) => "trainedAlgorithmicMedia",
|
||||
_ => "compositeWithTrainedAlgorithmicMedia",
|
||||
|
|
@ -654,7 +654,7 @@ pub fn disclosure(id: &Identity) -> (&'static str, Vec<([u8; 32], bool)>) {
|
|||
}
|
||||
Label::Inputs(v) => {
|
||||
let capture = |i: &Input| {
|
||||
i.origin == origin::HUMAN && matches!(track_kind(&i.track, &s.room), Some(MediaKind::Audio | MediaKind::Video))
|
||||
i.origin == origin::HUMAN && matches!(track_kind(&i.track, &s.room), Some(TrackKind::Audio | TrackKind::Video))
|
||||
};
|
||||
let term = if v.iter().all(capture) {
|
||||
"compositeCapture"
|
||||
|
|
@ -1777,8 +1777,8 @@ mod tests {
|
|||
fn a_track_rendering_names_its_kind() {
|
||||
let room = [0xab; 32];
|
||||
let r = hex(&room);
|
||||
assert_eq!(track_kind(&format!("{r}-{}-video--0", hex(&[1; 32])), &room), Some(MediaKind::Video));
|
||||
assert_eq!(track_kind(&format!("{r}-_stage-screen--1"), &room), Some(MediaKind::Screen));
|
||||
assert_eq!(track_kind(&format!("{r}-{}-video--0", hex(&[1; 32])), &room), Some(TrackKind::Video));
|
||||
assert_eq!(track_kind(&format!("{r}-_stage-screen--1"), &room), Some(TrackKind::Screen));
|
||||
assert_eq!(track_kind(&format!("{r}-_stage-events--0"), &room), None);
|
||||
assert_eq!(track_kind(&format!("{r}-_stage-video--01"), &room), None);
|
||||
assert_eq!(track_kind(&format!("{}-_stage-video--0", hex(&[0xac; 32])), &room), None);
|
||||
|
|
|
|||
Loading…
Reference in a new issue