Commit Graph

2797 Commits

Author SHA1 Message Date
Herman Chen
436841d704 [hal_dec]: Add rk3588 8K decoder hw id support
Change-Id: Id3debfbb2e8d1bd1661b627976c3627bb431466f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-12 15:24:03 +08:00
Herman Chen
6beec8ce65 [mpp_soc]: Add rk3588 support
Change-Id: I9a8829a1f0910c6de2062cd1c6b95d0c7ef71803
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-12 12:29:03 +08:00
Yandong Lin
c2768e1b86 [mpp_impl]: modify dump frame default size
Default size is frame size.
If want to scale down, setprop mpp_dump_width/height.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I6aa877b9c141501f6921985956f377323c38546b
2021-11-11 14:20:23 +08:00
Yandong Lin
1c03947d59 [mpp_dec]: Optimize sort pts function
Record every pts of pkt to link, and sort link by pts.
When output the frame, remove the pts from the link and set to frame.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Id987dea0195c24d2bd573416e80a3ef2f58d6a31
2021-11-10 21:07:43 +08:00
Yandong Lin
ea564af5c6 [mpp_list]: Add list_sort func
Porting from kernel lib/list_sort.c

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: If6b0e07a863a8e95b47f2b89a2941d21674c9108
2021-11-10 21:06:49 +08:00
Herman Chen
d097c445c7 [mpp_enc]: Fix rotation case GET_CFG mismatch
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ie4ba9fed993495b8deddab9740531cf15337a872
2021-11-10 09:29:39 +08:00
Yandong Lin
ac6f8b1384 [h264e_vepu]: add cfg to disable mb rc
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I71e72164756b23f181a67a8b8799b9867a0854fb
2021-11-09 18:26:25 +08:00
Herman Chen
0bc33cf484 [hal_task]: Remove hal_enc_task.h
Change-Id: I6fefe59d189c80981a253d249afd8364fe9b7242
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-06 17:44:49 +08:00
Herman Chen
47bb6ea02a [mpp_hal]: Remove enc define from HalTaskInfo
1. HalTaskInfo will be used in decoder only
2. Remove vepu22 support

Change-Id: I6bf1410c570b995a7bb082b0de00d8a7e749d999
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-06 17:21:13 +08:00
Herman Chen
7e2aa8798c [mpp_cluster]: Change callback return type
Change-Id: I2401f9e52f6af4552814b9c3e39f9341f8af2f10
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-06 16:25:31 +08:00
Herman Chen
fb144872ba [hal_task]: Remove unused variable
Change-Id: I72b2b8d13e775cafaede45e7322b9909e71f3407
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-04 09:19:51 +08:00
Herman Chen
6e0f898707 [mpp_dec]: Optimize decoder flow
Change-Id: I98805ad6f9595d1a0339c466fddebb7c44348a16
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-03 15:54:25 +08:00
Herman Chen
f0c57cde02 [mpp_lock]: Add gcc atomic macro define
Change-Id: I3e94cc7be9a51f5d674a132c0a2e6f7afba61d34
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-03 11:27:35 +08:00
Yandong Lin
786b79f976 [h265d_parser]: Fix h265d parser crash issue
The split_ctx is malloc in h265d_init, but the split_parse parameter may
be set after init, so need to dynamically judge split_ctx whether is
null.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I1fe4840cd17a2e1e38833df5af6dc7aaab4853a4
2021-11-03 08:36:49 +08:00
Herman Chen
e63b8d33de [mpp_meta]: Use macro to generate code
Change-Id: Ieba0c0b14239277a1e7e088cf29a4c5d0d344731
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-02 20:11:05 +08:00
Herman Chen
4a80ff5ed1 [mpp_meta]: Add performance test case
Change-Id: Idef21d8fad78bc15f09b98561b102943ae1bbacd
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-02 19:57:52 +08:00
Herman Chen
e61bfa736f [mpp_meta]: Improve performance
Change-Id: If2177552e5b71cd8acf5bfdb3e0a2ae20af71b4d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-11-02 19:57:52 +08:00
Yandong Lin
53f514c510 [mpp_dec]: Fix double free issue
When use mpp_mem_pool to alloc buf, should use mpp_mem_pool_get/put to
alloc/free buf.Otherwise, the buf will be double free.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I902bc670a4088be36901d4c62e4e21c0233b25fb
2021-10-27 08:48:42 +08:00
sayon.chen
09d2bca7e7 [h265e]: Add sao disable cfg
Change-Id: I446178d5d2aefa26750382f126fac582ae93e16c
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2021-10-25 10:21:49 +08:00
Herman Chen
026a768de5 [mpp_buffer]: Reduce lock usage
Change-Id: I639922cf582feea5e027edfb2ae0dd9a9fb85bd6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-22 11:47:46 +08:00
Yandong Lin
58543adfed [h264d_slice]: check subsps value
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Iff2b668ceef45bac857ed80e0b8d8ae25e992437
2021-10-22 09:08:29 +08:00
Herman Chen
fd20cf4740 [test]: cleanup test code
Change-Id: I6bf234c25b2d6709aaf095ce641812d58ad0ab68
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-21 18:19:54 +08:00
Herman Chen
8ae47457a0 [mpp_server]: Add device callback to mpp_server
Change-Id: I985d48e6625d3656e080614ab958e26dfc54a2c8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-21 15:30:56 +08:00
Herman Chen
180dd8136a [test]: Improve decoder tests
1. All cases use reader to improve performance.
2. Rename cmd parser and create share data on cmd parsing.
3. Add reader_size function to get file size.
4. Change test log flag to -v options.
5. Fix FileBufSlot release MppBuffer issue.
6. Use index_read in multi test to improve performance.

Usage:

mpi_dec_test -i xxx.h264
Decode to the end of input stream.

mpi_dec_test -i xxx.h264 -n 10
Decode to the first 10 frame of input stream. If the xxx.h264 has only 5
frames then loop decoding from the beginning.

mpi_dec_test -i xxx.h264 -n -1 -v qf
Infinitely loop decoding xxx.h264.
It is usefull for performance test.

mpi_dec_multi_test -i xxx.h264 -n -1 -v qf -s 8
Parallelly infinitely loop run 8 decoders with same xxx.h264 input.
It is usefull for performance test.

-v q  will disable each frame output log.
-v f  will enable fps print per second.
-n -1 will enter infinite decode mode. Press <enter> will quit the loop.

Change-Id: I3d54123f0e9b9a85cb35e4fea71ebf665889750a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-21 15:17:48 +08:00
Herman Chen
02320fb506 [meta]: Add qpmap for encoder roi direct config
Change-Id: Ic64fa548f60f723e971c5574b6b290ddaf454809
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-20 14:55:46 +08:00
Herman Chen
d56760acd2 [test]: Improve decoder reader usage
1. Change to new reader slot interface.
2. Use reader slot in all decoder test case.
3. Do not async reset on eos to avoid eos stream issue.

Change-Id: If296f6555fd0e57f6931085f02b0378e41a5f2ce
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-20 09:38:37 +08:00
Herman Chen
7b86c1abe4 [mpi_dec_utils]: Add decoder frame rate print
Change-Id: I46006cb51205ea98204c803f4753039409e8171d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-19 14:29:34 +08:00
Herman Chen
31de64ae15 [utils]: Add fps calculation function
Change-Id: I577f168d448846addcc3be720b09aa832bb7fdd2
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-19 14:05:40 +08:00
sayon.chen
72559f581d [mv2parser]: Fix split case last packet issue
Fix error on split case that last packet is not sent to parser.

Change-Id: I4f32644e4740f592cc5c6dfdf592a8bbc79d6599
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2021-10-19 10:28:20 +08:00
Herman Chen
0aeb6e46b6 [mpp_lock]: Fix compile error on bool type
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If856cebe92db7e982f9781dfbe12b978e88bfac3
2021-10-18 17:05:41 +08:00
Zhihua Wang
7b29b55281 [vepu541_common]: Fix roi error log
Signed-off-by: Zhihua Wang <hogan.wang@rock-chips.com>
Change-Id: I3d25310cb0a3b25a6036d30f51ff01328dfd3202
2021-10-15 15:28:09 +08:00
Herman Chen
b47190aa36 [hal_vepu541]: Fix fbc input stride issue
AFBCV1 input should align stride to 16.

Change-Id: I1d89d551cb930fa0fd842482f35eafb087ded6fa
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-15 12:18:30 +08:00
Herman Chen
c153fa71dd [mpp_cluster]: Fix compile warning
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9f20c382f59fd8eea9c924c7f62b6bd69d564856
2021-10-14 17:13:37 +08:00
Herman Chen
926e0b7c22 [mpp_lock]: Add nop on lock
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I6290a52939615310c344cafbf90daf28323528d5
2021-10-14 17:07:50 +08:00
Herman Chen
ee2b8bb7c2 [dec_utils]: Improve reader performance
Use a new thread to read the whole file. Then all decoder instance can
share one single reader and read input file only once.

Change-Id: Iddc3322286bf61e449074143bbfb90fd1ff6b70a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-14 14:49:31 +08:00
Herman Chen
a96e644da8 [osal]: Add spinlock implement
Change-Id: Ib520e6732d007370545508ae18d6c74fa4d9d80f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-14 14:47:44 +08:00
Herman Chen
3aad89dee8 [mpp_dec]: Add mpp_dec_callback
NOTE: The MppCtx should be restored for external user.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2a4241ddacb14196f43b29a59b46658131ebfcee
2021-10-13 17:17:56 +08:00
Herman Chen
1894648650 [test]: Rename data type in mpi_dec_mt_test
Change-Id: Ia060fea489f3e5b63f1098db64fd5e0ea3dbd463
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-13 15:45:53 +08:00
Herman Chen
0589fb5bd3 [mpp_dec_cfg]: Add external notification callback
Add callback on two events:
1. packet ready and wait for new packet input.
2. frame ready and wait for output frame poll.e

NOTE:
Add callback command param for version compatible sync between user
and mpp library.

Change-Id: Ic41d495a06cf653acb6b5100699f1b7f5f735f2e
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-13 15:42:11 +08:00
Herman Chen
2cf866c7dc [test]: remove mpi_test
Change-Id: I95d526d9d81ab34895f8f095e2e497bebe5df33b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-12 10:44:33 +08:00
Herman Chen
7256403b49 [mpp_callback]: Optimize callback module
1. Move callback module to osal for later mpp_device callback.
2. Make callback command a pre-defined value to avoid include issue.
3. Separate callback cmd and param to separate header.

Change-Id: Ibd5cf11650a1cd2a326baddb82dc60fa1767ac87
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-09 17:14:44 +08:00
Herman Chen
8285f5cd94 [mpp_cluster]: Add mpp_cluster module
Change-Id: I33befe847b6215572b470b41afea2398019d568c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-09 16:33:06 +08:00
sayon.chen
44073b6035 [hal_hevc_vepu541]: Adjust I frame bias cfg
Change-Id: If215c15ee452f0853b359484a36893d83dfb8bb1
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2021-10-09 09:51:23 +08:00
Herman Chen
1732ff2549 [mpp_buffer]: Add caller when using mpp_mem_pool
Change-Id: I7275d68c08b15fb0413585e7e0d0fdf7af204162
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-10-08 09:09:28 +08:00
Herman Chen
5598a015a7 [mpp_mem_pool]: Add debug flag
Change-Id: I562ccfe062546c9f4a20711fa1d3553ab100c7ce
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-09-30 17:29:18 +08:00
Herman Chen
31814aea59 [vepu]: Add offset_x offset_y support for vepu
Change-Id: I672ac7f9518544fc08bdf8a887b7686f2f7b1abf
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-09-30 16:46:58 +08:00
Ding Wei
70d330b271 [vproc]: missing set mode, when 2 in 1 out case
Change-Id: I28241fed2347ad85204c82b8e84c350e49fc42a2
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2021-09-23 15:30:24 +08:00
Herman Chen
6cc2ef5f75 [mpp_list]: Add list_mode and list_move_tail
Change-Id: I7be6f69a073eeedef1b0d9ff7e9a47b48df8a8fa
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-09-17 11:11:43 +08:00
Herman Chen
c5cd650fdd [mpi]: Add start / stop / pause / resume ctrl cmd
1. Move mpp_start / mpp_stop function to control command.
2. Add pause / resume control command.

Change-Id: I525668a2831eb8f23e12fbd7c1cb29c11fdcc868
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-09-17 11:11:43 +08:00
Herman Chen
db487e5d7f [mpp_dec]: Add MPP_DEC_GET_CFG cmd implement
Add MPP_DEC_GET_CFG call before setup decoder config in mpi_dec_test.

Change-Id: I1ed8c2be44be9de0e4b1364a1401a81a9ecfd6e1
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2021-09-17 11:11:43 +08:00