Commit graph

74 commits

Author SHA1 Message Date
xiaoxu.chen
425552cb3d feat[mpp]: Use macro to create mpp_cfg
1. Create mpp_cfg when define KMPP_OBJ_HIERARCHY_ENABLE
2. Add kmpp_objdef_get_cfg_root function
3. Fix mpp_cfg update flag judgment logic
4. Add mpp_enc_cfg extract and apply interface from configure file

Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
Change-Id: I3a02e7bbddd20a78c3284589fc9513a1c49cac18
2025-11-03 15:35:53 +08:00
xiaoxu.chen
ec5606557e chore[mpp]: Delete mpp_enc_cfg_impl.h
Change-Id: Iee8dcf523d0d3018dd73b2b5da21b0a58736214f
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
2025-10-29 05:57:13 +00:00
Herman Chen
b40657a3c7 feat[kmpp_vdec]: Add kmpp_vdec module
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9467fa122fa0c5f3d755714ea63e089a4d86eca9
2025-10-24 17:34:33 +08:00
Herman Chen
a0c6f81f7b feat[kmpp_venc]: Add kmpp_venc module
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I06f071055caa1c4bab2341258c69398d46671ed3
2025-10-24 09:04:26 +00:00
Herman Chen
067de5647a feat[mpp_enc_cfg]: Change to object implement
Modification Point:
1. Use enc configure object macro.
2. Use kmpp_obj_update to sync user cfg setup.
3. Distinguish between user mode and kernel mode for enc obj.
4. EncImpl only check codec related SET_CFG result.
5. Refactor SET_CFG flow.
6. Adapter jpeg q_mode feature.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
Change-Id: I2856acdf863189fdaa29121ad8bc007fe90b5ab5
2025-10-24 11:18:37 +08:00
Herman Chen
17a370d2d0 chore[astyle]: Format code by new astyle config
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iafdb694219ad9d0407e622ba13fd729b935a2dad
2025-10-23 07:57:46 +00:00
Herman Chen
ee4eb725e0 chore[kmpp_obj]: Add ioctl return output object
1. The output object is the KmppObj directly get from obj ioctl operation.
2. Allow NULL sptr to return NULL object without error log.
3. Fix typo in kmpp_obj_helper.h

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I6d29ab4b304902710dba0d7a58f4728b22c90f62
2025-10-23 06:39:22 +00:00
Herman Chen
41b1626bd5 chore[kmpp_obj]: Add ioctl return value to KmppIoc
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I5c4beaabe8cd0b8cca90fb2ece1e4cd49b96fdbb
2025-10-22 10:07:21 +00:00
Herman Chen
2ee4a5518b chore[kmpp_ioc]: Use kernel ioctl define only
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I25039633491e53bcda3a1dd04cad6408f3aff675
2025-10-15 09:29:23 +00:00
Yandong Lin
f1c3168fc8 fix[kmpp_obj]: Fix a typo
Change-Id: Ifd5cde980a3e756d7bbbc57fc25d87f48fb80823
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-10-14 18:00:24 +08:00
Herman Chen
62213bbac7 feat[kmpp_obj_helper]: Support no IMPL_TYPE objdef
1. Support pure kernel objdef without IMPL_TYPE.
2. Fix ioctl ARG0 macro for no specified ioctl index.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I33c9629f5df638edb22906a57c489a9516645111
2025-10-13 17:37:55 +08:00
Herman Chen
fe17ce18d8 fix[kmpp_obj]: Fix objdef index error for ioctl
The type index is for global objdef index same in kernel and userspace.
The objdefset index is the index for those defs shared to kernel.
The objdef ioctl needs to use the second index.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I5e1d76094a2f95984e7798042964b2278b37a51b
2025-10-13 17:35:24 +08:00
Herman Chen
838a8a566b fix[kmpp_obj_macro]: Fix GET_ARG0 macro
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I31d48a2e41ac492b19d325154bebc3dbb71a3aff
2025-10-13 16:52:25 +08:00
Herman Chen
15b2d77bfa fix[kmpp_obj]: Fix log format
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic91534701d1542d73005c2f62fbbdabef18adbf6
2025-10-13 14:43:08 +08:00
Herman Chen
df294a0036 fix[kmpp_buffer_test]: Fix sptr setup error
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I15a6b49540d7dd52379105b05d2dbda912caf36b
2025-10-11 18:12:25 +08:00
Herman Chen
c3b2b9e231 chore[kmpp_buffer]: Use new ioctl cmd macro
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I7be09f0b5f454c0040e772ae9405db6cef52052a
2025-09-30 15:08:10 +08:00
Herman Chen
d0d65fb27c feat[kmpp_obj]: Add kmpp ioctl trie query
1. Add kernel ioctl cmd trie query.
   It causes kernel log:
   kmpp_ioc: kmpp_ioc_ioctl: invalid ioc count 0
   Just ignore the log or update to new kmpp-develop version.
   The log will gone after kmpp-develop commit
   feat[kmpp_obj]: Add ioctl trie

2. Add objdef cmd query function.
3. Update kmpp_ioctl to support parameter "ctx".

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ia3c31a7e92681fe671456f19612a199857b362a5
2025-09-30 15:07:54 +08:00
Herman Chen
23acde467b fix[test]: Fix shm test crash on old kernel
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iec5f2ffd6f39b877f8b97abe29751543b67a6aa5
2025-09-30 15:07:43 +08:00
Herman Chen
d1f9fdc0fb chore[kmpp_ioc]: Disable ioc entry mismatch log
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Id9d0ae7d6ab968e37e6fdc8afb36750155d42d1d
2025-09-30 15:07:31 +08:00
Herman Chen
4db2167ff4 feat[kmpp_ioc]: Add kmpp_ioc module
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I766b0ec68f8ae572a44d96dd6ff059240ebfb698
2025-09-30 15:07:12 +08:00
Herman Chen
1c3881cbac feat[kmpp_obj]: Add ioctl related macro
1. Add ioctl ctx / in / out / in_out macro.
2. Add get objdef function.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I350a673a2302341388a68e3019299b04cce39203
2025-09-30 15:06:55 +08:00
Herman Chen
29521e7f4a chore[kmpp_obj]: Change kmpp_shm get / put input
1. Use KmppShm to replace KmppShmPtr as input.
2. Add kmpp_shm_to_entry to get valid access address.
3. Add more test case.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Id554e4e60f8e11e08578c91a9c30c7b173f10ab9
2025-09-30 15:06:14 +08:00
Herman Chen
060aa30091 fix[kmpp_obj]: Add ptr / st compatibility handling
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I114fabf181de898200f40f73a392fd8a7615a0c4
2025-09-17 17:39:58 +08:00
Herman Chen
8596bbb7aa feat[kmpp_obj]: Add KmppShm allocate function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I15cbc70c9df81586fe4f9002dcaed1f52ffcaf3a
2025-09-15 17:40:36 +08:00
Herman Chen
b0c69ecb46 fix[mpp]: Fix some typos
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ie21c286c5884139d631845162da458a7ac1803a6
2025-09-11 10:09:07 +00:00
Herman Chen
b68672dbb2 fix[kmpp_obj]: Fix obj update flag update issue
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I7bee6599ac9e7328af28a4f096fe9b84eb7c1bf7
2025-09-11 10:00:44 +00:00
Herman Chen
20d045ae2c chore[kmpp_obj]: Update macros
1. Remove init / deinit function in kmpp_obj_func.h
2. Add extern "C" in kmpp_obj_func.h
3. Set register / unregister function in kmpp_obj_helper.h to be static

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic7210c8114f4a3fc9fc94f69f350c586d6bdd3d2
2025-09-11 06:27:25 +00:00
Herman Chen
a30fe2262b feat[kmpp_obj]: Add more functions
1. Add objdef find function.
2. Add preset function.
3. Add priv size on objdef init.
4. Add obj to flags / flags_size function.
5. Add pool size debug log macro.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I22a5c160d3d14bac98044a90558ef610cc89270c
2025-09-11 10:45:39 +08:00
timkingh.huang
6588b71f2b fix[mpp_meta]: Add KEY_NPU_UOBJ_FLAG and KEY_NPU_SOBJ_FLAG
UOBJ: deliver userspace buffer for rk3588 and rk3576
SOBJ: deliver shared memory buffer for rv1126b

Sync to kmpp-develop patch with the same log:
If596371639eaedb01d6900c737d1f7fec49bf8d4

Change-Id: I8927f6341b5d3f94bf52af32c02b75cd24ad0681
Signed-off-by: timkingh.huang <timkingh.huang@rock-chips.com>
2025-09-01 17:35:25 +08:00
Yanjun Liao
9a6bf0e0b0 fix[kmpp_obj]: Fix obj ioctl typo
Use "flags" instead of "flag" for KmppIoc entry

Change-Id: I87b0557a09cfad87d825836de1c6be72478957e5
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-08-28 14:52:11 +08:00
xiaoxu.chen
54bdc5ddbc refactor[enc]: Use KmppShmPtr to represent osd buffer
Change-Id: I2211b806d4b4a065faf1f0fa5a240e104bbb30ab
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
2025-08-13 14:55:14 +08:00
Yandong Lin
0ce028aaa9 fix[kmpp_buffer]: Close fd when deinit
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ie12c20ecaa6d2b090d257e8fe1ba8f578da4a054
2025-08-12 09:27:30 +00:00
xiaoxu.chen
bb2f5bba51 refactor[kmpp]: Fix kmpp obj compilation warning
Change-Id: I081c631b1e921b67324e81dc193732b338aefe17
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
2025-08-12 10:39:52 +08:00
xiaoxu.chen
45246e9c89 fix[kmpp_obj]: Fix kmpp obj get by sptr
Change-Id: I2db2823448351200ac25ae5496319e80fee2985e
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
2025-08-11 10:07:23 +08:00
xiaoxu.chen
7043132d0c feat[kmpp]: Add jpeg roi function for kmpp
Sync with kmpp-develop commit:
feat[kmpp]: Add jpeg roi function for RV1126B

Change-Id: Ifeb5ce7b75af6fc3fc0e66fbe727dfd30a325a0e
Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
2025-08-06 14:39:22 +08:00
Yanjun Liao
225418ca78 fix[kmpp_obj]: Rename kmpp_obj_impl_put func
Change-Id: I08313a43e68fe93ecf141505a2be4439a5b507f8
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-08-04 01:51:03 +00:00
Yanjun Liao
7fbdfbe3c1 fix[kmpp_obj]: Fix kmpp frm/pkt self meta erro
Change-Id: Ibfb4409962e4f35fdcc73cf239253b44a86a52ce
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-08-03 14:05:33 +08:00
Yandong Lin
8dcf903d9e feat[kmpp]: Set chan_fd to init cfg
Depend on the commit:
270375: feat[kmpp_venc_objs]: Add chan_fd to init cfg | https://10.10.10.29/c/rk/mpp/+/270375

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I5d174695f023cf306e7f4df59243d21f255c2bc3
2025-07-31 17:02:05 +08:00
Yanjun Liao
47cfaf2497 fix[kmpp_frame]: Remove unnecessary logs
Change-Id: I7c0a80540f2f80113fd70fec15e148dcec90325c
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-07-30 18:55:59 +08:00
Yanjun Liao
a899106f89 feat[kmpp]: Replace frame_infos with kmpp_frame
kernel patch:
fix[mpp_vcodec]: Replace frame_infos with kmpp_frame

Change-Id: Ie3b0358a7b79ad9755608f20b5b29175263b4dbb
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-07-30 18:39:07 +08:00
Herman Chen
9abddf0a7b chore[kmpp_meta]: Disable failure log
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I5d721014bac6345c32644cdadd4da7750f671100
2025-07-30 15:54:47 +08:00
Yanjun Liao
40d1857674 feat[kmpp_frame]: Add self_meta in kmpp_frame
Change-Id: Ieddb482e06c5230e04d6b05dec5bf48c307c411e
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-07-29 10:22:44 +08:00
Yanjun Liao
f47eae175c feat[kmpp_buffer]: Add ioctl to inc ref and flush
Change-Id: Ia0c12d6bae71246c17e0a065761439702c529af9
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-07-28 22:30:35 +08:00
Herman Chen
9aef0ff7a7 feat[base]: Use enc cfg obj
Sync with kmpp-develop commit:
feat[kmpp]: Use enc cfg obj

Add MppEncCfgImpl to compatible with MppEncCfgSet and kmpp_obj path.

Signed-off-by: xiaoxu.chen <xiaoxu.chen@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Id4e262d1053c03cd93d620828405f060f0f8517c
2025-07-18 15:48:19 +08:00
Herman Chen
f317f8c50f chore[kmpp_obj]: Add is_kobj query function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I3fde40bd823d5ca336931fc4e959cfb1deb96498
2025-07-17 18:10:55 +08:00
Yanjun Liao
2bec3a942d fix[kmpp_obj]: Update tbl after objdef registration
Change-Id: If97e9333be2a9a14e01252e51c98641a632f9c07
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-07-10 10:32:15 +08:00
Herman Chen
4f102251f3 feat[kmpp]: Add KmppMeta module
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
Change-Id: If4cc861cd1598e0b66842f8f21256a1a0000b4a6
2025-07-09 14:20:19 +08:00
Yanjun Liao
69191e72d3 feat[kmpp]: Add KmppBuffer module
1. Add buf_grp, buf_grp_cfg, buffer, buf_cfg objdef.
2. The buf_grp_cfg is binded to buf_grp and the buf_cfg is binded to
buffer. The binding cfg obj is stored in private data.

Change-Id: I9243c03f7b9519536fdc2f24b62761dc04baac85
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2025-07-09 10:39:15 +08:00
Herman Chen
28f17c9ebf feat[kmpp_obj]: Add priv prop support for objdef
1. Add KMPP_OBJ_PRIV_SIZE for extra priv data to userspace KmppObjImpl.
2. When add private data realloc mempool for KmppObjImpl.

Change-Id: Ifc6d210cc77497cc9cbd5d86ad1ddcf2ba0fc4af
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2025-07-08 23:53:36 +08:00
Herman Chen
5497c458fe fix[kmpp_obj]: Fix grp_cfg and buf_cfg leak in kmpp_obj_test
1. Use mem pool to alloc KmppObjImpl
2. Add kmpp_obj_put_impl to release KmppObjImpl header only.
3. Add grp_cfg and buf_cfg release operation.
4. Use MPP_SINGLETON to init kmpp_venc_cfg.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I865d4d990d7e89598b2f17d85460b809f7f602df
2025-07-08 17:48:39 +08:00