From 7ba0073052c81c8f2f1ebe500048ed6d974e81d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Laignel?= Date: Wed, 10 May 2023 17:02:08 +0200 Subject: use Pad builders for optional name definition Also, apply auto-naming in the following cases * When building from a non wildcard-named template, the name of the template is automatically assigned to the Pad. User can override with a specific name by calling `name()` on the `PadBuilder`. * When building with a target and no name was provided via the above, the GhostPad is named after the target. See https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/issues/448 Auto-naming discussion: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1255#note_1891181 Part-of: --- generic/sodium/src/decrypter/imp.rs | 4 ++-- generic/sodium/src/encrypter/imp.rs | 4 ++-- generic/threadshare/examples/standalone/sink/async_mutex/imp.rs | 2 +- generic/threadshare/examples/standalone/sink/sync_mutex/imp.rs | 2 +- generic/threadshare/examples/standalone/sink/task/imp.rs | 2 +- generic/threadshare/examples/standalone/src/imp.rs | 2 +- generic/threadshare/src/appsrc/imp.rs | 2 +- generic/threadshare/src/audiotestsrc/imp.rs | 2 +- generic/threadshare/src/inputselector/imp.rs | 7 ++++--- generic/threadshare/src/jitterbuffer/imp.rs | 4 ++-- generic/threadshare/src/proxy/imp.rs | 4 ++-- generic/threadshare/src/queue/imp.rs | 4 ++-- generic/threadshare/src/tcpclientsrc/imp.rs | 2 +- generic/threadshare/src/udpsink/imp.rs | 2 +- generic/threadshare/src/udpsrc/imp.rs | 2 +- generic/threadshare/tests/pad.rs | 4 ++-- 16 files changed, 25 insertions(+), 24 deletions(-) (limited to 'generic') diff --git a/generic/sodium/src/decrypter/imp.rs b/generic/sodium/src/decrypter/imp.rs index f722314ed..794e0d5aa 100644 --- a/generic/sodium/src/decrypter/imp.rs +++ b/generic/sodium/src/decrypter/imp.rs @@ -526,10 +526,10 @@ impl ObjectSubclass for Decrypter { fn with_class(klass: &Self::Class) -> Self { let templ = klass.pad_template("sink").unwrap(); - let sinkpad = gst::Pad::from_template(&templ, Some("sink")); + let sinkpad = gst::Pad::from_template(&templ); let templ = klass.pad_template("src").unwrap(); - let srcpad = gst::Pad::builder_with_template(&templ, Some("src")) + let srcpad = gst::Pad::builder_from_template(&templ) .getrange_function(|pad, parent, offset, buffer, size| { Decrypter::catch_panic_pad_function( parent, diff --git a/generic/sodium/src/encrypter/imp.rs b/generic/sodium/src/encrypter/imp.rs index af99edde6..b6560e0f7 100644 --- a/generic/sodium/src/encrypter/imp.rs +++ b/generic/sodium/src/encrypter/imp.rs @@ -329,7 +329,7 @@ impl ObjectSubclass for Encrypter { fn with_class(klass: &Self::Class) -> Self { let templ = klass.pad_template("sink").unwrap(); - let sinkpad = gst::Pad::builder_with_template(&templ, Some("sink")) + let sinkpad = gst::Pad::builder_from_template(&templ) .chain_function(|pad, parent, buffer| { Encrypter::catch_panic_pad_function( parent, @@ -347,7 +347,7 @@ impl ObjectSubclass for Encrypter { .build(); let templ = klass.pad_template("src").unwrap(); - let srcpad = gst::Pad::builder_with_template(&templ, Some("src")) + let srcpad = gst::Pad::builder_from_template(&templ) .query_function(|pad, parent, query| { Encrypter::catch_panic_pad_function( parent, diff --git a/generic/threadshare/examples/standalone/sink/async_mutex/imp.rs b/generic/threadshare/examples/standalone/sink/async_mutex/imp.rs index b909ab48c..75613181f 100644 --- a/generic/threadshare/examples/standalone/sink/async_mutex/imp.rs +++ b/generic/threadshare/examples/standalone/sink/async_mutex/imp.rs @@ -241,7 +241,7 @@ impl ObjectSubclass for AsyncMutexSink { let sink_pad_handler = AsyncPadSinkHandler::default(); Self { sink_pad: PadSink::new( - gst::Pad::from_template(&klass.pad_template("sink").unwrap(), Some("sink")), + gst::Pad::from_template(&klass.pad_template("sink").unwrap()), sink_pad_handler.clone(), ), sink_pad_handler, diff --git a/generic/threadshare/examples/standalone/sink/sync_mutex/imp.rs b/generic/threadshare/examples/standalone/sink/sync_mutex/imp.rs index bef18db1e..18957e402 100644 --- a/generic/threadshare/examples/standalone/sink/sync_mutex/imp.rs +++ b/generic/threadshare/examples/standalone/sink/sync_mutex/imp.rs @@ -234,7 +234,7 @@ impl ObjectSubclass for DirectSink { let sink_pad_handler = SyncPadSinkHandler::default(); Self { sink_pad: PadSink::new( - gst::Pad::from_template(&klass.pad_template("sink").unwrap(), Some("sink")), + gst::Pad::from_template(&klass.pad_template("sink").unwrap()), sink_pad_handler.clone(), ), sink_pad_handler, diff --git a/generic/threadshare/examples/standalone/sink/task/imp.rs b/generic/threadshare/examples/standalone/sink/task/imp.rs index 3979a0e35..1ac869652 100644 --- a/generic/threadshare/examples/standalone/sink/task/imp.rs +++ b/generic/threadshare/examples/standalone/sink/task/imp.rs @@ -305,7 +305,7 @@ impl ObjectSubclass for TaskSink { fn with_class(klass: &Self::Class) -> Self { Self { sink_pad: PadSink::new( - gst::Pad::from_template(&klass.pad_template("sink").unwrap(), Some("sink")), + gst::Pad::from_template(&klass.pad_template("sink").unwrap()), TaskPadSinkHandler, ), task: Task::default(), diff --git a/generic/threadshare/examples/standalone/src/imp.rs b/generic/threadshare/examples/standalone/src/imp.rs index ba397d2f8..821025f9c 100644 --- a/generic/threadshare/examples/standalone/src/imp.rs +++ b/generic/threadshare/examples/standalone/src/imp.rs @@ -318,7 +318,7 @@ impl ObjectSubclass for TestSrc { fn with_class(klass: &Self::Class) -> Self { Self { src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), TestSrcPadHandler, ), task: Task::default(), diff --git a/generic/threadshare/src/appsrc/imp.rs b/generic/threadshare/src/appsrc/imp.rs index ceb79201c..10e5c9637 100644 --- a/generic/threadshare/src/appsrc/imp.rs +++ b/generic/threadshare/src/appsrc/imp.rs @@ -432,7 +432,7 @@ impl ObjectSubclass for AppSrc { fn with_class(klass: &Self::Class) -> Self { Self { src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), AppSrcPadHandler, ), task: Task::default(), diff --git a/generic/threadshare/src/audiotestsrc/imp.rs b/generic/threadshare/src/audiotestsrc/imp.rs index c48f56fa4..a628c1930 100644 --- a/generic/threadshare/src/audiotestsrc/imp.rs +++ b/generic/threadshare/src/audiotestsrc/imp.rs @@ -543,7 +543,7 @@ impl ObjectSubclass for AudioTestSrc { fn with_class(klass: &Self::Class) -> Self { Self { src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), AudioTestSrcPadHandler, ), task: Task::default(), diff --git a/generic/threadshare/src/inputselector/imp.rs b/generic/threadshare/src/inputselector/imp.rs index 0455f2271..81cf5cd33 100644 --- a/generic/threadshare/src/inputselector/imp.rs +++ b/generic/threadshare/src/inputselector/imp.rs @@ -355,7 +355,7 @@ impl ObjectSubclass for InputSelector { fn with_class(klass: &Self::Class) -> Self { Self { src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), InputSelectorPadSrcHandler, ), state: Mutex::new(State::default()), @@ -545,8 +545,9 @@ impl ElementImpl for InputSelector { ) -> Option { let mut state = self.state.lock().unwrap(); let mut pads = self.pads.lock().unwrap(); - let sink_pad = - gst::Pad::from_template(templ, Some(format!("sink_{}", pads.pad_serial).as_str())); + let sink_pad = gst::Pad::builder_from_template(templ) + .name(format!("sink_{}", pads.pad_serial).as_str()) + .build(); pads.pad_serial += 1; sink_pad.set_active(true).unwrap(); self.obj().add_pad(&sink_pad).unwrap(); diff --git a/generic/threadshare/src/jitterbuffer/imp.rs b/generic/threadshare/src/jitterbuffer/imp.rs index 881d68444..b5b515136 100644 --- a/generic/threadshare/src/jitterbuffer/imp.rs +++ b/generic/threadshare/src/jitterbuffer/imp.rs @@ -1302,11 +1302,11 @@ impl ObjectSubclass for JitterBuffer { Self { sink_pad: PadSink::new( - gst::Pad::from_template(&klass.pad_template("sink").unwrap(), Some("sink")), + gst::Pad::from_template(&klass.pad_template("sink").unwrap()), sink_pad_handler.clone(), ), src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), src_pad_handler.clone(), ), sink_pad_handler, diff --git a/generic/threadshare/src/proxy/imp.rs b/generic/threadshare/src/proxy/imp.rs index 04acca05a..505374147 100644 --- a/generic/threadshare/src/proxy/imp.rs +++ b/generic/threadshare/src/proxy/imp.rs @@ -542,7 +542,7 @@ impl ObjectSubclass for ProxySink { fn with_class(klass: &Self::Class) -> Self { Self { sink_pad: PadSink::new( - gst::Pad::from_template(&klass.pad_template("sink").unwrap(), Some("sink")), + gst::Pad::from_template(&klass.pad_template("sink").unwrap()), ProxySinkPadHandler, ), proxy_ctx: Mutex::new(None), @@ -1045,7 +1045,7 @@ impl ObjectSubclass for ProxySrc { fn with_class(klass: &Self::Class) -> Self { Self { src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), ProxySrcPadHandler, ), task: Task::default(), diff --git a/generic/threadshare/src/queue/imp.rs b/generic/threadshare/src/queue/imp.rs index 71cc631da..cc528763c 100644 --- a/generic/threadshare/src/queue/imp.rs +++ b/generic/threadshare/src/queue/imp.rs @@ -631,11 +631,11 @@ impl ObjectSubclass for Queue { fn with_class(klass: &Self::Class) -> Self { Self { sink_pad: PadSink::new( - gst::Pad::from_template(&klass.pad_template("sink").unwrap(), Some("sink")), + gst::Pad::from_template(&klass.pad_template("sink").unwrap()), QueuePadSinkHandler, ), src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), QueuePadSrcHandler, ), task: Task::default(), diff --git a/generic/threadshare/src/tcpclientsrc/imp.rs b/generic/threadshare/src/tcpclientsrc/imp.rs index cbbf2505f..ee6c18d63 100644 --- a/generic/threadshare/src/tcpclientsrc/imp.rs +++ b/generic/threadshare/src/tcpclientsrc/imp.rs @@ -485,7 +485,7 @@ impl ObjectSubclass for TcpClientSrc { fn with_class(klass: &Self::Class) -> Self { Self { src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), TcpClientSrcPadHandler, ), task: Task::default(), diff --git a/generic/threadshare/src/udpsink/imp.rs b/generic/threadshare/src/udpsink/imp.rs index 770532356..138d15e9c 100644 --- a/generic/threadshare/src/udpsink/imp.rs +++ b/generic/threadshare/src/udpsink/imp.rs @@ -848,7 +848,7 @@ impl ObjectSubclass for UdpSink { let sink_pad_handler = UdpSinkPadHandler::default(); Self { sink_pad: PadSink::new( - gst::Pad::from_template(&klass.pad_template("sink").unwrap(), Some("sink")), + gst::Pad::from_template(&klass.pad_template("sink").unwrap()), sink_pad_handler.clone(), ), sink_pad_handler, diff --git a/generic/threadshare/src/udpsrc/imp.rs b/generic/threadshare/src/udpsrc/imp.rs index cfd95de8f..18f9d0a87 100644 --- a/generic/threadshare/src/udpsrc/imp.rs +++ b/generic/threadshare/src/udpsrc/imp.rs @@ -620,7 +620,7 @@ impl ObjectSubclass for UdpSrc { fn with_class(klass: &Self::Class) -> Self { Self { src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), UdpSrcPadHandler, ), task: Task::default(), diff --git a/generic/threadshare/tests/pad.rs b/generic/threadshare/tests/pad.rs index c99f6a3ba..406b15034 100644 --- a/generic/threadshare/tests/pad.rs +++ b/generic/threadshare/tests/pad.rs @@ -282,7 +282,7 @@ mod imp_src { fn with_class(klass: &Self::Class) -> Self { ElementSrcTest { src_pad: PadSrc::new( - gst::Pad::from_template(&klass.pad_template("src").unwrap(), Some("src")), + gst::Pad::from_template(&klass.pad_template("src").unwrap()), PadSrcTestHandler, ), task: Task::default(), @@ -575,7 +575,7 @@ mod imp_sink { fn with_class(klass: &Self::Class) -> Self { ElementSinkTest { sink_pad: PadSink::new( - gst::Pad::from_template(&klass.pad_template("sink").unwrap(), Some("sink")), + gst::Pad::from_template(&klass.pad_template("sink").unwrap()), PadSinkTestHandler, ), flushing: AtomicBool::new(true), -- cgit v1.2.3