trouble setting custom signaller::uri in C++
Describe your issue
I'm trying to set the signaller::uri property in C++ but I get g_object_set_is_valid_property: property 'signaller' of object class 'GstWebRTCSink' is not writable
error
// setup
webrtcsink = gst_element_factory_make("webrtcsink", "webrtcsink");
// I've tried setting the signaller property directly
g_object_set(G_OBJECT(webrtcsink), "signaller",
gst_structure_from_string(("signaller,uri=ws://127.0.0.1:" + webrtc_signalling_server_port).c_str(), NULL), NULL);
// and I've tried doing something like this which gave me a strange UTF-8 error in Rust
GObject *signaller;
// Get the signaller object from the webrtcsink element
g_object_get(webrtcsink, "signaller", &signaller, NULL);
if (!signaller) {
g_printerr("Failed to get signaller object\n");
g_object_unref(signaller);
return -1;
}
g_object_set(signaller, "uri",
gst_structure_from_string(("ws://127.0.0.1:" + webrtc_signalling_server_port).c_str(), NULL), NULL);
g_object_unref(signaller);
Expected Behavior
I'm able to set the signaller::uri property just like you can in gst terminal pipelines
Observed Behavior
I get an error explaining that signaller::uri is readonly, which is true from the docs.
Setup
- Operating System: Ubuntu 23.10
- Device: podman container
- gst-plugins-rs Version: main as of Feb 14, 2024
- GStreamer Version: 1.22.10
- Command line: