Commit Graph

3510 Commits

Author SHA1 Message Date
Johnson Ding
2b2f3669e4 feat[enc]: Add config entry for output chroma format
Change-Id: I29f4f764adc401a635e9fda2e2b41b2002078637
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-03-08 11:07:36 +08:00
Hongjin Li
13015dceac fix[av1d]: Fix compiler warning
Change-Id: I08d7deef95a5b99f5c1eacc6c5ddad381c73084b
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-03-07 10:39:09 +08:00
Ding Wei
0cb409a6e1 fix[h264d]: Fix error mvc stream crash issue
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ifff13fceb8a5f8d5ad6f6e54479745103949bbfc
2024-03-07 10:18:18 +08:00
Herman Chen
dc341dad97 [mpp]: Remove extra NULL mpp_buffer log
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Iff5e0305a32f26904c1acd7b9b3f5dbe9fc96cf1
2024-03-06 18:15:38 +08:00
Yanjun Liao
f12c810cd6 fix[hal_h264e]: Fix qp err when fixqp mode
Fix the issue of unstable QP values in H.264 encoding when using fixqp
mode with configured max/min QP

Change-Id: I979d3086baa4a68d919c772e7babea78e1a95e34
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-03-06 18:08:55 +08:00
Herman Chen
2ecae82001 fix[h264d]: Fix H.264 error chroma_format_idc
When the error stream has the chroma_format_idc larger than H264_CHROMA_422
we need to set it as an error case rather than an unsupport case.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I9fd98ed368cc1c1ba07bb83b3298d0d7d70ee2cd
2024-03-06 16:38:32 +08:00
Chandler Chen
398b4cb76f fix[vdpu383]: Fix av1 rkfbc output error
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: I6ea36b643f4b3dcc4e29dc6ff5f8fe0fc4c668c5
2024-03-06 16:08:20 +08:00
Hongjin Li
61650a170e fix[av1d]: Fix compatibility issues
For av1, fix compatibility issues between rk3576 and rk3588

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: Ia779b06cda11366f69612663efd4e69c4b6b0b67
2024-03-06 14:33:37 +08:00
Rimon Xu
b8d8c8c1ce fix[hal_h264d_vdpu383]: Reduce mpp_put_bits calls
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: I8c6f6b4d9631e060bb73421482aab40d297be70f
2024-03-06 11:18:32 +08:00
Rimon Xu
14bd0d9155 [mpp_buf_slot]: add yuv444sp slot afbc buffer size calculate
Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
Change-Id: I091877f4dafabdf7fdcc0057ec31ce064ab32feb
2024-03-05 20:27:01 +08:00
Herman Chen
02a35cb871 fix: Fix clerical error
fix denorminator to denominator

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I6e9deed4fe3bcdc1d2f7d56f3dccb87607d576bf
2024-03-05 11:31:47 +08:00
Yanjun Liao
b1b6f6686d fix[avs2d]: Fix get ref_frm slot idx error
The extension of patch " https://10.10.10.29/c/rk/mpp/+/210429 "; on avs2d_vdpu383.

Change-Id: Iacfe252da8c4ad4bce2c7ece054109d1ae7cbe82
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-03-05 10:51:03 +08:00
Hongjin Li
b87fa379ae [vdpu383]: Update debug information print
Change-Id: I642e9f27afc3c4fda1cf9639d99d3e0ff9e79409
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-03-04 19:57:48 +08:00
Hongjin Li
317f7832bb fix[vdpu383]: Fix av1 global params bit pos issue
Change-Id: Ie611c50c4b9bb75f18f3758b05e1ffe08d5632e9
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-03-04 17:38:31 +08:00
akira.wang
331e2dc3da fix[vdpp]: fix sharp config error
Change-Id: I66457dd53f200918872265c747d2acf53ab0596a
Signed-off-by: akira.wang <akira.wang@rock-chips.com>
2024-03-04 10:15:18 +08:00
Yandong Lin
62e4bef6d1 fix[hal_av1d]: fix av1 dec err for rk3588
Cause by the commit that adapt to vdpu383:
212317: feat[vdpu383]: Add vdpu383 av1 module

Change-Id: Ie5fed8de5747530b35e20ec9df9f4402249f788a
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-03-01 18:23:13 +08:00
Hongjin Li
7c206495e7 fix[vdpu383]: Fix av1 global params issue
Change-Id: Ic0438d59202e538f227afe8d6a98e2eefe952e06
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
2024-03-01 16:50:57 +08:00
Ding Wei
0753f99ac6 fix[vepu510]: Fix camera record stuck issue
The dvbm_err_en must be cleared before hw start.

Change-Id: Ic3e51f01ba0722e0490dc7d819ca248516cd60b8
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2024-03-01 15:35:01 +08:00
Johnson Ding
3f737ef5c3 fix[utils]: fix read and write some YUV format
Change-Id: I96d2b49539b7547df6786b3495fcbc375d4f4fc3
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-03-01 15:11:48 +08:00
Hongjin Li
39b68064c8 feat[vdpu383]: Add vdpu383 av1 module
Support FBC, tile4x4, 400, 420

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
Change-Id: Ie0c1ab47447c605b96f75313734db8bab46e77c8
2024-03-01 14:34:47 +08:00
Hongjin Li
7d4f01a0ff feat[vdpu383]: Add vdpu383 vp9 module
Support FBC, tile4x4, 420

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: I89b8aed079e414c5840a7257de6b6f316d1c468f
2024-02-29 20:20:13 +08:00
Hongjin Li
13915219f3 feat[vdpu383]: Add vdpu383 avs2 module
Support FBC, tile4x4, 420

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Change-Id: I31b13dd1a672adc0ba6b35fd31aa039ef1579eb0
2024-02-29 20:20:13 +08:00
Hongjin Li
3f9fd59e00 feat[vdpu383]: Add vdpu383 H.264 module
Support FBC, tile4x4, 420, 422

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: Id85bbf12c0f9c5e0cd11109e1f942980ae0341ff
2024-02-29 20:20:13 +08:00
Hongjin Li
fd8d21ccf3 feat[vdpu383]: Add vdpu383 H.265 module
Support FBC, tile4x4, 420, 422, 444

Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: I2c5281a70bbd1cce775fabfce83d6fb6abdd8fc8
2024-02-29 20:20:13 +08:00
Hongjin Li
d3435c0caf feat[vdpu383]: Add vdpu383 common module
Signed-off-by: Hongjin Li <vic.hong@rock-chips.com>
Signed-off-by: Chandler Chen <chandler.chen@rock-chips.com>
Change-Id: I927be7f424677aafff02df72df26a0dd1093d2ad
2024-02-29 20:20:13 +08:00
Yandong Lin
af3d4c211d fix[mpp_bitput]: fix put bits overflow
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
Change-Id: I5cdb119f39084ed682b426870c3cbb119530448f
2024-02-29 15:10:19 +08:00
Yandong Lin
467d6088eb fix[mpp_service]: fix rcb info env config
Change-Id: I9cd8749f50d4ffb26c87229f079c0228fce770f8
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-02-28 16:52:29 +08:00
xueman.ruan
fe9bfab9f7 feat[vdpp]: Add vdpp2 for rk3576
new feat: sharp, es, hist, luma and chroma output
respectively

Change-Id: I9ceab887ee6dcd75f6d848b579dc4c86c4dc1f1a
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
2024-02-27 18:00:54 +08:00
xueman.ruan
677b2a877e feat[vdpp]: Add vdpp module and vdpp_test
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Change-Id: I8bd74ad9b4404864ea3d88c7f2e57eecc4c0e35d
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
2024-02-27 18:00:54 +08:00
Yanjun Liao
bbce74ebc5 fix[vepu510]: Fix compile warning
Change-Id: I4679fd0f58dd5eb9deea9b5cd3e080316197fbb0
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-02-27 17:58:29 +08:00
Yanjun Liao
de8fd84dfd feat[vepu_510]: Add vepu510 h265e support
1. add hal_h265e_vepu510_reg.h
2. add h265e_vepu510.c
3. some other modification for vepu510 h265e

Change-Id: I32535415cbfa8e50547b687ab10c618e0bd4d706
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-02-27 17:26:52 +08:00
Yanjun Liao
5c51bfa04a feat[vepu_510]: Add vepu510 h264e support
1. add hal_h264e_vepu510_reg.h
2. add h264e_vepu510.c
3. some other modification for vepu510 h264e

Change-Id: I7204c6fd4af3ef7251bbd126e133102065464f13
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-02-27 14:48:15 +08:00
Yandong Lin
3fd8440863 fix[hal_vp9d]: fix colmv size calculator err
Change-Id: Ia18d1177f550dbb14b075bb9f22fc8d1c2586609
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-02-23 18:08:10 +08:00
Herman Chen
840fbdeac1 docs[mpp_frame]: Add MppFrameFormat description
Add MppFrameFormat bit mask description.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I223b7661ca3497c2eb7b1cebc5148c45d4daf934
2024-02-22 19:35:54 +08:00
Johnson Ding
77ad638e2e feat[mpp_frame]: Add tile format flag
Change-Id: I5d331d377a47cefd57cb3c343d1c61224f452356
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-02-22 19:11:14 +08:00
Yanjun Liao
23ace2582b feat[vepu_510] add vepu 510 common for H264 & h265
1. add vepu510_common.c
2. add vepu510_common.h
3. modify vepu5xx_common.c and vepu5xx_common.h to adapt vepu510

Change-Id: Id4589d2fc34d76fc6857dc579095c7dd3873868c
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-02-20 17:34:21 +08:00
Yanjun Liao
3cbb906673 feat[mpp_soc]: support rk3576 soc
Change-Id: I49bd3ccbc643b3c95db5ba3ca692f365c9425440
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-02-20 09:45:25 +08:00
Yanjun Liao
0993a71ce9 fix[avsd]: Fix the ref_frm slot idx erro in fast mode.
In fast mode, the ref_frm slt idx maintained by Avs2dFrameMgr may be refreshed by a new haltask before the callback.

Change-Id: I05575c4bcac7e618a7c05dd1ff38c0084af33b7e
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-02-07 15:13:43 +08:00
Herman Chen
fdeb8c378b docs: Update 1.0.4 CHANGELOG.md
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If85c9ee082c0fe5606543c2e66245c7d7208f426
2024-02-07 15:07:36 +08:00
Johnson Ding
a597942944 fix[h265e]: fix hw stream size check error
Change-Id: If1f869548f517e61aa2977bd5e0909a00010fb2f
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-02-06 17:19:51 +08:00
Yandong Lin
5cb29df8d3 fix[hal_vdpu]: unify colmv buffer size calculation
Fix colmv buf size not enough issue in some case.

Change-Id: I00e46a6d4a05a53ecb8336fe9818ab960e0b5a99
Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com>
2024-02-06 09:08:56 +08:00
Herman Chen
9431bbc980 fix[vproc]: Fix deadlock in vproc thread
BUG is reported from https://redmine.rock-chips.com/issues/464206

Thread 18 (LWP 2440):
#0  __lll_lock_wait (futex=0x7f34000d48, private=0) at lowlevellock.c:52
#1  0x0000007fab5b1540 in __GI___pthread_mutex_lock (mutex=0x7f34000d48) at pthread_mutex_lock.c:115
#2  0x0000007fa9e0299c in dec_vproc_signal (ctx=0x7f34001260) at ../git/mpp/vproc/mpp_dec_vproc.cpp:929
#3  0x0000007fa9df5bdc in mpp_dec_notify (ctx=0x7f602be600, flag=1088) at ../git/mpp/codec/mpp_dec.cpp:956
#4  0x0000007fa9e0ef30 in mpp_buffer_ref_dec (buffer=0x7f6403f6c8, caller=caller@entry=0x7fa9ee300c "mpp_frame_deinit") at ../git/mpp/base/mpp_buffer_impl.cpp:509
#5  0x0000007fa9e0fb84 in mpp_buffer_put_with_caller (buffer=<optimized out>, caller=caller@entry=0x7fa9ee300c "mpp_frame_deinit") at ../git/mpp/base/mpp_buffer.cpp:105
#6  0x0000007fa9e11820 in mpp_frame_deinit (frame=frame@entry=0x7f602ec340) at ../git/mpp/base/mpp_frame.cpp:85
#7  0x0000007fabd6bf4c in rkmpp_release_frame (opaque=<optimized out>, data=0x7f602ba600 <error: Cannot access memory at address 0x7f602ba600>) at src/libavcodec/rkmppdec.c:339
#8  0x0000007fab9547dc in buffer_replace (src=0x0, dst=<optimized out>) at src/libavutil/buffer.c:133
#9  av_buffer_unref (buf=<optimized out>) at src/libavutil/buffer.c:144
#10 0x0000007fac714bb8 in mp_image_destructor (ptr=0x7f60252c80) at ../../../../../../sources/mpv/video/mp_image.c:209
#11 0x0000007fac748d40 in ta_free (ptr=0x7f60252c80) at ../../../../../../sources/mpv/ta/ta.c:244
#12 0x0000007fac715178 in mp_image_unrefp (p_img=p_img@entry=0x7f4c00bfc0) at ../../../../../../sources/mpv/video/mp_image.c:472
#13 0x0000007fac73396c in wlbuf_pool_entry_release (data=0x7f4c00bfa0, wl_buffer=<optimized out>) at ../../../../../../sources/mpv/video/out/wlbuf_pool.c:132
#14 0x0000007fb4cfe328 in ffi_call_SYSV () at ../libffi-3.3/src/aarch64/sysv.S:114
#15 0x0000007fb4cfdb44 in ffi_call_int (cif=cif@entry=0x7f70fdec80, fn=0x7f70fdeca0, orig_rvalue=orig_rvalue@entry=0x0, avalue=0x10, avalue@entry=0x7f70fded50, closure=0x200000001, closure@entry=0x0) at ../libffi-3.3/src/aarch64/ffi.c:747
#16 0x0000007fb4cfdf24 in ffi_call (cif=cif@entry=0x7f70fdec80, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7f70fded50) at ../libffi-3.3/src/aarch64/ffi.c:756
#17 0x0000007faa49c7c0 in wl_closure_invoke (closure=0x7f4c00bff0, flags=<optimized out>, target=<optimized out>, opcode=0, data=<optimized out>) at ../wayland-1.22.0/src/connection.c:1025
#18 0x0000007faa499df0 in dispatch_event (display=display@entry=0x7f4c001d40, queue=<optimized out>) at ../wayland-1.22.0/src/wayland-client.c:1644
#19 0x0000007faa49b2c8 in dispatch_queue (queue=0x7f4c001e30, display=0x7f4c001d40) at ../wayland-1.22.0/src/wayland-client.c:1790
#20 wl_display_dispatch_queue_pending (display=0x7f4c001d40, queue=0x7f4c001e30) at ../wayland-1.22.0/src/wayland-client.c:2032
#21 0x0000007faa49b2f4 in wl_display_dispatch_pending (display=<optimized out>) at ../wayland-1.22.0/src/wayland-client.c:2095
#22 0x0000007fac73e2cc in vo_wayland_dispatch_events (wl=0x7f4c000e40, nfds=nfds@entry=2, timeout=timeout@entry=100) at ../../../../../../sources/mpv/video/out/wayland_common.c:1933
#23 0x0000007fac741d7c in vo_wayland_wait_events_timeout (vo=vo@entry=0x7f600abed0, timeout_ms=timeout_ms@entry=100) at ../../../../../../sources/mpv/video/out/wayland_common.c:2594
#24 0x0000007fac73baf4 in draw_frame (vo=0x7f600abed0, frame=0x7f302063b0) at ../../../../../../sources/mpv/video/out/vo_dmabuf_wayland.c:1113
#25 0x0000007fac7360c4 in render_frame (vo=0x7f600abed0) at ../../../../../../sources/mpv/video/out/vo.c:984
#26 vo_thread (ptr=0x7f600abed0) at ../../../../../../sources/mpv/video/out/vo.c:1123
#27 0x0000007fab5af370 in start_thread (arg=0x7f72ffbe06) at pthread_create.c:477
#28 0x0000007fab51bedc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78

Thread 14 (LWP 3455):
#0  __lll_lock_wait (futex=0x7f60208040, private=0) at lowlevellock.c:52
#1  0x0000007fab5b1540 in __GI___pthread_mutex_lock (mutex=mutex@entry=0x7f60208040) at pthread_mutex_lock.c:115
#2  0x0000007fa9e0ef48 in mpp_buffer_ref_dec (buffer=0x7f6406fee8, caller=caller@entry=0x7fa9ee1ae7 "check_entry_unused") at ../git/mpp/base/mpp_buffer_impl.cpp:503
#3  0x0000007fa9e0fb84 in mpp_buffer_put_with_caller (buffer=<optimized out>, caller=caller@entry=0x7fa9ee1ae7 "check_entry_unused") at ../git/mpp/base/mpp_buffer.cpp:105
#4  0x0000007fa9e0bf1c in check_entry_unused (entry=0x7f601ef530, impl=0x7f60263ec0) at ../git/mpp/base/mpp_buf_slot.cpp:627
#5  mpp_buf_slot_clr_flag (slots=0x7f60263ec0, index=<optimized out>, type=type@entry=SLOT_QUEUE_USE) at ../git/mpp/base/mpp_buf_slot.cpp:919
#6  0x0000007fa9e00eb0 in dec_vproc_clr_prev0 (ctx=ctx@entry=0x7f34001260) at ../git/mpp/vproc/mpp_dec_vproc.cpp:149
#7  0x0000007fa9e00fd0 in dec_vproc_clr_prev (ctx=ctx@entry=0x7f34001260) at ../git/mpp/vproc/mpp_dec_vproc.cpp:180
#8  0x0000007fa9e012b8 in dec_vproc_thread (data=0x7f34001260) at ../git/mpp/vproc/mpp_dec_vproc.cpp:631
#9  0x0000007fab5af370 in start_thread (arg=0x7f47ffdf16) at pthread_create.c:477
#10 0x0000007fab51bedc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I742e55e745c46a4adb229e2f6f0e2a2c3498e369
2024-02-05 10:33:35 +08:00
Johnson Ding
c43b99b671 fix[h265e]: disable tmvp by default
When setting drop-gap to 0, continuous dropping frame at p-skip mode
will make the following encodeing result go wrong, if temporal motion
vector prediction is enabled. So tmvp should be turn off at this case.
Since TMVP doesn't contribute much bit rate, turn it off as a default.
Also SAO should be disabled.

Change-Id: I0cefca33981966dfeae260e450d731e059748911
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-02-04 16:35:39 +08:00
xueman.ruan
59126dc3f6 feat[vpu_api_legacy]: Support RGB24 setup
Change-Id: I167c11eb8f412f8dae993c2580b43a765136cf77
Signed-off-by: xueman.ruan <xueman.ruan@rock-chips.com>
2024-02-02 11:48:35 +08:00
Johnson Ding
06d8b3958a fix[h265e]: Amend temporal_id to stream
Change-Id: Icdf177c5a144c0ed611d9df993183619dcf2f9ff
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2024-01-30 11:36:39 +08:00
Yanjun Liao
303a26ddad fix[mpp_dump]: add YUV420SP_10BIT format dump
Change-Id: I1e89dbfefb394b4e8b2fbaf4fb0516be3528dd24
Signed-off-by: Yanjun Liao <yanjun.liao@rock-chips.com>
2024-01-29 09:35:28 +08:00
Ding Wei
af20bbf3f6 fix[hal_h265d]: Fix register length for rk3328/rk3328H
tips: rk3328/rk3328H have 108 u32 registers, not the 78.

Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Change-Id: I1c3d59d09d1f1a16aacee99673c4db67499e7a38
2024-01-26 15:36:40 +08:00
Grey Li
c83bd81846 feat[avsd]: keep codec type if not avs+
In some case we need to use avs+ codec decode avs stream.

Change-Id: Id7fe9510e22f65c66a3f8bfc87ec29311830dbf8
Signed-off-by: Grey Li <grey.li@rock-chips.com>
2024-01-26 15:11:38 +08:00
Herman Chen
6387e27bea [cmake]: Add -save-temps for macro debug
Add -save-temps to save intermediate file for macro debug.
Disable now for osal.a compile error with this option.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I3d3155666f98f0471313c7dec638fb2d6a6bf093
2024-01-26 11:34:51 +08:00
Herman Chen
3f0e7c8cc5 doc[mpp_buffer]: Update MppBuffer code annotation
related issue: https://redmine.rock-chips.com/issues/463747

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I24c047df0659958f98f46a248c2f0857f675149d
2024-01-26 09:57:23 +08:00