webrtc: Print warning log before overwriting user callback address 46/253146/2
authorSangchul Lee <sc11.lee@samsung.com>
Thu, 4 Feb 2021 13:30:56 +0000 (22:30 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Mon, 8 Feb 2021 04:48:43 +0000 (13:48 +0900)
[Version] 0.1.106
[Issue Type] Log

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

index 43a4a4d7183012ce56064fc8f8cc35be0621e168..8f08bffe3516b2324f8770248e998feafcad4d52 100644 (file)
@@ -87,6 +87,12 @@ do { \
        LOGD(FONT_COLOR_PURPLE"<Leave>"FONT_COLOR_RESET); \
 } while (0)
 
+#define LOG_WARNING_IF_CALLBACK_EXISTS(x_callback) \
+do { \
+       if (x_callback.callback) \
+               LOG_WARNING("previous callback[%p] user_data[%p]", x_callback.callback, x_callback.user_data); \
+} while (0)
+
 #define RET_IF(expr, fmt, arg...) \
 do { \
        if ((expr)) { \
index d13fcfd1967c481b3b6f28b0053b6e333347f858..a38b3a9d84fb60d9d20b860fb25242b9f0768438 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    0.1.105
+Version:    0.1.106
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 183776b7238f0711708255fcc7011056fbc6216a..d57c5da3228cd18ba4c5edda542314043d3c36f0 100644 (file)
@@ -36,6 +36,8 @@ int webrtc_set_error_cb(webrtc_h webrtc, webrtc_error_cb callback, void *user_da
 
        g_mutex_lock(&_webrtc->mutex);
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_webrtc->error_cb);
+
        _webrtc->error_cb.callback = callback;
        _webrtc->error_cb.user_data = user_data;
 
@@ -76,6 +78,8 @@ int webrtc_set_state_changed_cb(webrtc_h webrtc, webrtc_state_changed_cb callbac
 
        g_mutex_lock(&_webrtc->mutex);
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_webrtc->state_changed_cb);
+
        _webrtc->state_changed_cb.callback = callback;
        _webrtc->state_changed_cb.user_data = user_data;
 
@@ -305,6 +309,8 @@ int webrtc_media_packet_source_set_buffer_state_changed_cb(webrtc_h webrtc, unsi
        RET_VAL_WITH_UNLOCK_IF(source->type != WEBRTC_MEDIA_SOURCE_TYPE_MEDIA_PACKET, WEBRTC_ERROR_INVALID_PARAMETER, &_webrtc->mutex,
                "source is not media packet type");
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(source->buffer_state_changed_cb);
+
        source->buffer_state_changed_cb.callback = callback;
        source->buffer_state_changed_cb.user_data = user_data;
 
@@ -502,6 +508,8 @@ int webrtc_set_negotiation_needed_cb(webrtc_h webrtc, webrtc_negotiation_needed_
 
        RET_VAL_WITH_UNLOCK_IF(_webrtc->state != WEBRTC_STATE_IDLE, WEBRTC_ERROR_INVALID_STATE, &_webrtc->mutex, "the state should be IDLE");
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_webrtc->negotiation_needed_cb);
+
        _webrtc->negotiation_needed_cb.callback = callback;
        _webrtc->negotiation_needed_cb.user_data = user_data;
 
@@ -545,6 +553,8 @@ int webrtc_set_ice_candidate_cb(webrtc_h webrtc, webrtc_ice_candidate_cb callbac
 
        RET_VAL_WITH_UNLOCK_IF(_webrtc->state != WEBRTC_STATE_IDLE, WEBRTC_ERROR_INVALID_STATE, &_webrtc->mutex, "the state should be IDLE");
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_webrtc->ice_candidate_cb);
+
        _webrtc->ice_candidate_cb.callback = callback;
        _webrtc->ice_candidate_cb.user_data = user_data;
 
@@ -588,6 +598,8 @@ int webrtc_set_track_added_cb(webrtc_h webrtc, webrtc_track_added_cb callback, v
 
        RET_VAL_WITH_UNLOCK_IF(_webrtc->state == WEBRTC_STATE_PLAYING, WEBRTC_ERROR_INVALID_STATE, &_webrtc->mutex, "the state should NOT be PLAYING");
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_webrtc->track_added_cb);
+
        _webrtc->track_added_cb.callback = callback;
        _webrtc->track_added_cb.user_data = user_data;
 
@@ -630,9 +642,7 @@ int webrtc_set_encoded_audio_frame_cb(webrtc_h webrtc, webrtc_encoded_frame_cb c
 
        RET_VAL_WITH_UNLOCK_IF(_webrtc->state == WEBRTC_STATE_PLAYING, WEBRTC_ERROR_INVALID_STATE, &_webrtc->mutex, "the state should NOT be PLAYING");
 
-       if (_webrtc->encoded_audio_frame_cb.callback)
-               LOG_WARNING("previous callback[%p] user_data[%p]",
-                       _webrtc->encoded_audio_frame_cb.callback, _webrtc->encoded_audio_frame_cb.user_data);
+       LOG_WARNING_IF_CALLBACK_EXISTS(_webrtc->encoded_audio_frame_cb);
 
        _webrtc->encoded_audio_frame_cb.callback = callback;
        _webrtc->encoded_audio_frame_cb.user_data = user_data;
@@ -677,9 +687,7 @@ int webrtc_set_encoded_video_frame_cb(webrtc_h webrtc, webrtc_encoded_frame_cb c
 
        RET_VAL_WITH_UNLOCK_IF(_webrtc->state == WEBRTC_STATE_PLAYING, WEBRTC_ERROR_INVALID_STATE, &_webrtc->mutex, "the state should NOT be PLAYING");
 
-       if (_webrtc->encoded_video_frame_cb.callback)
-               LOG_WARNING("previous callback[%p] user_data[%p]",
-                       _webrtc->encoded_video_frame_cb.callback, _webrtc->encoded_video_frame_cb.user_data);
+       LOG_WARNING_IF_CALLBACK_EXISTS(_webrtc->encoded_video_frame_cb);
 
        _webrtc->encoded_video_frame_cb.callback = callback;
        _webrtc->encoded_video_frame_cb.user_data = user_data;
@@ -863,6 +871,8 @@ int webrtc_set_data_channel_cb(webrtc_h webrtc, webrtc_data_channel_cb callback,
 
        RET_VAL_WITH_UNLOCK_IF(_webrtc->state != WEBRTC_STATE_IDLE, WEBRTC_ERROR_INVALID_STATE, &_webrtc->mutex, "the state should be IDLE");
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_webrtc->data_channel_cb);
+
        _webrtc->data_channel_cb.callback = callback;
        _webrtc->data_channel_cb.user_data = user_data;
 
@@ -904,6 +914,8 @@ int webrtc_data_channel_set_open_cb(webrtc_data_channel_h channel, webrtc_data_c
 
        g_mutex_lock(&_channel->mutex);
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_channel->open_cb);
+
        _channel->open_cb.callback = callback;
        _channel->open_cb.user_data = user_data;
 
@@ -944,6 +956,8 @@ int webrtc_data_channel_set_message_cb(webrtc_data_channel_h channel, webrtc_dat
 
        g_mutex_lock(&_channel->mutex);
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_channel->message_cb);
+
        _channel->message_cb.callback = callback;
        _channel->message_cb.user_data = user_data;
 
@@ -984,6 +998,8 @@ int webrtc_data_channel_set_error_cb(webrtc_data_channel_h channel, webrtc_data_
 
        g_mutex_lock(&_channel->mutex);
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_channel->error_cb);
+
        _channel->error_cb.callback = callback;
        _channel->error_cb.user_data = user_data;
 
@@ -1024,6 +1040,8 @@ int webrtc_data_channel_set_close_cb(webrtc_data_channel_h channel, webrtc_data_
 
        g_mutex_lock(&_channel->mutex);
 
+       LOG_WARNING_IF_CALLBACK_EXISTS(_channel->close_cb);
+
        _channel->close_cb.callback = callback;
        _channel->close_cb.user_data = user_data;