TURN relay in python - nice transmitter

Skorpeo Skorpeo skorpeo11 at gmail.com
Mon Nov 8 15:17:23 UTC 2021


Hello,

Thank you for the quick response!  I spent more time this morning and got a
little further and I had also tried that but it didn't work:/

When I do stream.set_transmitter_ht('nice', {'relay-info':
[relay_structure]}) I get error:

gi.repository.GLib.Error: fs-error: Invalid type of argument relay-info for
transmitter nice (100)

I confirm that this is what I am passing in:
{'relay-info': [<Gst.Structure object at 0x111fb5b80 (GstStructure at
0x7f9d58741bd0)>]}

I was able to get the function to accept the following:

{'relay-info': GLib.PtrArray()}
{'relay-info': GObject.Value(GLib.PtrArray)}

both of which are meaningless because I haven't figured out a way of
putting values in there.

{'relay-info': relay_structure} also doesn't work

I also tried various things like:

value = GObject.Value(GLib.PtrArray)
value.set_value([relay_structure]) #also doesn't work

value = GObject.Value(GLib.PtrArray)
value.set_instance([relay_structure]) #also doesn't work

I also tried other things none of which got me to the promised land.

It seems I have to somehow instantiate a GLib.PtrArray in python but there
appears to be no facility for that and the function doesn't seem to accept
a python list as equivalent?

Your input is greatly appreciated
Many thanks

On Mon, Nov 8, 2021 at 3:19 PM Olivier Crête <olivier.crete at collabora.com>
wrote:

> Hi,
>
> I believe you need to put it in an array in a dict. So something like
>
> stream.set_transmitter_ht(trans, {'relay-info', [relay_structure]})
>
> You can put other parametes inside the dict.
> You can also put multiple relays inside the array.
>
> Olivier
>
>
> On Mon, 2021-11-08 at 00:01 +0100, Skorpeo Skorpeo wrote:
> > Hi,
> >
> > How can I add TURN server info for a nice transmitter in python for
> > Farstream?  I have tried different things but to no avail.  I am not
> > sure how to get a hold of the transmitter itself or to pass it
> > parameters initially.  Right now local candidates generated are only
> > of type "host".
> >
> > I use the function stream.set_transmitter("nice") which appears to
> > also allow for a parameter argument.  I can get as far as:
> >
> > relay_structure = Gst.Structure.new_empty("relay-info")
> > relay_structure.set_value("ip", "123.45.678.999")
> > relay_structure.set_value("port", 3478)
> > relay_structure.set_value("username", "user1")
> > relay_structure.set_value("password", "user1pwd")
> > relay_structure.set_value("relay-type", "udp")
> >
> > but I am not sure how to pass this parameter to
> > stream.set_transmitter() or stream.set_transmitter_ht().
> >
> > I also see the function nice_agent_set_relay_info in the source but I
> > am not sure how to use it or access it in python.
> >
> > I would also like to add STUN but just trying to figure out TURN
> > first...
> >
> > Any help would be massively appreciated!
> >
> > Thanks!
> >
> >
>
> --
> Olivier Crête
> olivier.crete at collabora.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/farstream-devel/attachments/20211108/5549417a/attachment.htm>


More information about the Farstream-devel mailing list