roundedcorners: Panics when updating radius-px property at runtime
0:00:01.634596807 2256598 0x55b1fcd24cc0 INFO roundedcorners video/videofx/src/border/roundedcorners.rs:308:gstvideofx::border::roundedcorners:<rc> Changing border radius from 0 to 4
0:00:01.658060203 2256598 0x55b1fcf099e0 DEBUG roundedcorners video/videofx/src/border/roundedcorners.rs:463:gstvideofx::border::roundedcorners:<rc> Transformed caps from video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive to video/x-raw, format=(string){ A420, I420 }, width=(int)1280, height=(int)720, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive in direction Sink
0:00:01.658260803 2256598 0x55b1fcf099e0 DEBUG roundedcorners video/videofx/src/border/roundedcorners.rs:534:gstvideofx::border::roundedcorners:<rc> Caps or border radius changed, generating alpha mask
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', video/videofx/src/border/roundedcorners.rs:118:37
stack backtrace:
0: rust_begin_unwind
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/panicking.rs:143:14
2: core::panicking::panic
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/panicking.rs:48:5
3: core::option::Option<T>::unwrap
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/option.rs:755:21
4: gstvideofx::border::roundedcorners::RoundedCorners::generate_alpha_mask
at /var/home/phil/dev/rust/gst-plugins-rs/video/videofx/src/border/roundedcorners.rs:118:23
5: <gstvideofx::border::roundedcorners::RoundedCorners as gstreamer_base::subclass::base_transform::BaseTransformImpl>::prepare_output_buffer
at /var/home/phil/dev/rust/gst-plugins-rs/video/videofx/src/border/roundedcorners.rs:549:24
6: gstreamer_base::subclass::base_transform::base_transform_prepare_output_buffer::{{closure}}
at /var/home/phil/.cargo-home/git/checkouts/gstreamer-rs-79e52a2d27eb91a3/c61d913/gstreamer-base/src/subclass/base_transform.rs:1197:15
7: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/panic/unwind_safe.rs:271:9
8: std::panicking::try::do_call
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:492:40
9: std::panicking::try
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:456:19
10: std::panic::catch_unwind
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panic.rs:137:14
11: gstreamer_base::subclass::base_transform::base_transform_prepare_output_buffer
at /var/home/phil/.cargo-home/git/checkouts/gstreamer-rs-79e52a2d27eb91a3/c61d913/gstreamer-base/src/subclass/base_transform.rs:1196:5
12: default_generate_output
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2163:9
13: <T as gstreamer_base::subclass::base_transform::BaseTransformImplExt>::parent_generate_output
at /var/home/phil/.cargo-home/git/checkouts/gstreamer-rs-79e52a2d27eb91a3/c61d913/gstreamer-base/src/subclass/base_transform.rs:864:45
14: gstreamer_base::subclass::base_transform::BaseTransformImpl::generate_output
at /var/home/phil/.cargo-home/git/checkouts/gstreamer-rs-79e52a2d27eb91a3/c61d913/gstreamer-base/src/subclass/base_transform.rs:190:9
15: gstreamer_base::subclass::base_transform::base_transform_generate_output::{{closure}}
at /var/home/phil/.cargo-home/git/checkouts/gstreamer-rs-79e52a2d27eb91a3/c61d913/gstreamer-base/src/subclass/base_transform.rs:1450:15
16: core::ops::function::FnOnce::call_once
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/ops/function.rs:227:5
17: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/panic/unwind_safe.rs:271:9
18: std::panicking::try::do_call
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:492:40
19: std::panicking::try
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:456:19
20: std::panic::catch_unwind
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panic.rs:137:14
21: gstreamer_base::subclass::base_transform::base_transform_generate_output
at /var/home/phil/.cargo-home/git/checkouts/gstreamer-rs-79e52a2d27eb91a3/c61d913/gstreamer-base/src/subclass/base_transform.rs:1449:5
22: gst_base_transform_chain
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2345:11
23: gst_pad_chain_data_unchecked
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4444:11
24: gst_pad_push_data
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4708:9
25: gst_pad_push
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4827:9
26: gst_base_transform_chain
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2381:15
27: gst_pad_chain_data_unchecked
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4444:11
28: gst_pad_push_data
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4708:9
29: gst_pad_push
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4827:9
30: gst_base_transform_chain
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/libs/gst/base/gstbasetransform.c:2381:15
31: gst_pad_chain_data_unchecked
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4444:11
32: gst_pad_push_data
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4708:9
33: gst_pad_push
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gstpad.c:4827:9
34: gst_base_src_loop
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/libs/gst/base/gstbasesrc.c:3030:11
35: gst_task_func
at /var/home/phil/gstreamer/build/../subprojects/gstreamer/gst/gsttask.c:384:5
36: g_thread_pool_thread_proxy
at /usr/src/debug/glib2-2.72.1-1.fc36.x86_64/redhat-linux-build/../glib/gthreadpool.c:354:15
37: g_thread_proxy
at /usr/src/debug/glib2-2.72.1-1.fc36.x86_64/redhat-linux-build/../glib/gthread.c:827:20
38: start_thread
39: clone3
so the alpha mem stored in state is not writable (AFAIU), likely because its refcount is > 1
.