+#ifdef _DEBUG_INDEX
+void __print_idx(mm_evas_info *evas_info)
+{
+ gint prev_idx = evas_info->pkt_info[evas_info->cur_idx].prev;
+ LOGE("***** start cur_idx : %d -> prev_idx : %d", evas_info->cur_idx, prev_idx);
+ while(prev_idx != -1)
+ {
+ LOGE("***** cur_idx : %d -> prev_idx : %d", prev_idx, evas_info->pkt_info[prev_idx].prev);
+ prev_idx = evas_info->pkt_info[prev_idx].prev;
+ }
+ LOGE("***** end");
+ return;
+}
+#endif
+
+void _free_previous_packets(mm_evas_info *evas_info)
+{
+ gint index = evas_info->cur_idx;
+ gint prev_idx = evas_info->pkt_info[index].prev;
+
+ while(prev_idx != -1)
+ {
+ LOGD("destroy previous packet [%p] idx %d", evas_info->pkt_info[prev_idx].packet, prev_idx);
+ if (media_packet_destroy(evas_info->pkt_info[prev_idx].packet) != MEDIA_PACKET_ERROR_NONE)
+ LOGE("media_packet_destroy failed %p", evas_info->pkt_info[prev_idx].packet);
+ evas_info->pkt_info[prev_idx].packet = NULL;
+ evas_info->pkt_info[prev_idx].tbm_surf = NULL;
+ evas_info->pkt_info[index].prev = -1;
+ evas_info->sent_buffer_cnt--;
+
+ /* move index to previous index */
+ index= prev_idx;
+ prev_idx = evas_info->pkt_info[prev_idx].prev;
+ LOGD("sent packet %d", evas_info->sent_buffer_cnt);
+ }
+ return;
+}
+