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
path: root/net
diff options
context:
space:
mode:
authorMathieu Duponchelle <mathieu@centricular.com>2023-08-01 01:28:52 +0300
committerMathieu Duponchelle <mathieu@centricular.com>2023-08-01 01:28:52 +0300
commit9680805bdb08076db1450ca717e6a0bb51fc468e (patch)
tree55df5ff7e95431a892bcfceaf021e0cdb005296d /net
parentdbeb65da06a182ab79811425c5dcbb11bc819bf9 (diff)
webrtcsink: don't forget to setup encoders for discoveries
The "encoder-setup" signal must also be emitted for the encoders used in discovery pipelines in order for the default settings to be applied. This otherwise meant that for instance the x264 encoder would use a 60 frames latency, greatly delaying startup. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1289>
Diffstat (limited to 'net')
-rw-r--r--net/webrtc/src/webrtcsink/imp.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/net/webrtc/src/webrtcsink/imp.rs b/net/webrtc/src/webrtcsink/imp.rs
index e670e7bbc..ed1ed0f04 100644
--- a/net/webrtc/src/webrtcsink/imp.rs
+++ b/net/webrtc/src/webrtcsink/imp.rs
@@ -2804,6 +2804,13 @@ impl BaseWebRTCSink {
}
let encoding_chain = encoding_chain_builder.build(&pipe.0, &encoding_chain_src)?;
+ if let Some(ref enc) = encoding_chain.encoder {
+ element.emit_by_name::<bool>(
+ "encoder-setup",
+ &[&"discovery".to_string(), &stream_name, &enc],
+ );
+ }
+
let sink = gst_app::AppSink::builder()
.callbacks(
gst_app::AppSinkCallbacks::builder()
@@ -3493,7 +3500,8 @@ impl ObjectImpl for BaseWebRTCSink {
.build(),
/**
* RsBaseWebRTCSink::encoder-setup:
- * @consumer_id: Identifier of the consumer
+ * @consumer_id: Identifier of the consumer, or "discovery"
+ * when the encoder is used in a discovery pipeline.
* @pad_name: The name of the corresponding input pad
* @encoder: The constructed encoder
*