From bd43fac60eefaae31c2e64aa89bf09f662ff7326 Mon Sep 17 00:00:00 2001 From: Randy Li Date: Wed, 22 Feb 2017 11:17:10 +0800 Subject: [PATCH] [mpp_buffer]: access the index field of buffer info The external buffer would request the index of a buffer to manage it in an array. Change-Id: Ifbb169c75dfb6342b428b1fd640db9ec45ff5f73 Signed-off-by: Randy Li --- inc/mpp_buffer.h | 8 ++++++++ mpp/base/mpp_buffer.cpp | 27 +++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/inc/mpp_buffer.h b/inc/mpp_buffer.h index 90935b26..99694ccf 100644 --- a/inc/mpp_buffer.h +++ b/inc/mpp_buffer.h @@ -246,6 +246,12 @@ typedef struct MppBufferInfo_t { #define mpp_buffer_get_size(buffer) \ mpp_buffer_get_size_with_caller(buffer, __FUNCTION__) +#define mpp_buffer_get_index(buffer) \ + mpp_buffer_get_index_with_caller(buffer, __FUNCTION__) + +#define mpp_buffer_set_index(buffer, index) \ + mpp_buffer_set_index_with_caller(buffer, index, __FUNCTION__) + #define mpp_buffer_group_get_internal(group, type, ...) \ mpp_buffer_group_get(group, type, MPP_BUFFER_INTERNAL, MODULE_TAG, __FUNCTION__) @@ -278,6 +284,8 @@ MPP_RET mpp_buffer_write_with_caller(MppBuffer buffer, size_t offset, void *data void *mpp_buffer_get_ptr_with_caller(MppBuffer buffer, const char *caller); int mpp_buffer_get_fd_with_caller(MppBuffer buffer, const char *caller); size_t mpp_buffer_get_size_with_caller(MppBuffer buffer, const char *caller); +int mpp_buffer_get_index_with_caller(MppBuffer buffer, const char *caller); +MPP_RET mpp_buffer_set_index_with_caller(MppBuffer buffer, int index, const char *caller); MPP_RET mpp_buffer_group_get(MppBufferGroup *group, MppBufferType type, MppBufferMode mode, const char *tag, const char *caller); diff --git a/mpp/base/mpp_buffer.cpp b/mpp/base/mpp_buffer.cpp index 9ae6c87e..550985a0 100644 --- a/mpp/base/mpp_buffer.cpp +++ b/mpp/base/mpp_buffer.cpp @@ -209,6 +209,33 @@ size_t mpp_buffer_get_size_with_caller(MppBuffer buffer, const char *caller) return p->info.size; } +int mpp_buffer_get_index_with_caller(MppBuffer buffer, const char *caller) +{ + if (NULL == buffer) { + mpp_err_f("invalid NULL input\n"); + return -1; + } + + MppBufferImpl *p = (MppBufferImpl*)buffer; + (void)caller; + return p->info.index; +} + +MPP_RET mpp_buffer_set_index_with_caller(MppBuffer buffer, int index, + const char *caller) +{ + if (NULL == buffer) { + mpp_err_f("invalid NULL input\n"); + return MPP_ERR_UNKNOW; + } + + MppBufferImpl *p = (MppBufferImpl*)buffer; + p->info.index = index; + (void)caller; + return MPP_OK; +} + + MPP_RET mpp_buffer_info_get_with_caller(MppBuffer buffer, MppBufferInfo *info, const char *caller) { if (NULL == buffer || NULL == info) {