call-stream: fix endpoint and jingle transport states mapping
Submitted by Fabrice Bellet
Assigned to Telepathy bugs list
Description
Created attachment 124875 call-stream: fix endpoint and jingle transport states mapping
The function _endpoint_state_changed_cb() passes an enum TpStreamEndpointState between tp_call_stream_endpoint_get_state() and wocky_jingle_content_set_transport_state() without conversion, this last function expecting an enum WockyJingleTransportState, which is not completely equivalent.
typedef enum { TP_STREAM_ENDPOINT_STATE_CONNECTING = 0, TP_STREAM_ENDPOINT_STATE_PROVISIONALLY_CONNECTED = 1, TP_STREAM_ENDPOINT_STATE_FULLY_CONNECTED = 2, TP_STREAM_ENDPOINT_STATE_EXHAUSTED_CANDIDATES = 3, TP_STREAM_ENDPOINT_STATE_FAILED = 4, } TpStreamEndpointState;
typedef enum { WOCKY_JINGLE_TRANSPORT_STATE_DISCONNECTED, WOCKY_JINGLE_TRANSPORT_STATE_CONNECTING, WOCKY_JINGLE_TRANSPORT_STATE_CONNECTED } WockyJingleTransportState;
The visible consequence is that jingle considers that the connection is established (and the media stream can start flowing) when the endpoint state is /fully/ connected (value 3 for both enums), instead of /provisionally/ connected only. This may have a significant impact when the state provisionally connected is reached very early, and the state fully connected takes much more time.
Patch 124875, "call-stream: fix endpoint and jingle transport states mapping":
1004-call-stream-fix-endpoint-and-jingle-transport-states.patch
Version: git master