destroy and do not send packet to client if client occupy many buffers 53/66953/1 accepted/tizen/common/20160425.145208 accepted/tizen/ivi/20160425.140104 accepted/tizen/mobile/20160425.135659 accepted/tizen/tv/20160425.135825 accepted/tizen/wearable/20160425.135911 submit/tizen/20160425.100322
authorEunhae Choi <eunhae1.choi@samsung.com>
Fri, 22 Apr 2016 07:37:13 +0000 (16:37 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Fri, 22 Apr 2016 07:40:14 +0000 (16:40 +0900)
Change-Id: Ifb58bbbae0f352ba7628f2ca81221c39f4ef93bf
Signed-off-by: Eunhae Choi <eunhae1.choi@samsung.com>
muse/src/muse_player.c

index 67a153b..12fcb5e 100644 (file)
@@ -286,6 +286,7 @@ static void _pd_msg_cb(player_pd_message_type_e type, void *user_data)
 
 static void _media_packet_video_decoded_cb(media_packet_h pkt, void *user_data)
 {
+#define MAX_NUM_OF_EXPORT 3
        int ret;
        muse_player_cb_e api = MUSE_PLAYER_CB_EVENT;
        muse_player_event_e ev = MUSE_PLAYER_EVENT_TYPE_MEDIA_PACKET_VIDEO_FRAME;
@@ -330,6 +331,13 @@ static void _media_packet_video_decoded_cb(media_packet_h pkt, void *user_data)
        /* add packet to the data_list */
        muse_player = (muse_player_handle_s *)muse_core_ipc_get_handle(module);
        g_mutex_lock(&muse_player->list_lock);
+       if (g_list_length(muse_player->packet_list) > MAX_NUM_OF_EXPORT) {
+               LOGE("Too many buffers are not released. packet(%p) will be drop.", pkt);
+               media_packet_destroy(pkt);
+               g_mutex_unlock(&muse_player->list_lock);
+               return;
+       }
+
        muse_player->packet_list = g_list_append(muse_player->packet_list, (gpointer)pkt);
        g_mutex_unlock(&muse_player->list_lock);