ICE candidate negotiation process
Neil Young
foreverneilyoung at googlemail.com
Fri Jul 10 18:42:24 UTC 2020
Well, after SDP offer and answer and all ICE candidates have been sent and received I'm getting these callbacks in a row:
2020-07-10 20:39:06,132 df.py-INFO : ***ON ICE CONNECTION STATE <enum GST_WEBRTC_ICE_CONNECTION_STATE_NEW of type GstWebRTC.WebRTCICEConnectionState>
2020-07-10 20:39:06,132 df.py-INFO : ***ON ICE GATHERING STATE <enum GST_WEBRTC_ICE_GATHERING_STATE_NEW of type GstWebRTC.WebRTCICEGatheringState>
2020-07-10 20:39:06,152 df.py-INFO : ***ON ICE CONNECTION STATE <enum GST_WEBRTC_ICE_CONNECTION_STATE_NEW of type GstWebRTC.WebRTCICEConnectionState>
2020-07-10 20:39:06,197 df.py-INFO : ***ON ICE GATHERING STATE <enum GST_WEBRTC_ICE_GATHERING_STATE_NEW of type GstWebRTC.WebRTCICEGatheringState>
Is this correct?
The handler:
def on_ice_connection_state(self, _, param2):
self.logger.info("***ON ICE CONNECTION STATE {}".format(param2.default_value))
def on_ice_gathering_state(self, _, param2):
self.logger.info("***ON ICE GATHERING STATE {}".format(param2.default_value))
The setup:
self.webrtc.connect('notify::ice-connection-state', self.on_ice_connection_state)
self.webrtc.connect('notify::ice-gathering-state', self.on_ice_gathering_state)
> Am 10.07.2020 um 20:34 schrieb Neil Young <foreverneilyoung at googlemail.com>:
>
> Maybe like so:
>
>
> print("***ON ICE CONNECTION STATE {} {}".format(param1, param2.default_value))
>
> But it is not helpful, since it always just returns "STATE_NEW" on different callbacks...
>
> ***ON ICE CONNECTION STATE <__gi__.GstWebRTCBin object at 0x113cf34b0 (GstWebRTCBin at 0x7fa8c52ba220)> <enum GST_WEBRTC_ICE_CONNECTION_STATE_NEW of type GstWebRTC.WebRTCICEConnectionState>
> ***ON ICE CONNECTION STATE <__gi__.GstWebRTCBin object at 0x113cf34b0 (GstWebRTCBin at 0x7fa8c52ba220)> <enum GST_WEBRTC_ICE_CONNECTION_STATE_NEW of type GstWebRTC.WebRTCICEConnectionState>
>
>> Am 10.07.2020 um 20:29 schrieb Neil Young <foreverneilyoung at googlemail.com <mailto:foreverneilyoung at googlemail.com>>:
>>
>> A bit further:
>>
>> self.webrtc.connect('notify::ice-connection-state', self.on_ice_connection_state)
>>
>> and later:
>>
>>
>> def on_ice_connection_state(self, param1, param2):
>> print("***ON ICE CONNECTION STATE {} {}".format(param1, type(param2)))
>>
>> ***ON ICE CONNECTION STATE <__gi__.GstWebRTCBin object at 0x112639a00 (GstWebRTCBin at 0x7fe915310220)> <class 'gobject.GParamSpec'>
>>
>> But I can't currently figure out, what element of the "gobject.GParamSpec" contains the value. I can access "name", "nick", "blurb", "flags", but no value...
>>
>>
>>
>>
>>> Am 10.07.2020 um 12:20 schrieb Matthew Waters <ystreet00 at gmail.com <mailto:ystreet00 at gmail.com>>:
>>>
>>> I'm not aware of anything for this specific example, no. There are
>>> plenty of other examples regarding GObject notify signalling for other
>>> properties though.
>>>
>>> On 10/7/20 2:55 pm, Neil Young wrote:
>>>> Thanks Matthew. Are you aware of any sample code, demonstrating that for GStreamer and Python?
>>>>
>>>>
>>>>> 'ice-connection-state' and 'ice-gathering-state' on webrtcbin. Use the
>>>>> GObject notify signal to track changes.
>>>>>
>>>>>> On 10/7/20 3:36 am, Neil Young wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I'm wondering, if there would be kind of a status callback, which provides me the ICE negotiation state. I'm using the Python bindings of GStreamer.
>>>>>>
>>>>>> Regards
>>>>>>
>>>>>> _______________________________________________
>>>>>> gstreamer-devel mailing list
>>>>>> gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>>>>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>>>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200710/2078bef4/attachment-0001.htm>
More information about the gstreamer-devel
mailing list