Commit graph

4048 commits

Author SHA1 Message Date
Hongjin Li
3ac819df3b feat[err_proc]: Add a new command: DIS_ERR_CLR_MARK
Platform: General
Spec: h264/h265/avs2/avs2d/m2vd

MPP_DEC_SET_DISABLE_ERROR:
Comes with an error mark by default.

MPP_DEC_SET_DIS_ERR_CLR_MARK:
Takes effect when MPP_DEC_SET_DISABLE_ERROR is enabled and
is used to clear the error mark.

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I82b00c737bb72bdc420267d36c28752a5e3ee9a6
2025-03-24 15:06:27 +08:00
Johnson Ding
83f4b5abd6 fix[avsd]: Skip redundant zeros between fields inside one picture
Hardware decoder may failed at decoding the last field of one picture
when there are too many zeros between first and the second field. So
we should tell hardware to read from the exact place of field stream.

Change-Id: Ia78f5d0a97136861ceb3ab198419fe51905c3b2f
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-03-24 01:58:24 +00:00
Yandong Lin
5b940db958 feat[mpi_enc_test]: Support enc for kmpp flow
Add param -kmpp to enable kmpp.

Change-Id: Id0e0dd64cca8f4da29fa7048f22beb3918162bd6
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-03-20 18:38:33 +08:00
Hery Xu
6bcfb2c0f7 fix[av1]: parameter is 16 bits
Signed-off-by: Hery Xu <hery.xu@rock-chips.com>
Change-Id: I76bcac5896cee83ebfe6e872b4e161f9841c6d96
2025-03-20 09:54:13 +08:00
Herman Chen
a4326e2cbc feat[kmpp_obj]: Add more kmpp_obj functions
1. Add kmpp_obj_get_by_name for quick object creation.
2. Add kmpp_obj_get_by_sptr for quick shm import.
3. Add ioctl support and sample flow by KmppIoc.
4. Add KmppBuffer test to kmpp_obj_test.
5. Add kmpp_obj_set_shm_obj and kmpp_obj_get_shm_obj for obj access.
6. Rename obj handle to KmppShmPtr.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I996fe5e6dc882c8ed943f0d3bd2c5c8a69a29cd0
2025-03-18 16:08:36 +08:00
Herman Chen
729e57a6d7 fix[base]: Fix strncpy compile warning
Change-Id: I8c282e20251b2e3e7ea0f67bf0a89bb0dc0fb6a9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2025-03-17 10:08:51 +00:00
Yanjun Liao
1b0aef1de8 fix[hal_h265e_vepu580]: Fix overflow status check
Encoder should continue when indicates stream overflow hw_status.

Change-Id: I5a04ca6016bb0c0050ae291832b467e3b7e53cc5
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-03-11 18:10:06 +08:00
Yandong Lin
2f2e5f5c3e fix[kmpp]: Fix channel dup issue
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I20ab644d04156987881ce9c8d384de004b2f4c61
2025-03-10 07:56:00 +00:00
Yandong Lin
4ed4105a3c fix[os_log]: Modify default log option for linux
LOG_PERROR: Directs output to stderr stream.
LOG_CONS: Fallback to /dev/console only when syslogd is unavailable.

The syslogd maybe unavailable in linux os.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Iae95f7df9e6ed3f7e8ce15accce6fae5a65f2fef
2025-03-05 10:05:43 +00:00
Hongjin Li
ad26e20d69 feat[vdpu384a]: Support RV1126B new features
Platform: 1126B, Support h265/h264

1. H264/H265 CABAC Table Hardware Implementation
2. update h265/h264 global Parameters
3. h265/h264 update rcb buffer size
4. update fbc/pp/sal chn control

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Ia22d30272f7c20c6ab33850881b6a0135a4264b2
2025-03-04 14:13:18 +08:00
Herman Chen
ae356b52a0 fix[kmpp_obj]: Fix warning on arm32
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I233a6f12b50f02680630605831615c23f4810e0e
2025-02-28 18:06:12 +08:00
Yandong Lin
3895ee0651 fix[kmpp]: Set KEY_OUTPUT_INTRA meta to packet
Change-Id: Ib4122d323eaa15ca793fdf5fc82fdcc0d7fc86a3
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-02-24 20:41:48 +08:00
Hongjin Li
0b030ca753 fix[sys_cfg]: Align rk3399 h_stride to an odd multiple of 265.
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I4d46910836614b8c13d7b67172bc2f559f162492
2025-02-24 01:22:49 +00:00
Hongjin Li
f3bb502cd9 fix[mpp_sys]: Fix old IP vertical alignment to 16 issue
Platform: RK3399/RK3588

Error case:
When aligned to 8, decoding with the old IP results in green bars.

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I8e23a4b80b4c99c98e9b765a876918ed10a503e1
2025-02-24 01:22:36 +00:00
Herman Chen
d93f209af9 fix[kmpp_obj]: Disable /dev/kmpp_objs not found log
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I74e94ef7b2d21ca4bb9a79a457fcd393a91f5c14
2025-02-21 04:48:13 +00:00
Yandong Lin
c29aedf224 fix[mpp_soc]: Fix cap_fbc for rv1126b
rv1126b only support raster output.

Change-Id: I05fcf331fd872602a26912cf21781512df348353
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-02-21 01:24:47 +00:00
Hongjin Li
466f21392a fix[sys_cfg]: Optimize comparison information printing.
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I5220abdff93957f769de1eca9e527085976487be
2025-02-20 18:01:15 +08:00
Hongjin Li
2baa6949ca fix[sys_cfg]: Print comparison information only once.
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Ic2b44719e075b7a4d66368ba8010eae25cae5491
2025-02-20 08:26:41 +00:00
Rimon Xu
42ad9666ae fix[mpp_meta]: Fix compile error
Compile android/arm32 with toolchain:
    android-ndk-r10e

Compile message:
mpp/base/mpp_meta.cpp:45:59: error: statement-expressions are not
allowed outside functions nor in template-argument lists
define META_KEY_TO_U64(key, type) ((RK_U64)((RK_U32)htobe32(key)) |
 ((RK_U64)type << 32))

Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: I3783ea0ab63dc1c63373662f5ec0dcf10369b6e2
2025-02-20 07:02:29 +00:00
Herman Chen
52e8ae7ac1 doc: Fix developer guide typo
https://github.com/rockchip-linux/mpp/discussions/785
Reported by: Huangli95

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I825b56477299854eedfe9dbe38e93f9769b9800d
2025-02-20 03:02:28 +00:00
Rimon Xu
beb2bd2793 fix[vepu510]: Mark frame first part when split slice out
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: I5c481ca5738e1ad1ae466e8e91749f4bf1c8a209
2025-02-18 17:29:36 +08:00
Herman Chen
db2cd71fed chore[mpp_buf_slot]: Modify sys_cfg mismatch print
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ia1d5601f7486096a1136b5befde968dd8d8df6a9
2025-02-18 17:16:19 +08:00
Yanjun Liao
3b118f75cf feat[mpp_soc]: Support rv1126b soc
Change-Id: Ifedb67d4a4f7f2c4107f94dc53e14c2b446aa76a
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-02-18 09:02:16 +00:00
Yandong Lin
c6232635ce fix[hdr_meta]: Fix hdr format for av1
Change-Id: I8f0fc44196af15969e2362ee25be1277d0203f20
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-02-17 01:48:12 +00:00
Herman Chen
834ea97586 fix[mpp_sys_cfg]: Fix align pixel stride on rk3576
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Id976b9de3c31a662e5777bb190c1ed52edd15728
2025-02-14 17:03:20 +08:00
Johnson Ding
bd8954a8f8 fix[vproc]: fix height out of boundary problem
Some interlaced stream with height not fully aligned to CTU may have
random values at bottom with some height. This part should not be
processed by IEP. Otherwise the output of IEP will have some flaws bottom.

Change-Id: Ia648d50b65511a091dee0701dae6f1b2b8e30407
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-02-13 06:33:22 +00:00
Hongjin Li
70b572a2c0 fix[mpp_sys_cfg]: Fix abnormal stride calculation.
Platform: General

Error case:
If the specification specifies a stride, it should be
configured according to the specification's stride rather
than calculated based on width and height, especially
in scenarios involving H.264 field-based sources.
For the case of FBC, hor_stride needs to be processed
based on pixels and is unrelated to bit depth.

Reported-by: Johnson Ding <johnson.ding@rock-chips.com>

Source: rk_32.h264

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I02058432f2baeeea4c5a87c6845b24de8a78b276
2025-02-13 00:20:12 +00:00
Rimon Xu
6253c0982c fix[h264d]: disable ref erorr when decode recovery frame period
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: I1c7ea6106caeb0ffe207bbccc6a14a44305c4400
2025-02-12 07:55:32 +00:00
Johnson Ding
75e9008ea9 fix[jpege_vpu720]: Correct encoded size config
Encoded width and height should align with MCU size.

Change-Id: If62629f9ca7275bafaa156b55af001b10b0e836b
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-02-11 08:14:10 +00:00
Herman Chen
8e5af8901a doc: Add kernel 6.1 support in developer guide
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9473eb9be6b733da420ac2e58fabf12b3399c15d
2025-02-10 15:17:22 +08:00
Hongjin Li
997cfe881d fix[buf_slot]: Correct coding mistakes.
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I4ca52cf44f09ffa08f4a73df1651d1881a636ccb
2025-01-24 14:20:12 +08:00
Johnson Ding
975a0b3e69 fix[build]: Avoid exporting toolchain to system PATH
Change-Id: Ic85b4a20df81d4a430ca9563d3555e38cfe97338
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-01-24 00:59:20 +00:00
Yanjun Liao
3ea5eb5a51 fix[mpp_enc]: Fix some exceptions when force pskip
1. Add rc model in when force skip frm
2. Fix ref frm error when force pskip
3. Disable pskip when cfg force idr
4. Support pskip frm as ref frm
5. Support force skip frm as is_ref or non_ref

Change-Id: Ib138ab75a9df2c4521cb376e3a3d7fd30565ecd9
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2025-01-23 18:04:48 +08:00
Herman Chen
d03adfa967 feat[kmpp_obj]: Sync to new kmpp_meta
1. Add userspace private data access.
2. Add ENTRY_TYPE_st dump.
3. Use new MetaKey and MetaType handle way same to kernel.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I66dd5119c789f1bfde8848ecc266a4bd57df1bb2
2025-01-23 11:42:04 +08:00
Herman Chen
f8289c298e feat[kmpp_obj]: Sync to loctbl without flag_type
1. Remove flag_type in MppLocTbl.
2. Seperate kernel and userspace EntryType.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If2da1b364ae200d0303c5a299dd698051911bdbc
2025-01-22 15:21:38 +08:00
Yandong Lin
58f6f8a207 fix[kmpp]: Fill pts/dts/flag to MppPacket
Change-Id: I1c5ef7bb49cfb146f38517fe7e8161383a33d255
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-01-21 09:54:05 +00:00
Chandler Chen
326f80d74d feat[mpp_buf_slot]: buf_slot add coded width alignment config
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: Ia66a6cf379a6668e914d4c4b071c568ba2cb3b40
2025-01-20 15:45:03 +08:00
Chandler Chen
a524df5361 feat[h265d]: Add vdpu383 hevc yuv444_10bit support
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: I14d7a8fac9f14283ecc364142ea93d80eda43fcd
2025-01-20 06:56:35 +00:00
Johnson Ding
fb957ea36a fix[vproc]: fix frame output disorder problem
When frame-field detection result changes from field mode to unknow or
frame mode, source picture will be output disordered.

Change-Id: I77d4da4d09b06e273e9e8b090182811a5e2c6f10
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-01-20 01:47:05 +00:00
Johnson Ding
1d285e9e10 feat[vproc]: Add more log for debugging
Change-Id: I594f796c87d82d346ce1a651eaac3f40812fdfb8
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-01-20 01:47:05 +00:00
Johnson Ding
66b669ef98 fix[vproc]: Fix field disordered problem
Change-Id: I69aa3ce0010eae221dc46fedd05d66b318e623f2
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-01-20 01:47:05 +00:00
Yandong Lin
3025933391 feat[mpp]: Support kmpp access
If you want to create kmpp enc channel.
1. mpp_create().
2. init and set kmpp_venc_init_cfg with ops in rk_kvenc_init_cfg.h.
3. set cfg with control cmd:MPP_SET_KMPP_VENC_INIT_CFG.
4. mpp_init().

Change-Id: Id3710bca86762e5d23e7cd6c89b5b911528adbfb
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-01-16 15:41:05 +08:00
Yandong Lin
2f1eac63f9 feat[kmpp]: Add kmpp module
Change-Id: Ia9c414edf625885fd551ad14f72dd1f7bc34172d
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-01-16 15:29:16 +08:00
Yandong Lin
fad0868986 feat[rk_mpi_cmd]: Merge cmds from mpp_interface
Change-Id: I6550486d6efbac43d6f30cdb6dfefa75a93a437d
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-01-16 15:04:18 +08:00
Yandong Lin
fc2a997a58 fix[mpp_enc_cfg]: Remove a redundant atr_str
Change-Id: I7553fcf8a7014ce3c2a13b1fd923ac91d78fb9d3
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-01-16 06:19:31 +00:00
Hongjin Li
686d5a60d9 fix[]: Fix abnormal FBC info issue in Info Change
Platform: RK3576

From: Product Department 2 czl

Change-Id: I058e36b426b2d4b894086547d5cf240e2f8f2cca
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2025-01-15 15:14:18 +08:00
Yandong Lin
c04a24f0e1 feat[build]: Add --toolchain to config toolchain for linux
for example
./make-Makefiles.bash --toolchain gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-

Change-Id: I4804b1e1759aab04f715d826fbe412087298cb89
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2025-01-14 10:36:28 +00:00
Johnson Ding
0b1c78701f fix[h264d]: Fix segment fault problem
Field buffer may be reset when encountering error at parsing.

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x50
Cause: null pointer dereference
    r0  00000001  r1  00000000  r2  aefe63a7  r3  00000003
    r4  00000001  r5  00000001  r6  00000000  r7  0000001c
    r8  0000000f  r9  00000000  r10 0000001a  r11 ee1b2650
    ip  ee1b1fb8  sp  ee1b2648  lr  f5db5c5b  pc  f0547bfc

backtrace:
     #00 pc 000c5bfc  /vendor/lib/libmpp.so (mpp_frame_set_errinfo+44)
     #01 pc 0010aa54  /vendor/lib/libmpp.so (get_field_dpb_combine_flag+796)
     #02 pc 00113990  /vendor/lib/libmpp.so (alloc_decpic+1456)
     #03 pc 00112da8  /vendor/lib/libmpp.so (init_picture+340)
     #04 pc 000fc128  /vendor/lib/libmpp.so (parse_loop+1092)
     #05 pc 000f7d10  /vendor/lib/libmpp.so (h264d_parse+212)
     #06 pc 0009b7f8  /vendor/lib/libmpp.so (mpp_parser_parse+164)

Change-Id: Iff4b628b7f807d6da448ea8553c5af613e63d328
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-01-14 11:18:10 +08:00
Herman Chen
f0ff240b87 feat[mpp_meta]: Use trie to index the meta key
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I634d447223e6e9d268642798a4fb0d11ad32cfb0
2025-01-13 17:41:51 +08:00
Johnson Ding
5b0f01d582 fix[vproc]: Fix error info missed problem
Change-Id: Ic9049ddec01ceaa1c160a7b3c2eada87133c140e
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2025-01-13 10:00:04 +08:00