feat[kmpp_buffer]: Add ioctl to inc ref and flush

Change-Id: Ia0c12d6bae71246c17e0a065761439702c529af9
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
This commit is contained in:
Yanjun Liao
2025-07-25 01:29:57 +08:00
parent b851fdc379
commit f47eae175c
3 changed files with 26 additions and 2 deletions

View File

@@ -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) \

View File

@@ -29,8 +29,6 @@ typedef struct __attribute__((packed)) KmppMetaShmVal_t {
extern "C" {
#endif
MPP_RET kmpp_meta_inc_ref(KmppMeta meta);
#ifdef __cplusplus
}
#endif

View File

@@ -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);