cdg: cdgdec: reset interpreter when flushing

Prevent visual artifacts from the previous position when seeking to a
not keyframe.

Dumping cdg_renderer version as we need the new reset API.
This commit is contained in:
Guillaume Desmottes 2019-06-08 12:15:56 +05:30
parent 28e3e3199c
commit 119afdde2a
2 changed files with 9 additions and 1 deletions

View file

@ -14,7 +14,7 @@ gstreamer-base = { git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs"
gstreamer-video = { git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", features = ["v1_12"] }
gstreamer-app = { git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" }
cdg = "0.1"
cdg_renderer = "0.3"
cdg_renderer = "0.4"
image = "0.22"
muldiv = "0.2"
lazy_static = "1.0"

View file

@ -214,6 +214,14 @@ impl VideoDecoderImpl for CdgDec {
self.parent_decide_allocation(element, query)
}
fn flush(&self, element: &gst_video::VideoDecoder) -> bool {
gst_debug!(CAT, obj: element, "flushing, reset CDG interpreter");
let mut cdg_inter = self.cdg_inter.lock().unwrap();
cdg_inter.reset(false);
true
}
}
pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> {