send SwitchDisplay using the same channel with VideoFrame
Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
parent
2b8a98da06
commit
ca7487350f
@ -165,18 +165,23 @@ impl Subscriber for ConnInner {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn send(&mut self, msg: Arc<Message>) {
|
fn send(&mut self, msg: Arc<Message>) {
|
||||||
match &msg.union {
|
// Send SwitchDisplay on the same channel as VideoFrame to avoid send order problems.
|
||||||
Some(message::Union::VideoFrame(_)) => {
|
let tx_by_video = match &msg.union {
|
||||||
self.tx_video.as_mut().map(|tx| {
|
Some(message::Union::VideoFrame(_)) => true,
|
||||||
allow_err!(tx.send((Instant::now(), msg)));
|
Some(message::Union::Misc(misc)) => match &misc.union {
|
||||||
});
|
Some(misc::Union::SwitchDisplay(_)) => true,
|
||||||
}
|
_ => false,
|
||||||
_ => {
|
},
|
||||||
self.tx.as_mut().map(|tx| {
|
_ => false,
|
||||||
allow_err!(tx.send((Instant::now(), msg)));
|
};
|
||||||
});
|
let tx = if tx_by_video {
|
||||||
}
|
self.tx_video.as_mut()
|
||||||
}
|
} else {
|
||||||
|
self.tx.as_mut()
|
||||||
|
};
|
||||||
|
tx.map(|tx| {
|
||||||
|
allow_err!(tx.send((Instant::now(), msg)));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user