Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2019-02-12 15:34:19 +0300
committerSebastian Dröge <sebastian@centricular.com>2019-02-12 15:34:19 +0300
commitaebbe8c39b5c6f1935daa77c81ca53d9717757cd (patch)
tree3958785113ca2dfbf2f7f99f437442d81fbdf3f1
parente8c58849313815f989f0b04408f695924494d53f (diff)
scc_parse: Don't send a new caps event for every new line
Only send new caps when the framerate has actually changed.
-rw-r--r--gst-plugin-closedcaption/src/scc_parse.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/gst-plugin-closedcaption/src/scc_parse.rs b/gst-plugin-closedcaption/src/scc_parse.rs
index b6d2d60d9..e15a05fd5 100644
--- a/gst-plugin-closedcaption/src/scc_parse.rs
+++ b/gst-plugin-closedcaption/src/scc_parse.rs
@@ -46,6 +46,7 @@ struct State {
parser: SccParser,
need_segment: bool,
pending_events: Vec<gst::Event>,
+ framerate: Option<gst::Fraction>,
start_position: gst::ClockTime,
last_position: gst::ClockTime,
last_timecode: Option<gst_video::ValidVideoTimeCode>,
@@ -58,6 +59,7 @@ impl Default for State {
parser: SccParser::new(),
need_segment: true,
pending_events: Vec::new(),
+ framerate: None,
start_position: gst::CLOCK_TIME_NONE,
last_position: gst::CLOCK_TIME_NONE,
last_timecode: None,
@@ -311,11 +313,14 @@ impl SccParse {
let mut events = Vec::new();
- let caps = gst::Caps::builder("closedcaption/x-cea-608")
- .field("format", &"raw")
- .field("framerate", &framerate)
- .build();
- events.push(gst::Event::new_caps(&caps).build());
+ if Some(framerate) != state.framerate {
+ let caps = gst::Caps::builder("closedcaption/x-cea-608")
+ .field("format", &"raw")
+ .field("framerate", &framerate)
+ .build();
+ events.push(gst::Event::new_caps(&caps).build());
+ state.framerate = Some(framerate);
+ }
if state.need_segment {
let segment = gst::FormattedSegment::<gst::format::Time>::new();