4426 Commits

Author SHA1 Message Date
Herman Chen 1375813cbb docs: Update 1.0.12 CHANGELOG.md
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I7139924c36876eb08c757b14f595ef8377e93c3f
1.0.12
2026-05-29 09:21:06 +08:00
Yandong Lin fd85477c2c fix[hal_rkdec]: Fix duplicate align on ver_stride in fbc mode
When MPP_DEC_SET_FRAME_INFO configures fbc format with height not
16-aligned, vdpu_afbc_align_calc aligns height to 16 first. Then
mpp_sys_dec_buf_chk_proc adds 8 expand and aligns to 16 again,
causing ver_stride to be 24 larger than expected.

Use the existing ver_stride from frame if already set, to avoid
duplicate alignment.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I79b24b045768b4fbee3b394cbff546e8b1c09df8
2026-05-28 03:22:42 +00:00
Hongjin Li 42392e55c5 refactor[hal_h265d]: Remove unused CABAC table from VDPU383
Platform: RK3576
Spec: h265d

Remove CABAC_TAB_ALIGEND_SIZE, CABAC_TAB_OFFSET, buffer size
calculation, offset setup, and cabac_table init write that are
no longer needed.

Change-Id: I799a88edb589a94905843967f695e330a2edb5c5
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-05-27 15:06:07 +08:00
Herman Chen 86e873e869 chore[kmpp_obj]: Replace mpp_err with mpp_loge
Change-Id: I15743b1ddb3d7623a841b87202500f8d397841ee
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-19 09:52:25 +08:00
Yandong Lin 6d39686136 fix[kmpp_obj]: Add ioc list management
Add ioc_list_used/unused to manage ioc obj for performance.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Id23517ec3750d75b13906d2537d2fb7effb9c969
2026-05-19 09:50:02 +08:00
Yanjun Liao bd3c609e49 feat[mpi_enc]: Support load ref_cfg json file
1.Support loading ref_cfg from standalone json file via -ref_cfg.
2.Priority: -ref_cfg > -g > -cfg gop_mode.
3.Include ref_cfg json configs for gop_mode 0-3.

Change-Id: Ide89d112c51c4fab77538d3d37a2b1a21ea4a05b
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2026-05-18 16:25:26 +08:00
Yanjun Liao f80f253ccc feat[mpp_cfg]: Add ref_cfg json apply/extract api
1. Add mpp_enc_ref_cfg_apply/extract to mpp_enc_ref.
2. Add mpp_cfg_get_val to cfg_io.
3. Apply handles VLA resize from parsed cnt values.

Change-Id: Ibc7e50f3e58c5a008cad7270edc9ac0ea24afaac
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2026-05-18 14:46:06 +08:00
Yandong Lin 18ce1393c6 feat[kmpp]: Add kmpp_venc_test implement
kmpp_venc_test is kmpp object implement test case.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I85d314a8430ee3d65d3b356173ed9169c443ad4a
2026-05-16 02:18:42 +00:00
Herman Chen 8635eaeb3c fix[kmpp]: Fix error on get meta from kmpp_packet
Change-Id: I8a91d7322f17e779114ebebd1c4c6ab0ff525402
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-16 00:18:22 +08:00
Herman Chen d5ade0e96d fix[kmpp_meta]: Fix get_obj failure
Change-Id: I96f80bde5b24a2e224cf6052afe3903ec24a715d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-15 21:38:52 +08:00
Hongjin Li 3ee605333c fix[mpp_test]: Set stride on info change
During info change, only width/height/fmt were set via
MPP_DEC_SET_FRAME_INFO but hor_stride and ver_stride were left unset.
This caused incorrect sys_cfg calculation, triggering repeated info
changes and decoding errors.

Change-Id: I0d61a8d7d5f67e5099ce1a77ab0eb8ae949fc755
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-05-15 08:03:40 +00:00
Chandler.Chen d9f68685ab fix[av1d_parser]: Fix signed value parsing reads extra bit
mpp_read_signbits() reads N+1 bits (N value + 1 sign), but AV1
su(N) format only has N bits with MSB as sign bit. Each call
caused 1-bit misalignment, corrupting all subsequent fields.

Change-Id: Ia5204a50d1a95d4dcda179c808e93858c0c46412
Signed-off-by: Chandler.Chen <chandler.chen@rock-chips.com>
2026-05-14 17:31:30 +08:00
Herman Chen ac2aee6f38 fix[mpp_enc_ref_test]: Fix test case error
Change-Id: Ib11b97a809f7e27c59d2136af80f45cde3c129c8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-14 14:55:14 +08:00
Hongjin Li 40fb03342b fix[sys_cfg]: Fix low H.264 decode FPS at 4096x2160.
Platform: RK3566/RK3568
Spec: h264

Error case:
When the image resolution is 4096x2160,
the decoding frame rate drops.

Err log:
frame fps avg   60.53 ins   60.35
frame fps avg   60.52 ins   59.17
frame fps avg   60.52 ins   61.10
frame fps avg   60.52 ins   59.93

After fixing:
frame fps avg   70.79 ins   70.79
frame fps avg   72.50 ins   74.21
frame fps avg   72.33 ins   71.97
frame fps avg   71.71 ins   69.87
frame fps avg   72.05 ins   73.39

Solution:
Horizontal stride is aligned to an odd multiple of 265.

Source: 4096x2160_new.h264

Reported-by: redmine #591878
Change-Id: Ib503b64830620c2fe2c9ec576a8588a445f7ab1c
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-05-14 04:49:37 +00:00
Herman Chen 13b86b1b41 chore[mpp_enc_cfg]: Use ARRAY macro
Change-Id: Ic0eda39e4f0968b9894dd53a91e87818ba6b8e6e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-14 12:48:59 +08:00
Herman Chen c6a83cef75 refactor[kmpp_obj]: Refactor vla support
1. Update KmppEntry define add flex_count and flex_base.
2. Add ENTRY_CHAIN support by kmpp_objdef_resolve.
3. Add kmpp_obj vla access functions.
4. Add more kmpp_obj_test.
5. Add mpp_cfg_io vla support.
6. Remove mpp_cfg_io array_N prefix.

Change-Id: I1d3281f11cd18c08c73738213a04a2acc528e856
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-14 12:48:59 +08:00
Herman Chen e21c9bdd14 fix[mpp_trie]: Fix name len update on add_entry
Change-Id: I041a73b1f4e034307966288b466f2db887c0f3f7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-13 10:09:49 +00:00
Herman Chen 3c32a6c154 chore[mpp_trie]: Add mpp_trie_get_entry output
Change-Id: I050ab970ba6cd73923f0482d64b4880c05136c69
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-12 14:14:34 +00:00
Yanjun Liao 697bcdbe51 fix[kmpp_obj]: Fix flag bitmap overflow on arm64
ENTRY_TO_FLAG_PTR uses rk_ul* (8 bytes on arm64) to access the
flag bitmap, but the bitmap is organized as 32-bit words with
4-byte alignment. This causes a 4-byte read overflow when
accessing the last flag word.

Change rk_ul* to rk_u32* and 1ul to 1u to match the 32-bit
design intent indicated by ELEM_FLAG_U32_POS and ELEM_FLAG_START.

Change-Id: I5cde50148f0742313b719ea480f2786c974d5e63
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2026-05-11 16:06:15 +08:00
Herman Chen 03e1ca8070 chore[mpp_trie]: Fix some format
Change-Id: Icbca3e1bc64ca751ea4081d296f78441e15652b5
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-09 08:59:53 +08:00
Yandong Lin c1cb76401e feat[mpp_enc]: Support force idr by KEY_INPUT_IDR_REQ meta
Usage:
MppMeta meta = mpp_frame_get_meta(frame);
mpp_meta_set_s32(meta, KEY_INPUT_IDR_REQ, 1);

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I52711cb3f48b3611611311f52f49440fc20c05bd
2026-05-08 13:02:27 +00:00
Herman Chen 8b731ab512 refactor[enc]: Refactor mpp_enc_ref module
1. Use kmpp_obj vla to replace MppEncRefCfgImpl.
2. Use mpp_enc_ref_cfg_setup to resize object.
3. Remove mpp_enc_ref_default by ref cfg reset.
4. Add more test case to mpp_enc_ref_test.

Change-Id: Ic72b78279b6432fbd363c2e05eef3af06986607b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-08 12:04:55 +08:00
Herman Chen f817bf9850 feat[kmpp_obj]: Add resize interface
1. Add flexible entry size support macro.
2. Add kmpp_obj_resize for vla resize.
3. Add more kmpp_obj test case.

Change-Id: I9f1a43b715cb207396276ae4f1bdaa5d22d565af
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-07 21:36:56 +08:00
Hongjin Li 93ae52e4e4 refactor[hal_vp9d]: Refactor hal_vp9 ref-frame configuration
Platform: RK3576/RK3538/RK3539/RK3572
Spec: vp9

- Remove redundant register information
- Organize VP9 reference frame configuration
- Supplement and complete the fbc/tile4x4 configuration.

Change-Id: I630417fe11f145a4969d7cc5f38b53ec08e78e8f
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-05-07 06:11:45 +00:00
Herman Chen abfedb003f chore[mpp_test]: Unify log format
Change-Id: I0e651289fe2bf3c845949403853f4c686d168529
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-07 08:52:03 +08:00
Herman Chen 49e5c52f38 chore[test]: Update mpp_enc_cfg_test
Change-Id: I47e9fea201bb553c91238346e72fb4536eb25c35
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-06 22:47:43 +08:00
Herman Chen 844d0ae7de feat[mpp_test]: Add mpp_test.h
Change-Id: If7abc380453035d3f1f64f08f61e5c114699d364
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-06 22:46:59 +08:00
Herman Chen b308d01e0e fix[mpp_cfg_io]: Fix array print format
Change-Id: Iae8fd84b9a1b283c3d80af7c7ab97157b9f706da
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-05 16:16:08 +00:00
Herman Chen 23b9058dac feat[mpp_enc_cfg]: Add ENTRY VLA support
Change-Id: Iab3750f18b4e83e371a5ec0ee977ed1c91f3bc44
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-02 20:19:27 +08:00
Herman Chen 7c6d0b1548 feat[mpp_cfg]: Add Variable Length Array (VLA) support
1. Add new KmppEntry.vla definition with elem size / count.
2. Add elems and raw buffer for different type storage.
3. Add set_vla, add_raw and add_elem functions.
4. Add VLA data dumping in mpp_cfg_to_log / to_json / to_toml.
5. Add fix / flex, raw / elem array test.

Change-Id: I5ea23f0caec21326c9906d12b43335ad0300d678
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-05-01 23:57:12 +08:00
Yandong Lin c231a575df fix[hal_vepu511]: Explicitly clear jpeg_stnd for video encoding
Explicitly disable jpeg en during H.264/H.265 encoding setup to
prevent residual state from affecting video encoding mode.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I7953f28762c036d1310ab5b72352a8d32fa2ec71
2026-04-30 09:32:15 +00:00
Yandong Lin 186c7a57ed fix[rc]: Fix i_refresh_bit memory leak in deinit
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ic1efd24c1bc4ffc5524c101c3f784fe4cd848917
2026-04-30 03:33:35 +00:00
Hongjin Li 6e998eaa61 feat[mpp_frame]: Add data_layout info to the MppFrame.
Reported-by: https://github.com/rockchip-linux/mpp/issues/945
Reported-by: nyanmisaka <nst799610810@gmail.com>
Change-Id: I110eaac8b5d8fdca3b4e7162340cd5eff912abad
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-04-29 16:26:34 +08:00
Hongjin Li 428c3f37a3 feat[mpp_soc]: Add FBC/tile info to the SoC module.
Change-Id: If3fee2727dcf4ffc16a80af6cacd194770c0249c
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-04-29 15:48:08 +08:00
Herman Chen 2e93ab791e fix: fix CHANGELOG.md
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Id4fd3de604bbaadc6f4dccc21ea11437f329166f
2026-04-28 15:36:31 +08:00
Hongjin Li eeb89d7e8e feat[vdpu384b]: Supports vdpu384b scaling down
Platform: RK3538/RK3539/RK3572
Spec: h265/h264/avs2/vp9/av1

Change-Id: I517c2d9a0d59e5c857198d3812dff6b37ca232f5
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-04-24 14:18:14 +08:00
Hongjin Li 9a66cc6ceb refactor[scale_down]: Thumbnail Frame Info.
Change-Id: If956281f03224189200c6000f845668b9062ec6c
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-04-24 14:18:07 +08:00
Hongjin Li 35811e926a fix[sys_cfg]: For AFBC, fixed border extension of 8 pixels.
Platform: RK3538/RK3539/RK3572
Spec: h265/h264

Reported-by: ShiFang He <hayla.he@rock-chips.com>
Change-Id: Ibd615e1fdbf646a80e2aca8126dd581684cba8c2
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-04-24 09:12:00 +08:00
Hongjin Li 045eb8ada2 fix[vdpu38x]: YUV400 should be calculated as YUV420
Platform: RK3576/RK3538/RK3539/RK3572
Spec: All

Change-Id: I409d21884c8c2c426adc7ce0d8ff2073b0461b94
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-04-24 09:01:50 +08:00
Herman Chen d2d5f9d69b chore[inc]: Prepare for array refactoring
Change-Id: I2e0d90ed31ef90542ba08817e31205ae30d423dd
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-04-23 07:45:39 +00:00
Yandong Lin 264553f957 fix[hal_h264e/h265e]: Fix the top address of bitstream buf
The bitstream output address supports wrap-around from bot to top, but the current
size configuration will cause page fault. Set size to -1 to fix this issue.

Error case:
The output buffer size is set to full buffer size which causes page fault
when hardware tries to wrap around to top address.

Solution:
Set output size register to buffer_size - 1 to enable proper wrap-around.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I2508dfba2007b3e0fb5c82bd5060fbf77ee66421
2026-04-23 02:05:15 +00:00
Yandong Lin 2b7df1d72d chore[git]: Add .claude to gitignore
Change-Id: Ifc1263d46c5abc0f9f702f2e7ff6b1ae9658d97a
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2026-04-22 08:56:20 +00:00
Herman Chen 39468b5e6d chore[mpp_trie]: Add last info in add_entry
Change-Id: I97d1e60d9ea4132f9594d7ee656306526ca7ac97
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-04-22 02:42:45 +00:00
Herman Chen 8ccfd3412b feat[mpp_trie]: Add progressive support
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic83ecefd878365eacce5bf8af9e40beabd26c3a7
2026-04-21 22:48:23 +08:00
Herman Chen a551c9bf0b chore[git]: Add .cache to gitignore
Change-Id: Iab8253c4ff669d94411db68424d15835d21eac1c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-04-21 22:38:57 +08:00
Hongjin Li b26df88dfe test[dec]: Check the slot pointer to avoid coredump
Change-Id: Ie52ef48367471343e85e1f8960a05738bac6dccd
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-04-21 10:23:50 +00:00
Hongjin Li 088cb8dbf1 fix[h264d]: Add missing api call in rkv reg
Platform: RV1126/RV1109
Spec: h264

Error case:
Core dump occurs while decoding the H.264 bitstream.

Solution:
The call to hal_h264d_explain_input_buffer was lost during the HAL
API registration refactor. Restore it to ensure input buffer
info is properly explained before generating registers.

Change-Id: Ic290c096d7b4b66692d7fc2680c9954330b42b3c
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2026-04-21 17:33:38 +08:00
vance.wu 97a37d1fa6 fix[vdpp]: Fix the vdpp buffer dump behavior
- Add failure check for mkdir & mmap
- Fix the error where the dump files were closed twice

Change-Id: I68bb6bebee94ac1ca012e6b39146b8c0a59b6e44
Signed-off-by: vance.wu <vance.wu@rock-chips.com>
2026-04-21 16:29:00 +08:00
hayla.he fc92f0a890 chore[vdpp]: Update libvdpp to v1.4.2
- Add the result of pyr and bbd for slt
- Add mkdir before dump input/output data

Change-Id: I6cd6fe9e73ba666ebc893392fb58309ab5fded1a
Signed-off-by: hayla.he <hayla.he@rock-chips.com>
2026-04-21 15:09:07 +08:00
Herman Chen f5f96c00c0 fix[cmake]: add PRIVATE to ASAN_LIB
Change-Id: I14f2c40de20371de127975aa9ff74c0924c9fe14
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2026-04-17 06:20:50 +00:00