Commit Graph

2247 Commits

Author SHA1 Message Date
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
sayon.chen
0b0d0db215 [rc_base]: Rewrite rc_base code
1.use cycle buf update statistics param
2.remove unused function

Change-Id: Iaeae290a30482b55842373f443863cf167b9ea71
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-10-09 09:05:26 +08:00
Herman Chen
e509662728 [mpp_frame]: Make MppFrameFormat value visible
Change-Id: I1276af32ca4907bfabae2664ff6f0fe67eb8aa0d
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-10-09 08:54:59 +08:00
Herman Chen
51d01e0069 [utils]: Fix error on RGB color fill
Change-Id: I5b7768e410135910d5c20994c84629678cd37524
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-29 16:39:10 +08:00
sayon.chen
96aad17638 [rc_v2]: Used I frame tuning config set
Change-Id: Iaaa717268804e047fa51bb0cf05790e25df143ba
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-09-28 17:59:02 +08:00
sayon.chen
d8a5fb18b7 [rc_v2]: Reorganize rc_mode_v2 code
ratio_calc used Register function in mode init according rc_mode

Change-Id: I0317ecc004a2c882e005cf791207c6a5a7e50598
Signed-off-by: sayon.chen <sayon.chen@rock-chips.com>
2020-09-28 17:59:02 +08:00
Herman Chen
f8b77d6aa2 [h264e_syntax]: Simplify h264e_syntax
1. Move sps / pps / slice / dpb definition to there own header.
2. Prepare to add new h264e syntax struct for hal.

Change-Id: I95e884afcf08fa51bdeb6f1e6571c264d9a609ec
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-28 09:53:49 +08:00
Herman Chen
04137732ac [h264e_syntax]: Rename syntax for h264 encoder
Change-Id: I742d251905f083d5636c61b98d9125421b90f3de
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
2020-09-28 09:33:48 +08:00