cea608overlay: handle CLEAR status

+ log errors

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/754>
This commit is contained in:
Mathieu Duponchelle 2022-05-10 18:31:57 +02:00 committed by Sebastian Dröge
parent 3b6ab8f722
commit a3fad9e028

View file

@ -349,10 +349,11 @@ impl Cea608Overlay {
}
if Some(cc_type) == state.selected_field {
if let Ok(Status::Ready) = state
match state
.caption_frame
.decode((triple[1] as u16) << 8 | triple[2] as u16, 0.0)
{
Ok(Status::Ready) => {
let text = match state.caption_frame.to_text(true) {
Ok(text) => text,
Err(_) => {
@ -367,6 +368,19 @@ impl Cea608Overlay {
self.overlay_text(element, &text, state);
}
Ok(Status::Clear) => {
self.overlay_text(element, "", state);
}
Ok(Status::Ok) => (),
Err(err) => {
gst_error!(
CAT,
obj: pad,
"Failed to decode caption frame: {:?}",
err
);
}
}
self.reset_timeout(state, pts);
}