From c9d4080335810b6e3ef92ec2dcb40d7bd9c661a6 Mon Sep 17 00:00:00 2001 From: ChenHengming Date: Fri, 1 Jul 2016 04:48:52 +0000 Subject: [PATCH] [mpp_buffer]: fix mpp_buffer_test error on Android for normal buffer can not be import/release git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@971 6e48237b-75ef-9749-8fc9-41990f28c85a --- osal/android/os_allocator.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/osal/android/os_allocator.c b/osal/android/os_allocator.c index 47c5b053..c04b9f91 100644 --- a/osal/android/os_allocator.c +++ b/osal/android/os_allocator.c @@ -28,6 +28,7 @@ typedef struct { RK_U32 alignment; + RK_S32 fd_count; } allocator_ctx_normal; MPP_RET os_allocator_normal_open(void **ctx, size_t alignment) @@ -47,6 +48,8 @@ MPP_RET os_allocator_normal_open(void **ctx, size_t alignment) } else p->alignment = alignment; + p->fd_count = 0; + *ctx = p; return ret; } @@ -61,6 +64,7 @@ MPP_RET os_allocator_normal_alloc(void *ctx, MppBufferInfo *info) } p = (allocator_ctx_normal *)ctx; + info->fd = p->fd_count++; return os_malloc(&info->ptr, p->alignment, info->size); } @@ -72,6 +76,29 @@ MPP_RET os_allocator_normal_free(void *ctx, MppBufferInfo *info) return MPP_OK; } +MPP_RET os_allocator_normal_import(void *ctx, MppBufferInfo *info) +{ + allocator_ctx_normal *p = (allocator_ctx_normal *)ctx; + mpp_assert(ctx); + mpp_assert(info->ptr); + mpp_assert(info->size); + info->hnd = NULL; + info->fd = p->fd_count++; + return MPP_OK; +} + +MPP_RET os_allocator_normal_release(void *ctx, MppBufferInfo *info) +{ + (void) ctx; + mpp_assert(info->ptr); + mpp_assert(info->size); + info->ptr = NULL; + info->size = 0; + info->hnd = NULL; + info->fd = -1; + return MPP_OK; +} + MPP_RET os_allocator_normal_close(void *ctx) { if (ctx) { @@ -86,8 +113,8 @@ static os_allocator allocator_normal = { os_allocator_normal_open, os_allocator_normal_alloc, os_allocator_normal_free, - NULL, - NULL, + os_allocator_normal_import, + os_allocator_normal_release, os_allocator_normal_close, };