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

github.com/sdroege/gst-plugin-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'utils/fallbackswitch/src/fallbacksrc/imp.rs')
-rw-r--r--utils/fallbackswitch/src/fallbacksrc/imp.rs69
1 files changed, 34 insertions, 35 deletions
diff --git a/utils/fallbackswitch/src/fallbacksrc/imp.rs b/utils/fallbackswitch/src/fallbacksrc/imp.rs
index 7567fa64..7c011273 100644
--- a/utils/fallbackswitch/src/fallbacksrc/imp.rs
+++ b/utils/fallbackswitch/src/fallbacksrc/imp.rs
@@ -705,7 +705,7 @@ impl ObjectImpl for FallbackSrc {
fn constructed(&self) {
self.parent_constructed();
- let obj = self.instance();
+ let obj = self.obj();
obj.set_suppressed_flags(gst::ElementFlags::SOURCE | gst::ElementFlags::SINK);
obj.set_element_flags(gst::ElementFlags::SOURCE);
obj.set_bin_flags(gst::BinFlags::STREAMS_AWARE);
@@ -1016,7 +1016,7 @@ impl FallbackSrc {
let source = match source {
Source::Uri(ref uri) => {
let uri = self
- .instance()
+ .obj()
.emit_by_name::<glib::GString>("update-uri", &[uri]);
let source = gst::ElementFactory::make("uridecodebin3")
@@ -1070,7 +1070,7 @@ impl FallbackSrc {
imp.handle_source_pad_removed(pad, false);
});
- self.instance().add(&bin).unwrap();
+ self.obj().add(&bin).unwrap();
SourceBin {
source: bin,
@@ -1132,8 +1132,7 @@ impl FallbackSrc {
None => return,
Some(element) => element,
};
- let src = FallbackSrc::from_instance(&element);
-
+ let src = element.imp();
src.handle_source_pad_removed(pad, true);
});
@@ -1144,7 +1143,7 @@ impl FallbackSrc {
// possible errors and retry, without causing the whole bin state change to fail
bin.set_locked_state(true);
- self.instance().add(&bin).unwrap();
+ self.obj().add(&bin).unwrap();
Some(SourceBin {
source: bin,
@@ -1175,7 +1174,7 @@ impl FallbackSrc {
.build()
.expect("No fallbackswitch found");
- self.instance().add(&switch).unwrap();
+ self.obj().add(&switch).unwrap();
let dummy_srcpad = dummy_source.static_pad("src").unwrap();
let dummy_sinkpad = switch.request_pad_simple("sink_%u").unwrap();
@@ -1197,7 +1196,7 @@ impl FallbackSrc {
let srcpad = switch.static_pad("src").unwrap();
let templ = self
- .instance()
+ .obj()
.pad_template(if is_audio { "audio" } else { "video" })
.unwrap();
let ghostpad = gst::GhostPad::builder_with_template(&templ, Some(&templ.name()))
@@ -1216,7 +1215,7 @@ impl FallbackSrc {
let _ = ghostpad.set_active(true);
- self.instance().add_pad(&ghostpad).unwrap();
+ self.obj().add_pad(&ghostpad).unwrap();
Stream {
main_branch: None,
@@ -1271,7 +1270,7 @@ impl FallbackSrc {
&settings.fallback_video_caps,
settings.min_latency,
);
- self.instance().add(&video_dummy_source).unwrap();
+ self.obj().add(&video_dummy_source).unwrap();
let stream = self.create_stream(
settings.timeout,
@@ -1294,7 +1293,7 @@ impl FallbackSrc {
&settings.fallback_audio_caps,
settings.min_latency,
);
- self.instance().add(&audio_dummy_source).unwrap();
+ self.obj().add(&audio_dummy_source).unwrap();
let stream = self.create_stream(
settings.timeout,
@@ -1332,9 +1331,9 @@ impl FallbackSrc {
drop(state_guard);
- self.instance().no_more_pads();
+ self.obj().no_more_pads();
- self.instance().notify("status");
+ self.obj().notify("status");
gst::debug!(CAT, imp: self, "Started");
Ok(())
@@ -1349,7 +1348,7 @@ impl FallbackSrc {
};
drop(state_guard);
- self.instance().notify("status");
+ self.obj().notify("status");
// In theory all streams should've been removed from the source's pad-removed signal
// handler when going from Paused to Ready but better safe than sorry here
@@ -1357,7 +1356,7 @@ impl FallbackSrc {
.iter()
.filter_map(|v| v.as_ref())
{
- let element = self.instance();
+ let element = self.obj();
for branch in [&stream.main_branch, &stream.fallback_branch]
.iter()
@@ -1395,7 +1394,7 @@ impl FallbackSrc {
.iter_mut()
.flatten()
{
- self.instance().remove(&source.source).unwrap();
+ self.obj().remove(&source.source).unwrap();
if let Some(timeout) = source.pending_restart_timeout.take() {
timeout.unschedule();
@@ -1418,7 +1417,7 @@ impl FallbackSrc {
.flatten()
{
let _ = source.set_state(gst::State::Null);
- self.instance().remove(source).unwrap();
+ self.obj().remove(source).unwrap();
}
gst::debug!(CAT, imp: self, "Stopped");
@@ -1471,7 +1470,7 @@ impl FallbackSrc {
let source = source.source.clone();
drop(state_guard);
- self.instance().notify("status");
+ self.obj().notify("status");
let res = source.set_state(transition.next());
match res {
@@ -1493,7 +1492,7 @@ impl FallbackSrc {
fallback_source,
);
drop(state_guard);
- self.instance().notify("statistics");
+ self.obj().notify("statistics");
}
}
Ok(res) => {
@@ -1560,7 +1559,7 @@ impl FallbackSrc {
pad: &gst::ProxyPad,
buffer: gst::Buffer,
) -> Result<gst::FlowSuccess, gst::FlowError> {
- let res = gst::ProxyPad::chain_default(pad, Some(&*self.instance()), buffer);
+ let res = gst::ProxyPad::chain_default(pad, Some(&*self.obj()), buffer);
let mut state_guard = self.state.lock();
let state = match &mut *state_guard {
@@ -1998,7 +1997,7 @@ impl FallbackSrc {
});
drop(state_guard);
- self.instance().notify("status");
+ self.obj().notify("status");
Ok(())
}
@@ -2189,7 +2188,7 @@ impl FallbackSrc {
gst::debug!(CAT, imp: self, "Live source, unblocking directly");
drop(state_guard);
- self.instance().notify("status");
+ self.obj().notify("status");
return Ok(());
}
@@ -2236,13 +2235,13 @@ impl FallbackSrc {
self.unblock_pads(state, fallback_source);
drop(state_guard);
- self.instance().notify("status");
+ self.obj().notify("status");
Ok(())
}
fn unblock_pads(&self, state: &mut State, fallback_source: bool) {
- let current_running_time = match self.instance().current_running_time() {
+ let current_running_time = match self.obj().current_running_time() {
Some(current_running_time) => current_running_time,
None => {
gst::debug!(CAT, imp: self, "Waiting for current_running_time");
@@ -2590,7 +2589,7 @@ impl FallbackSrc {
self.unblock_pads(state, fallback_source);
drop(state_guard);
- self.instance().notify("status");
+ self.obj().notify("status");
}
fn handle_buffering(&self, m: &gst::message::Buffering) {
@@ -2683,8 +2682,8 @@ impl FallbackSrc {
}
drop(state_guard);
- self.instance().notify("status");
- self.instance().notify("statistics");
+ self.obj().notify("status");
+ self.obj().notify("statistics");
}
fn handle_streams_selected(&self, m: &gst::message::StreamsSelected) {
@@ -2767,7 +2766,7 @@ impl FallbackSrc {
self.unblock_pads(state, fallback_source);
drop(state_guard);
- self.instance().notify("status");
+ self.obj().notify("status");
}
fn handle_error(&self, m: &gst::message::Error) -> bool {
@@ -2794,8 +2793,8 @@ impl FallbackSrc {
if src == state.source.source || src.has_as_ancestor(&state.source.source) {
self.handle_source_error(state, RetryReason::Error, false);
drop(state_guard);
- self.instance().notify("status");
- self.instance().notify("statistics");
+ self.obj().notify("status");
+ self.obj().notify("statistics");
return true;
}
@@ -2804,8 +2803,8 @@ impl FallbackSrc {
if src == source.source || src.has_as_ancestor(&source.source) {
self.handle_source_error(state, RetryReason::Error, true);
drop(state_guard);
- self.instance().notify("status");
- self.instance().notify("statistics");
+ self.obj().notify("status");
+ self.obj().notify("statistics");
return true;
}
}
@@ -2887,7 +2886,7 @@ impl FallbackSrc {
}
let source_weak = source.source.downgrade();
- self.instance().call_async(move |element| {
+ self.obj().call_async(move |element| {
let imp = element.imp();
let source = match source_weak.upgrade() {
@@ -3299,7 +3298,7 @@ impl FallbackSrc {
);
let timeout = clock.new_single_shot_id(wait_time);
- let element_weak = self.instance().downgrade();
+ let element_weak = self.obj().downgrade();
timeout
.wait_async(move |_clock, _time, _id| {
let element = match element_weak.upgrade() {
@@ -3469,7 +3468,7 @@ impl FallbackSrc {
}
drop(state_guard);
- self.instance().notify("status");
+ self.obj().notify("status");
}
fn stats(&self) -> gst::Structure {