Commit Graph

3026 Commits

Author SHA1 Message Date
Herman Chen
793acb6f66 [mpp_buf_slot]: Remove extra 16 line in fbc buffer
The extra 16 line is added in different codecs. There is no need to add
it again in buf_slot module.

Change-Id: I31c5dc8caa9f557382fdbf2db1d6021b4aa952ba
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-26 17:11:35 +08:00
Herman Chen
4461331524 [hal_h265e_vepu580]: Fix debreath color issue
Change-Id: I9943b1e37e2cd3c2b811eeaddf054cbb378d6f7d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-26 16:30:00 +08:00
Herman Chen
323291c2b9 [hal_h265e_vepu580]: Fix crash on FBC debreath path
Change-Id: I14cd9ea0aa8740c9357b8d5699f2111d10bb7f8a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-26 11:47:47 +08:00
Hongjin Li
9d9aeba533 [mpi_enc_test][mpi_dec_test]: close slt verify file
Change-Id: Id303202846e9e415b0837e73115ce3c93503e608
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2022-04-25 16:12:49 +08:00
Herman Chen
0b949f4b8c [hal_h265e]: Increase h265e recn/refr buffer size
Change-Id: I160b8129351a0020b4afff8c5d350ad28a60296c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-25 11:45:29 +08:00
Hongjin Li
4f4c73a7ae [h264d_dpb]:Fast play is disabled by default
Flip disable_fast_play to enable_fast_play,
Fast play is disabled by default.

Change-Id: I168e02a9d84590c3b2b92fe75b2b37c655c8c63e
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2022-04-22 09:59:18 +08:00
Herman Chen
f50df9b272 [mpp_enc]: Optimize encoder flow
1. Create hal_task_group in mpp_enc_hal.
2. Reduce EncAsyncTaskInfo copy in async flow.

Change-Id: If81ffc72122f87eb6d2f83bb5ecd7de5400bc140
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-21 09:37:52 +08:00
Herman Chen
a99d8e9921 Unify sync task and async task
1. Unify old EncTask and new EncAsyncTask.
2. Use rc task in EncAsyncTaskInfo to replace rc_task in MppEncImpl.
3. Use usr in EncAsyncTaskInfo to replace frm_cfg in MppEncImpl.

Change-Id: I9d6f308b12828ff63268e35845b6813c1d1ae8ae
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-20 16:01:36 +08:00
Herman Chen
6f9eda5bcf [mpp_dec]: Add compat check when inc fbc buf size
Change-Id: I8f6314683a99343556af3f7dfb35377a01480737
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-19 08:30:01 +08:00
Herman Chen
f1324e29a2 [mpp_compat]: Add mpp compatible spec module
This module is for backward / forward compatiblity with external users.
1. Support compatible feature query.
2. Support update user program compatible feature update.

Change-Id: I7661f17c442eca0a0d0d57d2a35efdb5fd88be72
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-19 08:29:41 +08:00
weiguo zhou
a4f7fcb6cc Fix typo in toplevel readme.txt
Change-Id: Ieebf0d09c522039548a91adc01e0d5e0b22aeae9
2022-04-19 08:23:54 +08:00
Hongjin Li
7bcf0d45dd [mpp_opt]: Modify the initialization number of opt
Change-Id: I3fef98f0feab2004b5c78dabcc4d792121bd7f1a
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2022-04-15 10:59:00 +08:00
Hongjin Li
4e236af2a3 [h264d]: Modify fd storage method
For the problem that the 3399 platform fd is not enough,
modify the storage method of the fd

Change-Id: I489d5e7c16f499093099e7ead9c838dbe5c1de5c
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2022-04-14 20:43:17 +08:00
Herman Chen
f903701f44 [rk_mpi]: Add encoder query function
Change-Id: I869d30bf11b26feee02f5ba307d98f6bbdcf7058
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-13 17:34:36 +08:00
Herman Chen
56adedbc37 [hal_task]: Fix hal_task_get_count function
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib206c260cb55f0b98fca38e9d93ce235c1b3f66a
2022-04-08 15:10:58 +08:00
Herman Chen
072a0d6f0d [hal_h264e]: Fix extra syntax error log for dpb
https://github.com/HermanChen/mpp/issues/42

Change-Id: I85298a2cece2166932519a7cacc22806b42d5092
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-08 14:32:23 +08:00
Herman Chen
3e97ec8b1c [hal_task]: Add get data interface for zero copy
Change-Id: Ife6df62f6c1f251ffce08e495aa54193ed9257a5
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-08 11:46:34 +08:00
Herman Chen
c2f3236d3b [mpp_dec]: increase fbc ver_stride
Change-Id: Id56ee95567ea869624f783602e0a9e10ec5dc367
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-02 09:20:06 +08:00
Hongjin Li
14f3ef4a7c [h265d_ps]: Fix h265 video flicker issue
The update flag should be set after update of pps

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I5db21e1d16ce54d5f2342bcd2625b221f45b33f3
2022-04-01 18:14:30 +08:00
Herman Chen
275705e088 [mpp_list]: Add wait function
NOTE: The wait function MUST be used with lock protection.

Change-Id: I14f48795d5833c9aedc311c56139775bf07f0e79
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-01 18:08:11 +08:00
Herman Chen
7a5544b8ec [rc]: Fix rc issue in async mode
1. Add async rc preset function.
2. Update rc_task pointer on async_wait task.
3. Save frame type in rc task info rather than in rc ctx.

Change-Id: I956b5f14a01e5c2cdc8b4c5f9c26660274a7f0e4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-04-01 18:07:30 +08:00
Xingwen Fang
e86db5e072 [mpp_dec]: remove sleep when the output queue is empty
When the output queue is empty, sleep 1ms is added to avoid an
infinite loop, which leads to the problem that it takes a long
time to acquire the lock probability when outputting the frame
queue. Remove the sleep operation inside get_frame, and the APP
will ensure the problem of dead loop calls.

Signed-off-by: Xingwen Fang <fxw@rock-chips.com>
Change-Id: Ibbbaa352cf6a9fd386f7e1f944571658295977e5
2022-04-01 14:17:42 +08:00
Herman Chen
664d3346bd [mpp_service]: Add hw irq capacity check
Change-Id: I06788771ee1085433a35e90d63335f5c0ba168b9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-31 11:11:22 +08:00
Herman Chen
be4132bc53 [h264e_vepu541]: Increase recn / refr buffer size
Change-Id: Idf32e9bf2ac87e82d853e98401dc9a815d284e85
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-30 14:26:07 +08:00
Herman Chen
dd7097fbab [h265e_vepu580]: Reduce colmv buffer size
Change-Id: I09c6cc06df0026381213fe5c2377c8d11878f12c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-28 17:03:16 +08:00
Herman Chen
f0079f49d2 [h264e_vepu580]: Add dpb hal func and more buffer
Change-Id: I1e458732b821571d25079aebe19831948bd591ee
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-26 16:04:22 +08:00
Herman Chen
a82efd0433 [mpp_enc]: Fix missing sps/pps in I frame
Change-Id: Ica91b96de0ee8270a81e2aad5c5d0ab9c74e644d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-25 16:56:19 +08:00
Herman Chen
a2e81ef4a8 [mpp_runtime]: Reduce allocator log
Change-Id: I28ed5a1bdde5bda96379e14a2cbd36ca607c4b88
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-24 11:43:31 +08:00
Herman Chen
43f097075a [mpp_enc]: Fix async flow rc issue
Change-Id: I1eb23d1d4919cd9745216232bb679c99acca50c0
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-23 19:17:58 +08:00
Herman Chen
9f3c33c6f0 [h264e_vepu580]: Add encoder status read
Change-Id: I5e3eeef6a37d3e29253041f8947fd25971da7c69
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-23 19:17:26 +08:00
Grey Li
882f423bbf [mpp_dec]: fix reset can't break poll hold
Signed-off-by: Grey Li <grey.li@rock-chips.com>
Change-Id: I7fdd77d1f90394bb899bea4d63a0b52e46fa4d02
2022-03-23 11:23:01 +08:00
Herman Chen
9a6ec66944 [mpp_enc]: Fix stuck on async encode flow
1. Skip extra frame in input list when encoder is resetting.
2. Clean all wait bit flag after process cmd or reset.

Change-Id: I2f81c89b9e550d1d3ca364a2f18976efd4e1da7c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-22 15:15:21 +08:00
Herman Chen
392ef8b8c2 [mpp_thread]: Add trylock return value
Change-Id: I3e5ac1e651535e247845f44c3730ea8dbb098c17
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-22 15:11:57 +08:00
Herman Chen
de3df2acc8 [mpp_enc]: Fix issue on async mode fps frame drop
Change-Id: Ife600d4ea176d052ab142a15d72f2f57ad6a7351
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-21 11:44:19 +08:00
Herman Chen
03e1d86b08 [mpp_device]: Add MppDevPollCfg to poll function
Change-Id: I53ded32c3ebd70ba3842459b507782f3bd50105b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-21 09:59:14 +08:00
Fenrir Lin
04a6811127 [osal]: syslog remove LOG_PERROR
Signed-off-by: Fenrir Lin <fenrir.lin@rock-chips.com>
Change-Id: I592b76a1d5f6fb0bbd8b36d2d5857ac29d16dc4d
2022-03-17 18:15:21 +08:00
Ding Wei
4dcc3f6134 [hal_h264d][hal_h265d]: Fix ccu_mode issue
Change method to differ bettween refers and decout

method:
The poc_height mark 3 for refers which the base addr is the same as decout.
if the base addr and decout is the same, hardware will hung work.

Change-Id: I7ab71bb0f435615aea6b722f28c7b0dd57fb9674
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2022-03-17 17:21:20 +08:00
toby.zhang
0b0d34c2db [hal_h264e_vepu580]: Enable MD info output
Signed-off-by: toby.zhang <toby.zhang@rock-chips.com>
Change-Id: I106db5adebf75d6fe94b47ecc0e035c24c8bec50
2022-03-17 14:23:03 +08:00
toby.zhang
9a6af10864 [mpi_enc_test]: Set qp_init to -1
Set to -1 for auto initial qp value.

Signed-off-by: toby.zhang <toby.zhang@rock-chips.com>
Change-Id: Ibb1ba56a67b1538d239778a53d1067d4d83040d2
2022-03-17 11:48:12 +08:00
Herman Chen
55023f7a14 [h264e_vepu580]: Fix fbc header pagefault
Enlarge fbc header buffer for extra 16 line which is required by
hardware.

Change-Id: I6eac51d902b57424bf2c88cf3db6241cf8718fdc
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-17 10:39:37 +08:00
toby.zhang
5de9134b06 [vepu580_tune]: Subjective performance tuning
Signed-off-by: toby.zhang <toby.zhang@rock-chips.com>
Change-Id: I6ceee7cc9bfa96c440f64324e64376cd236227ea
2022-03-16 15:07:19 +08:00
Herman Chen
51dd9079ae [h264e_sps]: Fix constraint_set flag issue
Fix high profile constraint_set3_flag value issue.

Change-Id: I9d2b5005365144ccb9b932783ebd4335758fcc17
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-15 17:03:57 +08:00
Herman Chen
8a85dc5db0 [mpp_enc]: Fix stuck on reset async mode encoder
Change-Id: I11ff972d9dccd81ea4d274443c920710379f1aff
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-14 09:00:04 +08:00
Jeffy Chen
c07169d533 [misc]: Fix a few compile warnings and errors
Reported by llvm-clang.

Change-Id: I62f22fe5754d3e8d77405d213c81fda5d9f5e27d
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2022-03-11 17:45:10 +08:00
Yandong Lin
da6654c148 [h264d_init]: fix h264 video with 10bit parse err
Rootcause:
The frame_mbs_only_flag is zero in the 10bit h264 source.
then, fbc fmt is unmarked because of frame_mbs_only_flag=0
means the source may contain filed that need go to iep.
Solution:
Add filter for 10bit.

Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Ia11f1216aff4fd674d5618d6f40b0e74e7e098f2
2022-03-10 10:28:50 +08:00
Herman Chen
f02fd231ed [mpp_enc]: Use meta with default value to get info
Change-Id: Id01bf8fb813bf60888730c9e9a6d17b4bc7914a7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-09 11:19:38 +08:00
Herman Chen
72a6118b99 [mpp_meta]: Add mpp_meta_get with default value
Change-Id: I2285ace50341792b1979130d19a3ec642346e4bc
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-09 11:18:23 +08:00
Hongjin Li
98ac9b259b [h264d_dpb]: Fix h264 video flicker issue
When the poc of the idr frame is 0, the subsequent frames with poc<0 are
discarded, which will cause the screen to flicker.
Add parameters in mpp as switches for immediate output of idr frames.

Change-Id: I522334dd1e81fc6aeeb60e71404f3a7071a5ecae
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2022-03-09 10:22:16 +08:00
toby.zhang
22caf3f1f8 [hal_vepu580]: Add scene_mode to distinguish ipc and none ipc scene.
Signed-off-by: toby.zhang <toby.zhang@rock-chips.com>
Change-Id: Ib62c3eccbcce4b7517cf4a5d930260e982080ea9
2022-03-08 14:58:55 +08:00
Herman Chen
2eb15d5918 [mpp_enc_cfg]: Add tuning scene mode check
Change-Id: I0d90589c6e57be6e348f6510a79d4a7ecc83ce9c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2022-03-08 10:48:25 +08:00