Commit Graph

2404 Commits

Author SHA1 Message Date
sayon.chen
4fccb4aa80 [vp8e_hal]: Fix vp8e value set error
1.fix split_penalty reset issue
2.fix hw_ctx no clear at init

Change-Id: I3be8e75c642e57c5210a3626dc8d2dfcb4c581da
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-09 10:47:03 +08:00
sayon.chen
bc4a71c115 [rc_v2]: Fix qp set issue in fix_qp mode
Change-Id: Ie9c007b4f413f1217c7ca1e1e89603300b220e39
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-09 10:45:41 +08:00
Herman Chen
6013568d64 [mpp_enc]: Add fps calculation
Change-Id: I4a56a6560dcef1a373f27a22ae47762933f69b67
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-09 10:28:12 +08:00
Herman Chen
b0c1f86b32 [mpp_enc]: Add MppDev and HalInfo to mpp_enc
1. Add MppDev output for all encoder.
2. Update HalInfo to MppDev on each header update.

Change-Id: I8fce811dda7232740042917c9738bc11253ee672
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2020-11-09 10:28:12 +08:00
Herman Chen
49894453bb [hal_info]: Add hal_info module
This module is to collect infomation and send to mpp_service.

Change-Id: I26e01edf70d8c599e4ad4fc1f3120f09372d3a1c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-09 10:28:12 +08:00
Herman Chen
ce7101f88c [mpp_device]: Add mpp_device_debug and set_info
1. Add mpp_device_debug.h
2. Add set_info handler in mpp_service.

Change-Id: I1ec83feadd4df79d5934182a35e0ed66f0f831ac
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-06 17:58:20 +08:00
Herman Chen
b60b40c62d [mpp_base]: Add more to_str function
Change-Id: Ic45acd7cb304fa16908e43ec497d9ead8ba477d6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-06 17:53:57 +08:00
Herman Chen
a75c5edcb7 [legacy]: Remove vpu dependence on mpp_service cmd
Change-Id: Ib447f1612f16cb9854fcee32c79eef5bcf26fe75
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-06 11:47:53 +08:00
Herman Chen
af6938b235 [mpp_device]: Move mpp_device to osal
Change-Id: Ia196f01945d47c24e821da8935f3694834afa839
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-06 11:47:53 +08:00
Herman Chen
3f8e880a39 [hal]: Use new mpp_device interface in hal
Switch all hal module to new api.

Change-Id: I066da7e06c999a01b80ee193365c5752e9bb19aa
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-06 11:47:53 +08:00
toby.zhang
ad9ca64801 [hal_h264e_vepu541]: Update fine tuning parameter
Modify fine tuning parameters for balancing motion tailing and noise
dancing.

Signed-off-by: toby.zhang <toby.zhang@rock-chips.com>
Change-Id: Ic1b93b0cfb419a2ae5b02ef9ec45dd46cb41fde9
2020-11-06 11:47:53 +08:00
Herman Chen
7adf857c50 [hal_vepu]: Fix vepu stride error
Add byte_stride to pixel_stride conversion function.
Both jpeg and H.264 encoder should use this function to get
pixel_stride.

Change-Id: I0c256d75b9b9f2c78da56504bc237220b1615bd8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-06 11:47:53 +08:00
sayon.chen
49eb2ca0d1 [vpu_legacy]: Add init qp cfg for vp8_enc
Change-Id: I53cb6c0e64f066faf5301d8406cc5f87da3aa48e
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-06 11:47:53 +08:00
Herman Chen
5f256c5e50 [mpp_hal]: Add function pointer check
Add function pointer check for reset / flush / control.

Change-Id: I3c0cda2863a18bad708cb910344bf19426ed8416
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-06 11:47:53 +08:00
sayon.chen
9f6bcbe851 [vepu_vp8e]: Enc frame_type decision by cpb
Change-Id: Id1ad236c785b162fa956ac4b19d8a2d04c09f796
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-06 11:47:53 +08:00
sayon.chen
e5764cc205 [hal_vp8e]: Fix refbuf issue cause kernel crash
Change-Id: Idfe169246633a0348081f0a98741aa7beb2e9ae0
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-11-04 10:29:57 +08:00
Herman Chen
44443dd7ee [mpp_device]: Add new mpp_device for kernel driver
1. Change mpp_device into a new layer for kernel drvier.
2. Separate mpp_service driver and vcodec_service driver.
3. Add mpp_service.c for /dev/mpp_service driver support.
4. Add global mpp_service info query interface.
5. Remove unused function in mpp_device.c

Change-Id: I3f53bba3aef525ad3b1f450bb55830d1eeaf29a6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-11-03 16:09:19 +08:00
Herman Chen
2e0b487683 [mpp_platform]: Detection code cleanup
Change-Id: I7c1d850b8fd9a2bbfcd870e0be27f381ed88421a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-30 17:10:44 +08:00
yandong.lin
857649cc98 [hal_vp8e]: Fix translate fd err and so on
1. Sometimes,there will occur random values in HalVp8eCtx and Vp8eHwCfg
   without initialization,so some fd assigned is invalid.
2. Some variables are incorrectly assigned.

Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I41360e15f4e7ea3fc8d1131ec44e0bc1e10a8e80
2020-10-30 10:55:26 +08:00
Herman Chen
9ddb869ac1 [mpp_device]: Unify mpp_service request
Change-Id: I7ace66dbad2306c3ca28a86a03bb58239fb6ab04
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-28 16:09:36 +08:00
Herman Chen
b845d7740d [mpp_device]: Fix cmd_butt check error
Change-Id: I247bb3573812903c6bc478cdad17c9e21f515104
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-28 15:41:41 +08:00
Herman Chen
7fe7bf4f49 [mpp_device]: Fix 32bit mpp error on 64bit kernel
The MppReqV1.data_ptr and MppDevReqV1.data is fix to 64bit. And the
REQ_DATA_PTR should be used on each value assignment.

Change-Id: I43e91625a0da427b8a3962cfddfcf94330e83312
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-28 15:22:32 +08:00
sayon.chen
f2d52184cc [hevc_vepu541]: Close recon out when pic is no ref
Change-Id: Iab58b4aa44a7a66cfb14a5ec0eb27441d1301444
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-10-28 15:20:06 +08:00
Herman Chen
93bc0690d4 [mpp_enc_refs]: Add flag for recon frame writing
Change-Id: I8f68573a4156056b61a05c14d5eb7d2734958e0d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-28 15:20:06 +08:00
Herman Chen
3be4151964 [mpp_enc_v2]: Avoid control async error
1. In some case cmd_send is increased but param is not write to memory
then the mpp_enc_proc_cfg function may read zero param.

Add extra sem_t to sync cmd / param value.

2. Move MppEncCfgSet to the bottom of encoder.

3. Add control return value path.

Change-Id: Iddc4e690d8e0e45d2922c6666dc5fd9c4d57fef2
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-28 15:20:06 +08:00
Herman Chen
6d2128f9f7 [mpp_device]: Separate kernel interface define
Move vcodec_service and mpp_service kernel ioctl interface definition
into different headers.

Change-Id: I1aa77d1073e7c51b48d18cf8d16fd76644d23d38
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-28 15:20:06 +08:00
Herman Chen
977e01340f [hal_vepu541]: Reduce vepu541 recon buffer usage
Change-Id: I4ba34a28e528909c349aeddb672c1d64ecad971a
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-23 14:17:34 +08:00
Herman Chen
3c55b55e46 [mpp_dec]: Add query interface for debug
1. Add query interface.
2. Add query result in mpi_dec_test.

Change-Id: Ie0026f155331c0b0f8e1b5409aeb7d41b6a3ecc6
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-23 14:17:34 +08:00
yandong.lin
e54234a11b [vp8e]: Fix vp8e reencode and ivf problems
1. Not do reencode in vp8 enc
2. Add api to control whether need to add ivf header
   (default: have ivf header)

Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I59a3a7193abead6c73e6e1eed593a115add77888
2020-10-23 10:07:10 +08:00
timkingh.huang
0f8aeda99d [comment]: add comments in the format of Doxygen
Change-Id: I1df49ed78b5b5cf88ff253c35c59cb0b061b4ea9
Signed-off-by: timkingh.huang <timkingh.huang@rock-chips.com>
2020-10-23 09:27:53 +08:00
Johnson Ding
97309fde99 [h265d]: fix parser error when temporalId is minus
See issue: https://redmine.rock-chips.com/issues/270472

Change-Id: I4f2a62882d400680865118e9d8d642c372f3c339
Signed-off-by: Johnson Ding <johnson.ding@rock-chips.com>
2020-10-22 10:45:26 +08:00
yandong.lin
0da0f2ead8 [mpp_impl]: Fix the problem of dump input frame not work
Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I85a0684839877300827359754ee6818f175ae1be
2020-10-22 10:39:57 +08:00
Herman Chen
d29cb91c22 [mpp_hal]: Remove hal header dependency
1. Remove dependency between mpp_hal.h and mpp_enc_hal.h.
2. Remove unused work_mode.

Change-Id: I1d8e8163e3c2de00636665d7aff38652309820ba
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-22 09:27:41 +08:00
Herman Chen
a79544d7cf [mpp_enc]: Remove MppEncCfgSet set from cfg
Encoder will use only one MppEncCfgSet.

Change-Id: Iaf418fc8e04616618e8d7868fab56d31085ec9b7
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-22 08:46:04 +08:00
Herman Chen
72d8fde218 [enc_impl]: Add cfg record on init
Change-Id: I32ac6a0611a911f19f2183b8738606881fdb1cf8
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-22 08:45:21 +08:00
Herman Chen
09537e1cef [h264d]: Support decode non-empty packet with eos
Change-Id: If31f113633a0c2165f756fb59b3ddca1d595b491
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-21 17:59:21 +08:00
Ding Wei
80bce866cc [mpp_device]: check ioctl cmd whether valid
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Change-Id: Id1d9c80143ee118d397b5e5486a431490a371519
2020-10-21 11:36:05 +08:00
Herman Chen
0520b7d35d [meta/buffer]: Fix usage after service is destoyed
When C++ global destructor is called MppBufferService and MppMetaService
maybe be called before other destructors which may call mpp_buffer_put
and mpp_meta_put. So we mark finished flag after ~MppBufferService and
~MppMetaService is call and so not free corresponding data again.

This case usually happens when user call exit() directly.

Change-Id: I997c49b095e443b061fca230587b6216f710d31c
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-20 09:08:59 +08:00
Ding Wei
fa3478c309 [mpp_enc_v2]: set init_quality equal q_fator instead of quant
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
Change-Id: Ib96a1667a007060df180b800a6f01aca1b64a9e8
2020-10-19 17:44:23 +08:00
Herman Chen
5f7e6cc23f [rc_base]: Fix reset operation
Change-Id: I64fe4d1333adee9f6405bde9b6f10fe2ca7d6257
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-16 11:50:02 +08:00
Herman Chen
3091f6acf8 [meta]: Change assert to log on cleaning leak meta
Change-Id: I61b727efba6152b9556d663c34eac8d372203d5f
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-15 09:09:11 +08:00
yandong.lin
38d5d62c33 [h265d_syntax]: Fix hw rps err
Signed-off-by: yandong.lin <yandong.lin@rock-chips.com>
Change-Id: I3ae9d743c91c892aecb2e5243d0d2305e15091d8
2020-10-14 16:02:10 +08:00
sayon.chen
1603bb3f16 [h265e_541]: Fix scaling_list enable flag issue
Change-Id: I187c0ce156dc9263680d057a8b0ec49c8eac4cab
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-10-14 15:15:48 +08:00
Herman Chen
db750eff51 [mpi_enc_test]: Add encoder frame skip config
When the bitrate overflow the encoder can drop or encode skip frame.

drop_mode:

MPP_ENC_RC_DROP_FRM_DISABLED
    - Do not drop frame when bitrate is too large.
MPP_ENC_RC_DROP_FRM_NORMAL
    - Drop frame when bitrate is too large.
MPP_ENC_RC_DROP_FRM_PSKIP
    - Encode force pskip frame to keep frame rate when bitrate overflow.

drop_thd:
The instantaneous bitrate overflow threshold to trigger drop frame.

drop_gap:
The minimum gap between two continuous drop frames.
0 - enable continnous drop frame.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: If17ee5f46ee03ae4ad958c8fad30a4a82f422118
2020-10-12 10:57:43 +08:00
sayon.chen
4db63464e8 [h265e_v2]: Support sw encoder skip frame
Change-Id: Icc9735087028fad2ca28070de8fe829e795ccadb
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-10-12 10:47:20 +08:00
Herman Chen
4c625f0e3c [h264e]: Add H.264 sw_reenc pskip path
1. Add pps on slice update for pic_init_qp.
2. Add cabac and cavlc pskip sw encode path.
3. Add dpb rollback for reenc path.

Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
Change-Id: I8d39cfeabcf669f66cd4e4d5ea5e08e4217d3a0e
2020-10-12 10:47:20 +08:00
toby.zhang
c182090ddd [h264e_vepu541]: Update fine tuning parameters
1, Fix error of cime search range configuration;
2, Select best performance between tailing error and noise dancing.

Change-Id: I1e9306abbfe57dc76d0bcb095895ac0ed129d524
Signed-off-by: toby.zhang <toby.zhang@rock-chips.com>
2020-10-10 18:10:30 +08:00
Ding Wei
2417a2db7f [rkenc]: rkvenc 264 and 265 disable watch dog
Change-Id: I9876d212cd7bf9136c26f408da50209283b641c2
Signed-off-by: Ding Wei <leo.ding@rock-chips.com>
2020-10-09 18:07:43 +08:00
Herman Chen
f055b13bb5 [mpp_enc_v2]: Fix smart reenc path
Change-Id: I6c8245ccff1627d3c6cf30133d95180da8c42e25
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-09 10:18:02 +08:00
Herman Chen
2b808aed26 [vepu541]: Fix color encoding error
1. Fix stride error on vepu541.
2. Fix YUV color format definition on vepu541.

Change-Id: I785358166f3fd25808debac40d89e28c867bf119
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-09 09:12:44 +08:00