mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 17:16:50 +08:00
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:
@@ -72,6 +72,8 @@ rk_s32 kmpp_buf_grp_setup(KmppBufGrp grp);
|
|||||||
|
|
||||||
KmppBufCfg kmpp_buffer_to_cfg(KmppBuffer buf);
|
KmppBufCfg kmpp_buffer_to_cfg(KmppBuffer buf);
|
||||||
rk_s32 kmpp_buffer_setup(KmppBuffer buffer);
|
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) \
|
#define KMPP_BUF_CFG_ENTRY_TABLE(prefix, ENTRY, STRCT, EHOOK, SHOOK, ALIAS) \
|
||||||
ENTRY(prefix, u32, rk_u32, size, FLAG_NONE, size) \
|
ENTRY(prefix, u32, rk_u32, size, FLAG_NONE, size) \
|
||||||
|
@@ -29,8 +29,6 @@ typedef struct __attribute__((packed)) KmppMetaShmVal_t {
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MPP_RET kmpp_meta_inc_ref(KmppMeta meta);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -128,6 +128,30 @@ rk_s32 kmpp_buffer_setup(KmppBuffer buffer)
|
|||||||
return kmpp_obj_ioctl_f(buffer, 0, buffer, NULL);
|
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)
|
rk_s32 kmpp_buffer_impl_init(void *entry, KmppObj obj, const char *caller)
|
||||||
{
|
{
|
||||||
KmppBufPriv *priv = (KmppBufPriv *)kmpp_obj_to_priv(obj);
|
KmppBufPriv *priv = (KmppBufPriv *)kmpp_obj_to_priv(obj);
|
||||||
|
Reference in New Issue
Block a user