From: Sejun Park Date: Thu, 16 Jun 2016 08:05:01 +0000 (+0900) Subject: Changed location of ref/unref media format X-Git-Tag: submit/tizen/20160617.072816^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0ae14cf6af625b3c1b21978e95f822c1640ec0ee;p=platform%2Fcore%2Fapi%2Fmediatool.git Changed location of ref/unref media format Change-Id: Id7f4de57e4a5b9eda843d92a4c5f2733938d27e5 --- diff --git a/src/media_packet_pool.c b/src/media_packet_pool.c index 6b1fb64..43db290 100755 --- a/src/media_packet_pool.c +++ b/src/media_packet_pool.c @@ -75,11 +75,6 @@ int media_packet_pool_set_media_format(media_packet_pool_h pool, media_format_h pool_handle = (media_packet_pool_s *)pool; - /* increase format reference count */ - if (media_format_ref(fmt) != MEDIA_FORMAT_ERROR_NONE) { - LOGE("failed to increase ref count"); - return MEDIA_PACKET_ERROR_INVALID_OPERATION; - } pool_handle->fmt_h = fmt; return ret; @@ -178,6 +173,13 @@ int media_packet_pool_allocate(media_packet_pool_h pool) LOGD("[%d]%p queued", i, pool_handle->packet[i]); pool_handle->curr_pool_size++; } + + /* increase format reference count */ + if (media_format_ref(pool_handle->fmt_h) != MEDIA_FORMAT_ERROR_NONE) { + LOGE("failed to increase ref count"); + return MEDIA_PACKET_ERROR_INVALID_OPERATION; + } + g_atomic_int_set(&pool_handle->pool_allocated, 1); return ret; @@ -344,6 +346,14 @@ int media_packet_pool_deallocate(media_packet_pool_h pool) return ret; } } + + /* unreference media_format */ + if (media_format_unref(pool_handle->fmt_h) != MEDIA_FORMAT_ERROR_NONE) { + LOGE("failed to decrease ref count"); + g_mutex_unlock(&pool_handle->mutex); + return MEDIA_PACKET_ERROR_INVALID_OPERATION; + } + g_mutex_unlock(&pool_handle->mutex); return ret; @@ -371,12 +381,6 @@ int media_packet_pool_destroy(media_packet_pool_h pool) return MEDIA_PACKET_ERROR_INVALID_OPERATION; } - /* unreference media_format */ - if (media_format_unref(pool_handle->fmt_h) != MEDIA_FORMAT_ERROR_NONE) { - LOGE("failed to decrease ref count"); - return MEDIA_PACKET_ERROR_INVALID_OPERATION; - } - g_queue_free(pool_handle->queue); LOGI("The packet pool handle(%p) will be destroyed..", pool_handle); free(pool_handle);