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) {