diff options
author | Mathieu Duponchelle <mathieu@centricular.com> | 2023-08-01 01:28:52 +0300 |
---|---|---|
committer | Mathieu Duponchelle <mathieu@centricular.com> | 2023-08-01 01:28:52 +0300 |
commit | 9680805bdb08076db1450ca717e6a0bb51fc468e (patch) | |
tree | 55df5ff7e95431a892bcfceaf021e0cdb005296d /net | |
parent | dbeb65da06a182ab79811425c5dcbb11bc819bf9 (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.rs | 10 |
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 * |