webrtc_display_s *display = (webrtc_display_s*)data;
media_packet_h packet;
- RET_IF(display == NULL, "sink is NULL");
+ RET_IF(display == NULL, "display is NULL");
LOG_DEBUG("object[%p] buffer[%p] pad[%p] display[%p]", object, buffer, pad, display);
case WEBRTC_DISPLAY_TYPE_OVERLAY:
LOG_DEBUG("it's OVERLAY type");
- g_idle_add(__set_overlay_display_idle_cb, display);
+ g_main_context_invoke(NULL, __set_overlay_display_idle_cb, display);
break;
case WEBRTC_DISPLAY_TYPE_EVAS:
if (display->tbm == NULL)
display->tbm = _alloc_tbm();
- g_idle_add(__set_evas_display_idle_cb, display);
+ g_main_context_invoke(NULL, __set_evas_display_idle_cb, display);
break;
case WEBRTC_DISPLAY_TYPE_ECORE_WL:
LOG_DEBUG("it's ECORE_WL type");
- g_idle_add(__set_overlay_display_idle_cb, display);
+ g_main_context_invoke(NULL, __set_overlay_display_idle_cb, display);
break;
default:
void _release_display(webrtc_display_s *display)
{
- RET_IF(display == NULL, "webrtc is NULL");
+ RET_IF(display == NULL, "display is NULL");
g_mutex_lock(&display->mutex);
+ g_idle_remove_by_data(display);
+
if (display->mm_display) {
LOG_DEBUG("deinit display->mm_display[%p]", display->mm_display);
mm_display_interface_deinit(display->mm_display);