mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-12-23 10:30:40 +00:00
ts-jitterbuffer: set jbuf delay when instantiating it
The internal (C) jitterbuffer needs to know about the configured latency when calculating a PTS, as it otherwise may consider that the packet is too late, trigger a resync and cause the element to discard the packet altogether. I could not identify when this was broken, but the net effect was that in the current state, ts-jitterbuffer was discarding up to half of all the incoming packets.
This commit is contained in:
parent
05ece5560e
commit
943a138d49
1 changed files with 6 additions and 1 deletions
|
@ -1074,7 +1074,12 @@ impl TaskImpl for JitterBufferTask {
|
|||
self.sink_pad_handler.clear();
|
||||
|
||||
let jb = self.element.imp();
|
||||
*jb.state.lock().unwrap() = State::default();
|
||||
|
||||
let latency = jb.settings.lock().unwrap().latency;
|
||||
let state = State::default();
|
||||
|
||||
state.jbuf.set_delay(latency);
|
||||
*jb.state.lock().unwrap() = state;
|
||||
|
||||
gst::log!(CAT, obj: &self.element, "Task started");
|
||||
Ok(())
|
||||
|
|
Loading…
Reference in a new issue