Commit Graph

3830 Commits

Author SHA1 Message Date
Tingjin Huang
df0b9e3a0d feat[vepu580]: Optimize hal processing for smart encoding
Signed-off-by: Tingjin Huang <timkingh.huang@rock-chips.com>
Change-Id: I27ec19fcfa6c71bb1d084fea7d40853fed3e4603
2024-08-29 10:04:03 +08:00
Tingjin Huang
e03714e193 feat[vepu580]: Add qpmap and rc container interface
Signed-off-by: Tingjin Huang <timkingh.huang@rock-chips.com>
Change-Id: I9fb0683008880a2e025664052a64d290730e6b49
2024-08-29 10:04:03 +08:00
Herman Chen
a1a9422c26 chore[mpp_cfg]: Remove some unused code
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9b0efcba54328fae66ad06f66038bb314a66f6bc
2024-08-28 17:34:46 +08:00
Tingjin Huang
e0e70e96d2 feat[vepu510]: Add anti-smear regs setup for H.264
Change-Id: I46ce011c215a632c871ea8816563a2eb598146e0
Signed-off-by: Tingjin Huang <timkingh.huang@rock-chips.com>
2024-08-27 10:24:49 +08:00
Tingjin Huang
16e700e41e feat[vepu510]: Add H.264 tuning setup
1. Add AQ regs setup. There is no aq clip operation which is
different from vepu500.
2. Update anti-stripe regs setup. Option "-atl 1/0" to enable/disable.
3. Add anti-ringing regs setup
4. Add anti-flicker regs setup

Change-Id: Ia36073d26ab5587f3478f7f8b4cdfe8a1ffed8f4
Signed-off-by: Tingjin Huang <timkingh.huang@rock-chips.com>
2024-08-27 10:24:39 +08:00
liming.lou
1bb6ff8993 feat[vepu510]: Sync code from enc_tune branch
1. Design 8 mode for smear
2. Adjust atf_e and atr_e switch
3. Adjust aq thd and aq qp delta
4. Modify appropriate parameters for smear
5. Add sao atr atl configure interface

Change-Id: I0afb7e3d920dddfd33ea8d81fcbda5dd0d6801d3
Signed-off-by: Tingjin Huang <timkingh.huang@rock-chips.com>
2024-08-27 10:23:33 +08:00
toby.zhang
03696728e1 feat[vepu510]: Sync code from enc_tune branch
1. Add anti-line tuning
2. Adjust AQ assignment
3. Add smart encoding
4. Add deblur/qpmap routine
5. Add atf & four level intensity control atf
6. Add atr anti_blur function
7. Add real time bitrate output
8. Add smear buffer for vepu510

Change-Id: Iae661686f6adacd0b5ec57c102c184e2537dfc7d
Signed-off-by: Tingjin Huang <timkingh.huang@rock-chips.com>
2024-08-27 10:23:23 +08:00
toby.zhang
02095f66d3 feat[vepu510]: Sync code from enc_tune branch
1. Add cu_qp_delta_depth cfg
2. Configure AQ regs for H.265
3. Configure regs according to scene mode
4. Support fixed frame level QP
5. Add RDO lambda table index
6. Update stat info for HEVC
7. Add tuning code for H.264 encoder

Change-Id: Id7dae4ed55e1b94622aee72cfce8f24c833d00e1
Signed-off-by: Tingjin Huang <timkingh.huang@rock-chips.com>
2024-08-27 10:08:49 +08:00
Yanjun Liao
12cf338dff fix[enc_roi]: Fix cu_map init in vepu_54x_roi
Change-Id: Icdc9c44778ce3ecbf9234ffe4294aff8ffd4165d
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-08-23 15:56:29 +08:00
Hongjin Li
2a30bc68c2 fix[hal_vp9]: Optimize prob memory usage
Change-Id: Ice9fe69b1427777cd054788b967be5adaabe7bb6
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-08-21 14:51:10 +08:00
Johnson Ding
79b24a631b fix[hal_h265d]: Allow reference missing for GDR
1. Keep decoding when the reference frame is not valid.
2. For RK3588, improve decoding speed and result when decoding a
   non-IDR picture of a GDR stream.

Change-Id: Iae3ac63b05349e4ba923d6df03f89c2958ad72a1
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-08-19 09:32:32 +08:00
Herman Chen
c367dd1609 feat[mpp_trie]: Add trie context filling feature
1. Add context space reserving on trie shrink.
2. Remove MppTrieNode on trie interface.
3. Fix MppTrie usage on tests.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ie2f568785a78499b394d298c3833dd04c6f9a9bd
2024-08-16 15:24:36 +08:00
Herman Chen
8bfa0916e2 feat[mpp_trie]: Add trie tag and shrink feature
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I1edd0fb510393b73ec4962825183623cf1007482
2024-08-16 14:52:25 +08:00
Herman Chen
8108bf58ea fix[osal]: Fix mpp_mem single instance issue
When another C++ static global object init before the mpp_mem service
the MppService service will be inited twice. Then on object destroy will
deinit service twice and cause mutex double delete issue.

On init

E mpp_mem : MppMemService start 0 0x7c536619e8
I mpp_mem : MppMemService mpp_mem_debug enabled 3 max node 1024
E mpp_mem : MppMemService start 1 0x5e8d724230
I mpp_mem : MppMemService mpp_mem_debug enabled 3 max node 1024

On destory

05-17 09:58:04.743  2576  2576 E mpp_mem : ~MppMemService enter 0 0x5e8d724230
05-17 09:58:04.743  2576  2576 E mpp_mem : ~MppMemService enter 1 0x7c536619e8
05-17 09:58:04.743  2576  2576 E mpp_mem : mpp_osal_free

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'rockchip/rk3576_t/rk3576_t:13/TQ3C.230805.001.B2/eng.kenjc.20240510.161710:userdebug/release-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2024-05-17 09:58:04.800905936+0000
Process uptime: 1s
Cmdline: mpp_trie_test
pid: 2576, tid: 2576, name: mpp_trie_test  >>> mpp_trie_test <<<
uid: 0
tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'FORTIFY: pthread_mutex_lock called on a destroyed mutex (0x5e8d724230)'
    x0  0000000000000000  x1  0000000000000a10  x2  0000000000000006  x3  0000007fd26f05d0
    x4  0000000000008080  x5  0000000000008080  x6  0000000000008080  x7  8080000000000000
    x8  00000000000000f0  x9  0000007c50d22a00  x10 0000000000000001  x11 0000007c50d60de4
    x12 0101010101010101  x13 000000007fffffff  x14 000000000001ffea  x15 0000000000000078
    x16 0000007c50dc5d58  x17 0000007c50da2c70  x18 0000007c55b38000  x19 0000000000000a10
    x20 0000000000000a10  x21 00000000ffffffff  x22 0000000000001000  x23 0000005e8d724230
    x24 0000007c5489e010  x25 0000005e8d70c060  x26 0000000000000002  x27 0000007c513226e8
    x28 0000000000000000  x29 0000007fd26f0650
    lr  0000007c50d52968  sp  0000007fd26f05b0  pc  0000007c50d52994  pst 0000000000000000
backtrace:
      #00 pc 0000000000051994  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 4e07915368c859b1910c68c84a8de75f)
      #01 pc 000000000005363c  /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+124) (BuildId: 4e07915368c859b1910c68c84a8de75f)
      #02 pc 00000000000b74cc  /apex/com.android.runtime/lib64/bionic/libc.so (HandleUsingDestroyedMutex(pthread_mutex_t*, char const*)+60) (BuildId: 4e07915368c859b1910c68c84a8de75f)
      #03 pc 00000000000b735c  /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+240) (BuildId: 4e07915368c859b1910c68c84a8de75f)
      #04 pc 0000000000048290  /system/bin/mpp_trie_test (mpp_osal_free+108) (BuildId: 55dca41ecc701b3ad16f0ef02270a45ce40533ff)
      #05 pc 0000000000041080  /system/bin/mpp_trie_test (MppMemPoolService::~MppMemPoolService()+32) (BuildId: 55dca41ecc701b3ad16f0ef02270a45ce40533ff)
      #06 pc 00000000000b9ca4  /apex/com.android.runtime/lib64/bionic/libc.so (__cxa_finalize+280) (BuildId: 4e07915368c859b1910c68c84a8de75f)
      #07 pc 00000000000ac944  /apex/com.android.runtime/lib64/bionic/libc.so (exit+24) (BuildId: 4e07915368c859b1910c68c84a8de75f)
      #08 pc 000000000004a1f8  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+100) (BuildId: 4e07915368c859b1910c68c84a8de75f)

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I81ead0f796ba6e26b520a87ae69cc8f7f6e816f4
2024-08-16 09:53:55 +08:00
Hongjin Li
083b76960e fix[hal_vp9d_com]: Fixed memory leak issue
Platform: RK3576

Error case: Decode vp9 source

Change-Id: If2a444cd70d850a190a26e2eabc3cdde9d997dd3
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-08-15 09:58:09 +08:00
Johnson Ding
ad898220a6 fix[hal_h265d]: Avoid risk of segment fault
Change-Id: I5af80d2de068cb6cb5ded11c110a86c35626bffb
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-08-09 18:06:11 +08:00
Johnson Ding
c2689ac98a fix[hal_h265d]: fix error slot index marking
At fast mode, 3 error_index is need. Otherwise it will be covered and
leads to ref_err marked as 1.

Change-Id: I846b6f814a88eb45d54d7e2f533c950464d1bd8e
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-08-09 18:05:51 +08:00
Johnson Ding
918723041b fix[h265d]: Adjust condition of scan type judgement
Refer to commit 3198035973.

When decoding interlaced H.265 stream, SPS will be changed after parsing
SPS NALU. This leads to comparing the new SPS and old SPS via memcpy
reporting that they are different. And references list will unreference
frames. Finally, some frame that should be kept in dpb will be removed.
And the following picture to be decoded will not find these removed
frame for reference.

Note that comparing two SPS buffer with memcpy to find if reference list
should be update is too rough. It should be fixed in the future.

Change-Id: If20ab30973df12635976d4b9d759b36b560ddea2
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-08-09 17:09:21 +08:00
Hongjin Li
2df4bed689 fix[mpp_hdr]: Fix buffer overflow issue
For vdpu383, 8K video needs to be scaled to 4K,
but buf_size still needs to be processed as 8K.
When filling HDR data, it needs to be filled
according to the 4K buffer offset.

Change-Id: I610adcf848acc1eee903b5ef7e438875b55e4628
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-08-05 09:45:45 +08:00
Hongjin Li
44f56822f7 fix[mpp_buffer]: Synchronous log addition point
Inc/dec logs are added after ref_count changes

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I6c358d077c5437d47305c5e211ae9999ca7a8b8f
2024-08-05 08:53:56 +08:00
Yandong Lin
a412466af8 fix[hal_vepu]: fix split regs assignment
Change-Id: Idba725a871dbac7ce070e0bb66701f1584e06bb4
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-08-03 11:05:44 +08:00
Yandong Lin
b71f7be716 fix[vepu580]: poll max set to 1 on split out lowdelay mode
Change-Id: I76e80cda83db4cc63998906d62f98181e282a91e
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-08-02 17:22:47 +08:00
Yandong Lin
d96a88673c feat[h264d]: support hdr meta parse
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: Id17781edfe480c859a2e89909e517030ea07c43b
2024-08-02 14:26:51 +08:00
Yandong Lin
b9a9ba00d5 chore: fix compile warning
warning: variable 'xxx' set but not used

Change-Id: I0dc5d434b7f08e776f98e08885d4b25eaab199c1
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-08-01 11:12:51 +08:00
Yandong Lin
b739b13594 fix[mpp_common]: fix compile err on F_DUPFD_CLOEXEC not defined
Change-Id: I5e258a13be331af7a4d11d6ab2e4a8afb12418dd
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-07-31 18:18:32 +08:00
Rimon Xu
045016af53 fix[h265d]: return error on sps/pps read failure
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: I19ebfcd2e3d301b15cd85a11706cfb3061bdef81
2024-07-31 17:13:00 +08:00
Hongjin Li
2ec23d0371 fix[build]: The first toolchains is selected by default
Change-Id: I4e449d4361f017c4e9eaa5947d7d79ac0e6a3e91
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-07-31 09:56:46 +08:00
Yanjun Liao
86cf93a028 fix[265e]:Fix the st refernce frame err in tsvc
This is a bug caused by the mark and use of ltr frames,
when presence of multiple short temporal refenence frame,
may lead to errors in reference relationships.

Change-Id: I1962d81e39b704086a51b4e4098ba3feb64c47c6
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-07-27 18:08:41 +08:00
Herman Chen
74758e7ee9 docs[readme]: Add more repo info
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I2613d825affefc86d497a3ef43e601521e44eb23
2024-07-26 17:32:28 +08:00
Ding Wei
7bbbce41d6 fix[av1d]: when MetaData found then it is new frame
Change-Id: I7e2d608edafdf574799490ef8978707adc91e390
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2024-07-22 10:10:09 +08:00
xueman.ruan
d1b73032f3 fix[m2vd]: Fix seq_head check error
The width and height is 16 aligned.

Issue occurs by commit:
I03732d5eec1902b6fbe80b1504e729b3a1d61330

Change-Id: Icf9b53942f8c5c15536114638d5763545eae8b26
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
2024-07-19 15:08:50 +08:00
Yanjun Liao
6766b43a6b fix[h265e_vepu510]: Fix a memory leak
Change-Id: Ib5eb57ec755f732912bc0564e85fad4eb7cd1226
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-07-16 11:21:26 +08:00
Yanjun Liao
fa97ca3dba feat[h265e]: Support force mark & use ltr
Change-Id: Ied10ca664f149a75ebc02733f884ffeb41449c4f
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-07-16 09:55:38 +08:00
Chandler Chen
ddafef8e65 fix[h265d]: auto output frame in dpb when ready
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: Iab5389644b7456aa2c1553132874cacef77b365f
2024-07-16 09:51:35 +08:00
xueman.ruan
7275defab3 fix[m2vd]: Remove ref frame when info changed
Change-Id: I03732d5eec1902b6fbe80b1504e729b3a1d61330
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
2024-07-15 09:44:52 +08:00
Hongjin Li
f1a47ba319 fix[mpp_meta]: Missing data in the instance
The function call failed because the corresponding
data is not defined:

mpp_meta_set_s32(meta, KEY_INPUT_IDR_REQ, 0);
mpp_meta_get_s32(meta, KEY_INPUT_IDR_REQ, &val);

Change-Id: I0314a5e515493fcaf49d9625aebd68c4ef61b831
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-07-12 11:21:50 +08:00
Hongjin Li
8753dc63a1 fix[mpp_bitread]: Fix negative shift error
The function update_curbyte should ensure that
num_remaining_bits_in_curr_byte_ is non-zero,
but inside the mpp_has_more_rbsp_data function,
it needs to ensure that its logic is correct.

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I6a8fb99fcf447d1ece38b271988a5a562e594cc1
2024-07-08 17:29:01 +08:00
Chandler Chen
abf0c5f574 fix[osal]: fix 128 odd plus 64 bytes alignment
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: Ibd5ebf31b17b63e9604b271b8dd23a48590d0c46
2024-07-06 16:29:49 +08:00
Hongjin Li
990f449515 fix[h265d_parser]: Fix fmt configuration issue
s->h265dctx->pix_fmt is not initialized before configuration,
so without recreating mpp, s->h265dctx->pix_fmt can only behave
normally in overlay state (ex: yuv->fbc), and abnormal in
reduction state (ex: fbc->yuv)

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Iee936b378c6de53a781fb67c5394738c74729242
2024-07-05 15:54:03 +08:00
Chandler Chen
550dd92849 fix[hal_av1d_vdpu383]: modify av1 segid wr/rd base config
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: I59242aac6973ea88ae24f8ec4baf123a87043ce9
2024-07-04 14:42:20 +08:00
Rimon Xu
c0d45df960 feat[vpu_api]: support yuv444sp decode ouput pixel format
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: Id23a952ecf8e9c62b9a286e4726bf8fb66062f2e
2024-07-03 09:28:39 +08:00
Hongjin Li
aaf92d7484 fix[h265d_parser]: Fix fmt configuration issue
s->h265dctx->pix_fmt is not initialized before configuration,
so without recreating mpp, s->h265dctx->pix_fmt can only behave
normally in overlay state (ex: yuv->fbc), and abnormal in
reduction state (ex: fbc->yuv)

Change-Id: Ib2399bdd9d41b86995f111b56a081e67a360057b
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-07-01 18:06:25 +08:00
Chandler Chen
b29e4b798d fix[hal_av1d_vdpu383]: add segid reg base config
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: Ibb140bc11997156f75c8a9661b9f09e262ae6d5b
2024-06-27 11:23:44 +08:00
Yanjun Liao
7f6ea0ad8c fix[enc_roi]: Use cache buf to reduce CPU usage
Change-Id: Ib7a90a8c1900bf3397ac320ab9b61c835ce77ee6
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-06-20 20:50:18 +08:00
ctf
d4d204174e chore[cmake]: compile both dynamic and static libraries
Signed-off-by: ctf <ctf@rock-chips.com>
Change-Id: Id36494f2f014207fbe749680420426a3ce8e22c1
2024-06-20 14:46:07 +08:00
Chandler Chen
aefa45833f fix[hal_h264d]: fix cabac offset reg index error
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: I65ea5d2aa39105a4f21fe27939f4000cfcf2a5bd
2024-06-19 16:13:40 +08:00
xueman.ruan
558c249a4e fix[vdpp]: fix invalid-free err when init failure
Change-Id: Id3bf0104dd1baddcf601ce79fc8b00d67bf8d777
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
2024-06-19 16:13:22 +08:00
Yandong Lin
4874c0b425 fix[mpp_buffer]: attach fd if invalid iova when get iova
Change-Id: I887812b2c9e17e18826375705b45fbae42ba3826
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-06-18 14:50:39 +08:00
Yandong Lin
0de7f5a72d fix[h265e_ps]: fix disable deblocking filter failed issue
Change-Id: I004ba2c808a549db8167b27c6ae6c1b69d798f18
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-06-17 20:43:59 +08:00
Yandong Lin
6ba70a2e8d fix[hal_h265e_vepu510]: disable dvbm_err_en
Prevent trigger dvbm err interrupt falsely.

Change-Id: I16f3caf6aea20f3bcef8b5bb1ebafd2073293aee
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-06-17 15:37:11 +08:00