diff --git a/kmpp/base/inc/kmpp_buffer.h b/kmpp/base/inc/kmpp_buffer.h index ce758112..88f71fd3 100644 --- a/kmpp/base/inc/kmpp_buffer.h +++ b/kmpp/base/inc/kmpp_buffer.h @@ -72,6 +72,8 @@ rk_s32 kmpp_buf_grp_setup(KmppBufGrp grp); KmppBufCfg kmpp_buffer_to_cfg(KmppBuffer buf); rk_s32 kmpp_buffer_setup(KmppBuffer buffer); +rk_s32 kmpp_buffer_inc_ref(KmppBuffer buffer); +rk_s32 kmpp_buffer_flush(KmppBuffer buffer); #define KMPP_BUF_CFG_ENTRY_TABLE(prefix, ENTRY, STRCT, EHOOK, SHOOK, ALIAS) \ ENTRY(prefix, u32, rk_u32, size, FLAG_NONE, size) \ diff --git a/kmpp/base/inc/kmpp_meta_impl.h b/kmpp/base/inc/kmpp_meta_impl.h index 463ed64c..c4156de9 100644 --- a/kmpp/base/inc/kmpp_meta_impl.h +++ b/kmpp/base/inc/kmpp_meta_impl.h @@ -29,8 +29,6 @@ typedef struct __attribute__((packed)) KmppMetaShmVal_t { extern "C" { #endif -MPP_RET kmpp_meta_inc_ref(KmppMeta meta); - #ifdef __cplusplus } #endif diff --git a/kmpp/base/kmpp_buffer.c b/kmpp/base/kmpp_buffer.c index bcfe23c8..2b29a998 100644 --- a/kmpp/base/kmpp_buffer.c +++ b/kmpp/base/kmpp_buffer.c @@ -128,6 +128,30 @@ rk_s32 kmpp_buffer_setup(KmppBuffer buffer) return kmpp_obj_ioctl_f(buffer, 0, buffer, NULL); } +rk_s32 kmpp_buffer_inc_ref(KmppBuffer buffer) +{ + KmppBufferImpl *impl = (KmppBufferImpl *)kmpp_obj_to_entry(buffer); + + if (!impl) { + mpp_loge_f("invalid NULL buffer\n"); + return rk_nok; + } + + return kmpp_obj_ioctl_f(buffer, 1, buffer, NULL); +} + +rk_s32 kmpp_buffer_flush(KmppBuffer buffer) +{ + KmppBufferImpl *impl = (KmppBufferImpl *)kmpp_obj_to_entry(buffer); + + if (!impl) { + mpp_loge_f("invalid NULL buffer\n"); + return rk_nok; + } + + return kmpp_obj_ioctl_f(buffer, 2, buffer, NULL); +} + rk_s32 kmpp_buffer_impl_init(void *entry, KmppObj obj, const char *caller) { KmppBufPriv *priv = (KmppBufPriv *)kmpp_obj_to_priv(obj);