webrtc_private: Have internal states in handle 19/251019/2
authorSangchul Lee <sc11.lee@samsung.com>
Thu, 7 Jan 2021 02:47:46 +0000 (11:47 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Mon, 18 Jan 2021 03:32:10 +0000 (12:32 +0900)
Signaling state, peer connection state, ice connection state and
ice gathering state are defined as internal state.
The last states of those are kept in webrtc handle.

[Version] 0.1.79
[Issue Type] Improvement

Change-Id: I89b4ac5306ea6e111640199dc5f62989f35e3b41
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
include/webrtc_private.h
packaging/capi-media-webrtc.spec
src/webrtc_private.c

index 96580831f4e597b675da23967abadbe6e0b7289f..9f230d976c4a29fc03c0a9f9d8f42fcb81b6cbaa 100644 (file)
@@ -290,6 +290,13 @@ typedef struct _webrtc_s {
        webrtc_callbacks_s ice_candidate_cb;
        webrtc_callbacks_s track_added_cb;
        webrtc_callbacks_s data_channel_cb;
+
+       struct {
+               const gchar *signaling_state;
+               const gchar *peer_connection_state;
+               const gchar *ice_connection_state;
+               const gchar *ice_gathering_state;
+       } internal_states;
 } webrtc_s;
 
 typedef struct _webrtc_data_channel_s {
index 1bdc65d7025781916e493a80b6a0cb0c889a4eb7..72b1baab247d05f9e18d81ff315104ab216d4917 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    0.1.78
+Version:    0.1.79
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index afeb3da6dfc16f0572eaaf2d6c9473d049ce21db..4f00b58439da3952eedc6dd690ddf307b74451ec 100644 (file)
@@ -557,6 +557,8 @@ static void __webrtcbin_peer_connection_state_cb(GstElement *webrtcbin, GParamSp
        }
 
        LOG_DEBUG("[PeerConnectionState] is changed to [%s]", new_state);
+
+       webrtc->internal_states.peer_connection_state = new_state;
 }
 
 static void __webrtcbin_signaling_state_cb(GstElement *webrtcbin, GParamSpec * pspec, gpointer user_data)
@@ -597,6 +599,8 @@ static void __webrtcbin_signaling_state_cb(GstElement *webrtcbin, GParamSpec * p
        }
 
        LOG_DEBUG("[SignalingState] is changed to [%s]", new_state);
+
+       webrtc->internal_states.signaling_state = new_state;
 }
 
 static void __webrtcbin_ice_gathering_state_cb(GstElement *webrtcbin, GParamSpec * pspec, gpointer user_data)
@@ -625,6 +629,8 @@ static void __webrtcbin_ice_gathering_state_cb(GstElement *webrtcbin, GParamSpec
        }
 
        LOG_DEBUG("[IceGatheringState] is changed to [%s]", new_state);
+
+       webrtc->internal_states.ice_gathering_state = new_state;
 }
 
 static void __webrtcbin_ice_connection_state_cb(GstElement *webrtcbin, GParamSpec * pspec, gpointer user_data)
@@ -671,6 +677,8 @@ static void __webrtcbin_ice_connection_state_cb(GstElement *webrtcbin, GParamSpe
        }
 
        LOG_DEBUG("[IceConnectionState] is changed to [%s]", new_state);
+
+       webrtc->internal_states.ice_connection_state = new_state;
 }
 
 static GstPad* __add_no_target_ghostpad(GstElement *bin, const char *pad_name, bool is_src)