Commit Graph

2084 Commits

Author SHA1 Message Date
Herman Chen
37ba4229ad [hal_enc_task]: Add MppEncRefFrmUsrCfg
There force reference frame user configure is added to encoder task.

Change-Id: I4482a831f988f47913c6e1d0385ccbdd0cd46031
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 16:18:31 +08:00
Herman Chen
6a64cde817 [mlvec]: Add MLVEC interface in vpu_api
1. Add vpu_api_mlvec module.
2. Attach vpu_api_mlvec module to vpu_api_legacy.
3. Add static and dynamic configure process.
4. At VpuApiLegacy::init if the extra_data is NULL do not get sps/pps.
5. Add VPU_API_GET_EXTRA_INFO (0x200) control to provide sps/pps.

Change-Id: I4666148ba4c150eea81bfa8cd25b63264cd16a2b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 16:18:31 +08:00
Alpha Lin
9523c81879 [IEP] remove warnings during iep2 library build.
Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
Change-Id: I5f0d8ae75350d0401f28a1945c9dc1397bbd626d
2020-07-24 16:18:31 +08:00
Alpha Lin
d9cce8d0e1 Add iep2 HAL library and unit test
Add iep2 HAL library and corresponding unit test.
Add a adapter layer for iep and iep2 compatible.

there will be libiep2.so generated after build.
this library will support direct using iep2 api outside
MPP platform, such as using in analog camera application.

Signed-off-by: Alpha Lin <alpha.lin@rock-chips.com>
Change-Id: Ide9662bf099e5374602dda7417ee6973de64c912
2020-07-24 15:05:06 +08:00
Herman Chen
aec5989e03 [hal_h264e_vepu]: Add checking on nal_ref_idc
Mainly for MLVEC test.

Change-Id: I1f329e0401d69147152e57e9329e3b670802c264
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 15:00:00 +08:00
Herman Chen
7604d66417 [h264e]: Change prefix nal process
1. Prefix nal is setup in h264e_api and send to hal by syntax.
2. Hal receives prefix config and writes prefix nal before each slice.
3. Add vepu1 / vepu2 prefix implement. vepu541 is not implemented yet.
4. Add max temporal layer id check to enable prefix nal.

Change-Id: I8bc40af12b9d9cedd64c1aa6a2666d3ffe7bf694
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 14:59:53 +08:00
Xinhuang Li
aa5c13d3a8 [test]: init encoder output packet length to zero
Signed-off-by: Xinhuang Li <buluess.li@rock-chips.com>
Change-Id: Iae1bdf28104ea7d7dc9929c267556fe6bf36299b
2020-07-24 14:59:18 +08:00
Herman Chen
0b5a25d903 [utils]: Fix encoder width / stride mismatch
Fix the default width stride value in RGB format.

Change-Id: I330bc81bfc5057484a46815d62eccd3fd212a49d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 11:36:38 +08:00
Herman Chen
4ca6be39eb [hal_h264e_vepu]: Fix width / stride relationship
Vepu only support match width / stride configure. This should be setup
according to input format.

Change-Id: I2cd4e6bbf4c3888db0402096f80a6896c9a4bf53
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 11:35:12 +08:00
Herman Chen
bba530c27d [mpi_enc_utils]: Add hex format input support
Change-Id: I49ff9a916c51a0f9f3719cfb01e85e5a9e5f0a61
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-24 11:28:30 +08:00
sayon.chen
c7bedd82e4 [rc_v2]: Support smart gop rate control
Change-Id: Ie8cb39304af2628f3bed2cd452f164df643300da
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-07-24 08:55:16 +08:00
sayon.chen
03c1487f3c [rc_v2]: Reorganize code for first I qp calc
Change-Id: Ibcc8c5941263118243c8e6bcdaeb85003ed9d996
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-07-24 08:51:01 +08:00
sayon.chen
49b102b7f8 [h265e_sps]: Fix level setup process
Fixup user config level which it is too small.

Change-Id: I2e998d0e11f6293bb4a678375b4d1be3610464f3
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-07-22 14:21:11 +08:00
Herman Chen
f154b01d9e [h264e_sps]: Fix level setup process
Fixup user config level which it is too small.

Change-Id: I6a89be3fc7d201f67413cb4ae32ea2629a5d7aca
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-22 11:51:20 +08:00
Herman Chen
c71b5338c3 [mpp_rc_defs]: Add rc force parameter
1. Add force frame qp mode.
2. More mode is reserved for future extension.

Change-Id: Ic12000082c7674b294c0be506f74a7d6129be6b9
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-22 11:07:36 +08:00
Herman Chen
81ec42ffb7 [mpp_packet]: Add metadata check function
Change-Id: I493d62c4aef6d93fdaebd503a7cc787d955b3541
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-22 11:07:36 +08:00
Herman Chen
31e911d44b [mpp_frame]: Add metadata check function
Change-Id: I95f722ae95b8db969c484b3157ddbe8c8f92a13f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-22 11:07:36 +08:00
yandong.lin
ca93b9f3b5 [jpege]: Add user data
1. Move SOI and APP0 data frome hal to jpege_api_v2
2. Add user data to APP7

Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I1ce99e0e30aacbdf537a668e27af1c8a7cf3bdd3
2020-07-22 11:05:40 +08:00
yandong.lin
e9721ad516 [mpp_enc_v2:] Clear header packet length on init
Set 0 length when init hdr_pkt

Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: Iaee6f64beb205d4a60c98681896828f156b4fb0f
2020-07-22 11:03:37 +08:00
sayon.chen
53c6578ca0 [h265e_541]: Fix reg config issue
1.fix fix_qp case config used rc_cfg->quality_target
2.fix log printf error when input is rgb

Change-Id: I6b67dbb2c8eede78ccb318794b7eb39c75dba78f
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-07-16 18:03:24 +08:00
Herman Chen
38ca5257bb [h264e_sps]: Add vui max_dec_frame_buffering
Add vui max_dec_frame_buffering by default.

Change-Id: Ib96e199ec0b00f35ad16056a499ff8424b4a0d2a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-07-16 17:35:30 +08:00
Jeffy Chen
53024ff4c4 debian: Add demo packages
Change-Id: I9206bd2b8a919d60910586f9013cc31e894117da
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2020-07-15 17:01:51 +08:00
Jeffy Chen
017e159b80 debian: Remove static libs
The static libs are not supported anymore.

Change-Id: I0dafae089f0e14d92d6dbe341cbb56d2344bb84b
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2020-07-15 17:01:51 +08:00
Jeffy Chen
80c45ad9c3 debian/rules: Only use dpkg-cross when cross compiling
Change-Id: Iaaae0f3036bda5df68d715b2accb9b548418cb3f
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2020-07-15 17:01:51 +08:00
zyr
b231d085f4 [rga]: fix bug of rga rgb2yuv
Merge from pull request: https://github.com/rockchip-linux/mpp/pull/149

Signed-off-by: zyr <zyr_zyr_@sohu.com>
Change-Id: Ic66554dd9dd80faff77084567efd9f9a9142713f
2020-07-15 14:45:45 +08:00
Herman Chen
2ebcd99d6a [h264e]: Fix slice / dpb operation errors
1. long-term reference flag in IDR frame should be clear at next frame.
   Otherwise multi-slice operation will be error.
2. The max long-term reference index is reset to zero at IDR. So the new
   sequence must redefine its own value again.
3. The end bits of prefix nal should be flushed.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ia9ba01719861401c2ca95ded3ccfc537c3b10083
2020-07-15 14:13:50 +08:00
Herman Chen
337e917d5f [h264e_slice]: Fix slice amend and prefix nal
1. Fix loop length error on copy.
2. Change prefix nal format do not write more bit on zero nal_ref_idc.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I8aae36926dcd8dc73701c735396ae418db4f032f
2020-07-08 17:58:59 +08:00
Herman Chen
f654f1a0ad [rk_venc_cmd]: Change h264 codec cfg
1. Remove slice mode/arg in H.264 codec cfg.
2. Add max long-term reference number / max temporal layer id / prefix
mode / base layer priority id.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If34166e4658edba65f4c6c095412a6fadd941320
2020-07-08 16:32:33 +08:00
Herman Chen
7f4ebeec8e [meta]: Add more meta key for encoder
1. Add KEY_ENC_MARK_LTR for marking current frame to be long-term
referece frame.
2. Add KEY_ENC_USE_LTR for assigning a long-term reference frame as
current frame's reference frame.
3. Add KEY_ENC_FRAME_QP for assigning a fix QP for current frame.
4. Add KEY_ENC_BASE_LAYER_PID for assining a priority id for base layer
in tsvc mode.

All these four features are defined in MLVEC test.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib041d9c2f203d7e582a3402bd61dd6a9eb18015a
2020-07-08 15:41:23 +08:00
Herman Chen
4397cb30ca [astyle]: Do NOT change drm.h coding style
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic70f3533b6a04d7c5f7e89c385e542f63150db08
2020-07-08 15:41:23 +08:00
Herman Chen
d710e2611b [h264e_slice]: Fix slice update error
1. Fix nal_ref_idc update error for using slice->is_idr.
2. Fix slice write error on poc_type is 2.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ib315818c2024fdf028a4863977154e9d7beeb8f5
2020-07-08 14:10:53 +08:00
Herman Chen
66cfc048e4 [mpp_enc_refs]: Save extra st ref frame to cpb
When there is enough reference frame slot in cpb store extra st frame to
cpb to avoid mismatch in dpb check.
This will happen right after IDR. There is extra empty cpb slot for st
frame and no need to remove them by sliding window.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I261f18d70f241e48a18012807f4dece68e73cbdf
2020-07-08 11:21:49 +08:00
Herman Chen
3c8337275e [bitwriter]: Add flush function to write last byte
When these is incomplete bit in last byte the writer needs to flush all
the valid bit to memory.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I07e24d1504d637beadfc7308b867c03fe2c7735e
2020-07-08 11:07:44 +08:00
Herman Chen
e10f95d851 [vepu541]: H.264 encoder optimization
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I7cbb7633d9fa57da358f5ef70aa93e965994bb11
2020-07-08 10:50:57 +08:00
Johnson Ding
fd34d8a793 [vp8d]: Fix buffer running out issue
If altref frames is not for display, they will be remaining in buffers.
Eventually, there will be no more unused buffer to be used for output.

Refer to this issue https://redmine.rockchip.com.cn/issues/226256.

Change-Id: I915582da99e71c95745bce15690562d51d640dc5
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2020-07-03 14:05:08 +08:00
Herman Chen
f1d7f6e717 [vepu_v2]: Use quality min/max to limit qp
Change-Id: I1291c64d52821191cfb84af9a2656097a7d77b0d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-29 17:25:57 +08:00
Herman Chen
f1643a579e [mpp_enc_v2]: Fix function print macro error
Change-Id: Idbd832c2cb57bab845f1f6e44615d2cbbb08384f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-29 11:06:49 +08:00
Herman Chen
11c0b3aaa0 [mpp_enc_refs]: Fix cpb update error
1. When insert long-term reference frame the tid refs should also be
updated.
2. When insert short-term reference frame the queue update direction has
error. It is fixed now.
3. Long-term reference frame delay_cnt update method is fixed.
4. Dump valid flag when dump cpb frame status.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I8db6e71ee5366fefdd1d91018c500d3edc05c6aa
2020-06-23 15:22:42 +08:00
Herman Chen
eb34769db7 [cmake]: Add option to control test building
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: Ic6c6988dad82836cfb87113f2293bc9a2b1abd66
2020-06-22 17:44:01 +08:00
Herman Chen
48e07d877f [mpp_enc_ref]: Fix typos
The check on short-term config should use short-term config count rather
than long-term config count.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I0006fe9a30035f636411702290cd9dff4032296d
2020-06-20 09:04:58 +08:00
Herman Chen
fefa75939d [drm]: Update drm header to 4.19
Change-Id: Id8b98e9cacab9a0dbc86f360172f8aab85dbf76d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-18 16:29:39 +08:00
Johnson Ding
7b94cd4050 [h264d]: fix dpb memory leak
When encounting IPIPPPP... stream, the first IP will be kept in dpb
unflushed. This will lead to dpb used size keep growing and memory leak.

Change-Id: I7973c8b18d13a63d10b0d4f034aefb58a3805ab2
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2020-06-12 11:29:34 +08:00
Herman Chen
0abeafe872 [cmake]: Add option for Address Sanitizer check
Change-Id: I91cf9111000d2e077dafd9871b965e864863e0bf
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-11 17:29:51 +08:00
Herman Chen
c56c01494d [h264d]: Fix heap-use-after-free issue in h264d
Change-Id: I88dced3dbd0a3e6e4f34fee86d7f019bfc130d14
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-11 16:36:19 +08:00
Herman Chen
81d4248166 [mpi_enc_test]: Fix memory leak of test args
Change-Id: Ica87ba3f77eb12e0b36b2ea0d607b4defbea9abb
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-11 16:25:58 +08:00
Herman Chen
0efed5ddf1 [mpp_trie]: Fix memory leak of node and info
Change-Id: Ide75f6401c0dceb4fca315fa8a5f84812c6a8eb4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-11 16:16:03 +08:00
Herman Chen
46bfafa614 [mpp_enc_v2]: Fix memory leak of header buffer
Change-Id: If4ef68a09b8e14b127105e41b7e4d17b3e58a5ac
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-11 16:15:36 +08:00
Herman Chen
c7274a6192 [mpp_enc_v2]: Fix memory leak of rc_ctx
Change-Id: Ifbce970cf10797edc04afa0910d422bc5b1d216d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-11 15:55:04 +08:00
Herman Chen
33e7e4c52a [mpi]: Remove unused H.264 mpi cfg structure
Remove sei / ref cfg in MppEncH264Cfg.

Change-Id: Iaef6a8a845b691dc21d0a6a6eca62e27bc5cf5a4
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-10 17:37:49 +08:00
Herman Chen
7ff73d991e [hal_h265e_vepu541]: Update l2 quant bias to 256
Change-Id: I6776972297fbda2749195f8b3922b51a39ccffb5
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-06-10 14:25:49 +08:00